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.

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ź .


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.


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 :)


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.


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.


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 .(!+-*/~,[{@#$%^&

To powinna być akceptowana odpowiedź. Chociaż prowadzi to do pewnego opóźnienia.
Neil Chowdhury,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.