Eclipse Intellisense?

90

Jak powiedzieć Eclipse, aby automatycznie wyświetlał sugestie podczas pisania? Szukam funkcji podobnej do Visual Studio Intellisense z Resharper.

Obecnie za każdym razem muszę wciskać CTRL+ Space.

Ian Vink
źródło

Odpowiedzi:

78

Nie musisz naciskać CTRL*, spaceale być może opóźnienie jest zbyt duże lub nie podoba ci się spust (domyślnie jest to „.”). Iść do

Okno -> Preferencje -> Java / Editor / Content Assist

I zmień ustawienia w sekcji Automatyczna aktywacja według własnych upodobań.

Jeśli to nie zadziała dla użytkowników systemu Windows, zobacz tę odpowiedź .

Daff
źródło
1
użytkownik Kevin Rossi próbował edytować, aby wskazać na to (co jest naprawdę komentarzem): „To nie działa z dystrybucją Eclipse Juno C / C ++”
Denys Séguret
Każdy edytor w Eclipse może mieć własne wyzwalacze automatycznej aktywacji - aktywacja na tych samych postaciach nie miałaby sensu w żadnym języku.
nitind
Na Macu jestADT -> Preferences -> Java/Editor/Content Assist
Adil Malik,
171

Zbliżyłem się do zachowania podobnego do VisualStudio, ustawiając „Wyzwalacz autouzupełniania dla Java” na

.(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

i ustawienie opóźnienia na 0.

Teraz chciałbym zrozumieć, jak sprawić, by nazwa metody autouzupełniania była automatycznie uzupełniana po naciśnięciu (tak jak robi to VS's Intellisense.

Tony
źródło
1
Która wersja zaćmienia to jest? Pole tekstowe „Automatyczne wyzwalacze aktywacji dla języka Java” umożliwia wprowadzenie tylko 4 znaków.
Zesty
3
To działa bardzo dobrze. Znacznie lepiej, ponieważ teraz faktycznie pokaże zmienne lokalne i wszystko. Dzięki! @ HappyCoder4U To może nie pomóc, ale używam eclipse 3.7M5.
Howler
2
jesteś geniuszem :) nie ma jednak takiego ustawienia dla języków innych niż java :(
Ivan G.
1
Niesamowite. Dziękuję Ci! Używając Eclipse na Macu (3.6.1), nazwa parametru to „Automatyczne wyzwalacze aktywacji dla języka Java”
ninjaPixel
4
Wszystko działało, ale teraz zachowuje się bardzo irytująco: przypuśćmy, że chcę wpisać „private int counter”; Zaczynam od prywatnego, a autouzupełnianie włącza się z kilkoma sugestiami (pierwsza to PrivateCredentialPermission). Kiedy skończę pisać prywatne i naciśnij "spację", zostanie wstawiony PrivateCredentialPermission. Jakoś to obejść?
VM4
41

Tony to czysty geniusz. Jednak aby osiągnąć jeszcze lepsze autouzupełnianie, spróbuj ustawić wyzwalacze na to:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz =.(!+-*/~,[{@#$%^&

(specjalnie ułożone w kolejności użycia dla szybszej wydajności :)

d3dave
źródło
2
Ta metoda wprowadza kilka błędów. Na przykład, jeśli wpiszę =, natychmiast coś zasugeruje. Jeśli naciśnę spację, = automatycznie wstawi pierwszy wynik.
theGreenCabbage
sprawdzanie propozycji Java, propozycja typu Java i propozycja typu java i przesuwanie ich na wierzch w kolejności, zadziałało dla mnie.
Shailendra Singh Rajawat
Zapoznaj się z tym pytaniem dotyczącym przepełnienia stosu, aby znaleźć rozwiązania problemu z przestrzenią: stackoverflow.com/questions/14297735/…
William Dutton
Wszystkie znaki specjalne sprawią, że Intellisense będzie działać niepokojące, z wyjątkiem kropki. Zasadniczo, jeśli nie chcesz, aby funkcja Intellisense była kiedykolwiek wprowadzana po wpisaniu znaku, nie chcesz, aby znajdowała się na tej liście.
Andrew,
6

Jeśli to nie działa, nawet jeśli masz już włączoną funkcję Code Assist, pliki konfiguracyjne Eclipse są prawdopodobnie uszkodzone. Rozwiązaniem, które działało dla mnie (w Eclipse 3.5.2) było:

  1. Zamknij Eclipse.
  2. Zmień nazwę katalogu obszaru roboczego.
  3. Uruchom Eclipse. (Spowoduje to utworzenie nowego katalogu obszaru roboczego).
  4. Importuj (z kopią) projekty Java ze starego obszaru roboczego.
Rok Strniša
źródło
Naprawiłem
Niezłe rozwiązanie, bardzo mi pomogło, moje Eclipse nie było w stanie pokazać inteligencji po (.), Musiałem użyć ctrl + spacja 3 razy, aby to pokazać, dzięki za fajne rozwiązanie :-)
Muhammad
4

Kiedyś miałem ten sam problem, a potem szukałem i znalazłem to i zadziałało:

Niektóre pola zostały odznaczone, więc sprawdziłem je ponownie i zadziałało. Po prostu idź do

Windows> Preferencje> Java> Edytor> Asysta treści> Zaawansowane

i zaznacz pola, które chcesz.

user3074382
źródło
Możesz również ułożyć propozycje według priorytetu. Jeśli chcesz pokazać metody i właściwości związane z twoim identyfikatorem, umieść najpierw propozycje Java (specyficzne dla zadania)
Codeek
3

Odpowiedź d3dave jest fajna. Jednak TheGreenGarbage wspomniał o problemie, który również uważam za dość denerwujący. Oto przykład, który nie sugeruje od razu czegoś po znaku '=' i podczas wpisywania spacji:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.(!+-*/~,[{@#$%^&

Po prostu usunąłem spację i znaki '=' z tablicy :)

Alternatywnie, jeśli chcesz otrzymywać sugestie podczas wpisywania spacji, ale nie po znaku „=”:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz .(!+-*/~,[{@#$%^&
MuhsinFatih
źródło
To powinna być akceptowana odpowiedź. Chociaż prowadzi to do pewnego opóźnienia.
Neil Chowdhury,