2012-01-31 10 views
38

Say mam 2 pliki:Sublime Text 2 - Auto-complete/zasugerować z innymi plikami

foo 
bar 
baz 

i

123 
456 
f[want autocomplete here] 

Gdybym wpisać 1 w 2. pliku, Sublime będzie sugerować 123. Ale jeśli wpiszę f, nic nie zasugeruję. Chcę, żeby zasugerował foo, jakby był w pierwszym pliku.

Wygląda na to, że powinno być proste (każdy bufor może być autouzupełniany, więc przeszukiwanie wszystkich nie może być takie trudne), ale nie udało mi się znaleźć wtyczki, która to robi.

+0

Czy próbowałeś pytać na forach [] (http://www.sublimetext.com/forum/)? Wydaje mi się, że już wcześniej widziałem to pytanie. –

Odpowiedz

16

Napisałem wtyczki, które wykonuje to:

import sublime_plugin, sublime 

class AutocompleteAll(sublime_plugin.EventListener): 

    def on_query_completions(self, view, prefix, locations): 
     window = sublime.active_window() 
     # get results from each tab 
     results = [v.extract_completions(prefix) for v in window.views() if v.buffer_id() != view.buffer_id()] 
     results = [(item,item) for sublist in results for item in sublist] #flatten 
     results = list(set(results)) # make unique 
     results.sort() # sort 
     return results 
98

I zostały wdrożone na ten sam pomysł i opublikował go jako pakiet więc może być instalowany bezpośrednio w Sublime z kontroli pakietów:

Prasa ctrl + shift + p (Windows, Linux) lub cmd + shift + p (OS X), aby otworzyć Pallete Command. Zacznij pisać "instaluj", aby wybrać "Kontrola pakietów: Zainstaluj pakiet", następnie wyszukaj AllAutocomplete i wybierz go.

Code jest tutaj: https://github.com/alienhard/SublimeAllAutocomplete

+0

Wow! To działa świetnie. Znaleziono jeden błąd - nie wykrywa i autouzupełnia nazw klas, jeśli klasa ma w sobie '' -''. Wszystko inne działa świetnie. – Rafal

+2

@Rafal Cieszę się, że Ci się podoba. Aby nazwy z myślnikami działały, możesz je usunąć - z word_separators w pliku Preferences (otwórz z menu Preferences> Settings-User). Jeśli uważasz, że znalazłeś błąd, otwórz problem na https://github.com/alienhard/SublimeAllAutocomplete. – alienhard

+1

"Zaimplementowałem to". @alienhard odpowiedź jak król. Dzięki! –