Aktualizacja
Zostało to naprawione w Eclipse 2018-12 . To zachowanie jest nadal domyślne, ale można je wyłączyć - zobacz zaakceptowaną odpowiedź, aby dowiedzieć się, jak to zrobić
Zostawię to pytanie tak, jak było dla potomności i dla tych z wcześniejszych wersji Eclipse
W Eclipse włączyłem sugestie w stylu Intellisense dla Javy, przechodząc do
Window -> Preferences -> Java/Editor/Content Assist
i ustawiając następujące
Auto activation delay (ms) -> 0
Auto activation triggers for Java -> .(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
source = Eclipse Intellisense?
Działa to znakomicie, poza jednym irytującym problemem. Kiedy trafiam spacebar, wpisywany token jest automatycznie uzupełniany tym, co znajduje się na górze listy sugestii. W porządku, z wyjątkiem tego, że czasami wpisuję nazwę klasy / zmiennej z dokładnym prawidłowym dopasowaniem, ale nie pojawi się to jako pierwsza sugestia. Kiedy więc naturalnie uderzam, spacebarEclipse wstawia coś zupełnie nie tak.
EG po wpisaniu
Cookie
uderzę spacebari dostanęCookieMonster
.
Wygląda to na błąd i zdarza się wystarczająco często, by być denerwującym, ale mimo to ogólnie nie chcę spacebaruruchamiać autouzupełniania . Mogę wpisać nazwę zmiennej, która nie została jeszcze zadeklarowana, lub coś podobnego. Chcę używać autouzupełniania jako narzędzia pomocniczego, ale moje naturalne pisanie zawsze powinno mieć pierwszeństwo przed nim.
Chciałbym przestać spacebaruruchamiać autouzupełnianie i albo wrócić do używania enter, albo jeszcze lepiej uruchamiać autouzupełnianie za pomocą customklawisza, którego nie używa się w zwykłym pisaniu. Czy coś z tego jest możliwe?
Bezskutecznie bawiłem się wszystkimi ustawieniami w Content Assist . Wyszukiwanie w Google pytania po prostu zwraca kilka wyników dotyczących wyłączenia funkcji autouzupełniania.
Ten problem został rozwiązany w Eclipse 2018-12 [4.10], zobacz zaakceptowaną odpowiedź
Występuje we wszystkich wcześniejszych wersjach, tj. 2018-09 [4.9], Photon [4.8], Oxygen [4.7], Neon [4.6] itp.
Odpowiedzi:
Eclipse 2018-12 zostało już załatane!
Łatka dla Bug 348857 została niedawno włączona do projektu Eclipse i została wydana jako część Eclipse 2018-12 . Możesz pobrać tę wersję tutaj .
Masz teraz nową opcję wyłączania wszystkich wyzwalaczy wstawiania z wyjątkiem enter, co zapobiegnie spacebarpowodowaniu autouzupełniania.
Po prostu przejdź do Preferencje ... -> Java -> Edytor -> Asysta treści (lub Okno -> Preferencje -> Java -> Edytor -> Pomoc treści w systemie Windows) i wybierz opcję Wyłącz wyzwalacze wstawiania z wyjątkiem „Enter” , jak pokazano w zrzut ekranu poniżej:
źródło
Istnieje rozwiązanie tego problemu w narzędziu do śledzenia problemów . Skopiuj jar do folderu eclipse / dropins. Przy następnym ponownym uruchomieniu przestrzeń jest wyłączana jako wyzwalacz autouzupełniania.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=348857
Eclipse 12-2018 i nowsze: To działa natywnie, sprawdź odpowiedź Pyves.
źródło
Użyj wersji SDK eclipse
1.open Plug-ins Wyświetl i znajdź org.eclipse.jface.text, kliknij prawym przyciskiem myszy, wybierz import jako projekt źródłowy. Po zaimportowaniu znajdziesz go w swoim obszarze roboczym.
2. w src / org / eclipse / jface / text / contentassist / CompletionProposalPopup.java
char[] triggers = t.getTriggerCharacter(); if(contains(triggers,key))
zmień na
if(key!='='&&key!=0x20&&contains(triggers,key))
3. Eksportuj org.eclipse.jface.text
Kliknij prawym przyciskiem folder projektu org.eclipse.jface.text, wybierz eksport -> Wdrażalne wtyczki i fragmenty, następnie miejsce docelowe wybierz plik archiwum, zakończ. Zastąp ten w eclipse / plugins tym, który wygenerujesz.
źródło
0x20
zamiast' '
?Spacja była kluczem do wybrania autouzupełniania nawet w Indigo. O ile wiem, nie można tego skonfigurować. W rzeczywistości prawdopodobnie dlatego istnieje opóźnienie.
Proponuję ustawić opóźnienie na jakąś optymalną wartość, która pozwoli ci
private void ...
wygodnie wpisywać rzeczy, takie jak wygodnie bez wyzwalania sugestii dlaprivate
ivoid
. Następnie, jeśli pojawi się sugestia, ponieważ czekałeś zbyt długo, naciśnij Escape, aby przerwać obsługę treści.źródło
Ta sama konfiguracja co davnicwil, ten sam problem, nadal na Eclipse 4.4.
Rozwiązanie : Przechwyć (zaczep) SHIFT + SPACJA (naciśnij i przytrzymaj) na zaćmieniu (okno edytora) i zastąp je klawiszami ESC, SPACJA (sekwencja). Teraz Ty decydujesz między
W systemie Windows możesz użyć http://www.heise.de/download/activaid.html (możesz również użyć AutoHotkey, java native hook, ...)
HowTo with ActivAid:
Mój plik konfiguracyjny: activAid / settings / ac'tivAid.ini: [UserHotkeys]
Możesz również zmienić przypisanie klawiszy na klawiaturach innych niż angielski za pomocą „HotStrings”, np. Ö -> {, ä->} itp.
źródło
Wreszcie się udało.
Spróbuj pobrać ten org.eclipse.jface.text.jar i skopiuj go do folderu wtyczek (zazwyczaj eclipse / plugin). Nie zapomnij wykonać kopii zapasowej własnego.
Działa na Eclipse Juno.
Jeśli link nie działa, skomentuj to, dzięki.
źródło
Możesz wyłączyć automatyczną aktywację za pomocą pola wyboru w
i aktywuj funkcję autouzupełniania na żądanie. Domyślny klawisz skrótu to
CTRL+Space
źródło
W Eclipse przejdź do Window -> Preferences -> General -> Keys i usuń powiązanie dla polecenia Content Assist.
źródło