Ustawiać:
Wersja GUI GNU Emacs 25.0.50.1 (x86_64-w64-mingw32) z dnia 2015-07-25 na KAEL
, przy użyciu najnowszej wersji MELPA
Windows 7 x64 bit.
Sytuacja:
Na przykład piszę w buforze fobarsentencji.
A potem rozpocznij nowy wiersz poniżej i pisząc fooba, spodziewałem się, że dostanę foobarsentence
sugestię z okna wyskakującego okna Firmy. Ale nie ma foobarsentence
.
Dowiedziałem się z innej odpowiedzi, że mógłbym użyć do tego firmy-dabbrev`` M-/. Ale nie mogłem wymyślić, jak mogę „zasugerować” sugestie company-dabbrev
do wyskakującego okienka. Zrobiłem gif screencast, aby wyjaśnić moje pytanie.
Jak widać, M-/połączenia company-dabbrev
. Chciałbym jednak zobaczyć to sugerowane w wyskakującym oknie firmy. Zaskoczyło mnie to, że nie jest to domyślnie.
Wszelkie sugestie w celu „przesłania” sugestii company-dabbrev
do wyskakującego okienka firmy?
źródło
Odpowiedzi:
Oto jak działa kompletacja w firmie (upraszczam nieco bardziej szczegółowy opis w dokumentacji
company-backends
C-hvcompany-backends
RET.Masz listę backendów (mechanizmów ukończenia), które firma powinna spróbować zrealizować w punkcie. Firma wypróbowuje każdy z tych backendów jeden po drugim, a pierwszy, który zwraca dowolnych kandydatów, jest wykorzystywany do zakończenia, a reszta backendów jest ignorowana. Tak więc domyślnie używany jest tylko jeden backend na raz.
W twoim przypadku (wydaje się, że jesteś w trybie emacs-lisp) backend emacs-lisp zwraca kandydatów do ukończenia, dlatego
company-dabbrev
firma nigdy nie używa ich do ukończenia i nigdy się niefoobarsentence
kończy. Możesz więc chcieć zmienić backendy firmowe, aby pojawiły sięcompany-dabbrev
wcześniejcompany-elisp
(lubcompany-capf
w ostatnim emacsen). Ale myślę, że to nie jest to, czego chcesz, ponieważ odwróciłoby to obecną sytuację i nie dostaniesz uzupełnień z backendu emacs-lisp (w którym to przypadku czytaj dalej).Firma zapewnia sposób scalania uzupełnień z wielu źródeł przy użyciu tak
grouped
zwanych backendów. Zwykle członkowiecompany-backends
są pojedynczymi backendami, ale może to być także lista backendów, w którym to przypadku zakończenie z backendów jest scalane, pod warunkiem, że zwracają to samoprefix
lub tekst do uzupełnienia (company-backends
szczegółowy opis znajduje się w dokumentacji ).Więc jeśli chcesz scalić uzupełnienia z
company-elisp
(w ostatnim emacsencompany-capf
jest używany) icompany-dabbrev
po prostu zrób toDodatkowo możesz łączyć różne backendy za pomocą
:with
słowa kluczowegoRóżni się to od przykładowej listy backendów,
:with
ponieważ firma użyje tylko backendów wcześniej:with
do określeniaprefix
(tekst do uzupełnienia). Oznacza to, że kandydaci z backendów później:with
zostaną zignorowani przez firmę, niezależnie od tego, czy backendy zwrócą aprefix
czy nie, jeśli żaden z backendów przed:with
zwróci aprefix
.Możesz ustawić to lokalnie w buforze emacs-lisp (wolę to zrobić)
źródło
:with