Eclipse autocomplete not working in some Java files
Asked Answered
A

9

31

I have noticed that autocomplete is not working in some of java files in Eclipse. Also, the files where autocomplete is not working, display a hollow "J" as the icon for the Java file. The files where autocomplete is working, icon for java file is a filled "J"

I am wondering if someone can point out what went wrong all of suddent, why the change in icons and why autocomplete and syntax highlighting is turned-off in the files with a hollow "J" icon?

Thanks.

update

Basically, I was doing what VonC has suggested but Eclipse was not refreshing that it why I was thinking that VonC's suggestion isn't working, after doing a refresh, the problem resolved.

Ashcan answered 5/3, 2010 at 22:26 Comment(0)
B
11

In this following picture, MyClass.java has a hollow J, because it is explicitly excluded from the sources to build:

alt text

Could you go to the properties of the project, "Java Build Path" Section, "Source" tab and see if some exclusion filter has been set ?
It is usual for instance to define:

**/Test*.java

to exclude at first building any unit-test class (when you have a large set of sources and do not want to be presented with Test classes during auto-completion, or do not want them considered during source searches).

Brawley answered 6/3, 2010 at 7:5 Comment(2)
For some reason, the Java Build Path was completely empty and that was causing the issue. I included the missing JAR files but now I need to include all packages back to the project. The only problem is that I get the error message "declared package is different than the expected package"Ashcan
@m_a_khan: make sure you select the right src directory, for if you don't, your packages won't match the directories. See coderanch.com/t/453731/IDEs-Version-Control-other-tools/… or forums.sun.com/thread.jspa?threadID=5376951 or eclipsezone.com/eclipse/forums/t73687.htmlBrawley
T
103

Since this question is highly ranked on Google, I will add a solution to fix general auto complete issue, not for 'hollow J' ones.

Try Window (Windows/Linux) or Eclipse (OS X) -> Preferences -> Java -> Editor -> Content Assist -> Restore Defaults

also

Content Assist -> Advanced -> Restore Defaults

Tiltyard answered 22/9, 2010 at 10:29 Comment(4)
Remember to restore defaults in Content Assist -> Advanced too. (Preferences -> java -> editor -> Content Assist -> Advanced)Usquebaugh
Dude, you are my total hero. This is exactly the problem I was having. I have never made changes to this panel, but apparently somehow the "Java" option got unchecked.Trude
For some reason, restoring defaults in the Content Assist preference pane didn't restore Java autocomplete. Just make sure that "Java Proposals" is checked the default content assist list in Java > Content Assist > Advanced.Magel
in the current ADT bundle (jan '13), this does not work. you must go to Window -> Preferences -> Java -> Editor -> Content Assist -> Advanced and tick on the JAVA PROPOSAL options. BUT i upvoted because it showed me the way. @Trude you showed me the way.Bearcat
B
18

some answers (restore defaults) above do not work for some adt bundle installs as of jan '13.

in those cases, go to

Window -> Preferences -> Java -> Editor -> Content Assist -> Advanced

and tick on the JAVA PROPOSAL options.

Bearcat answered 9/1, 2013 at 21:0 Comment(1)
Worked for me in eclipse JunoFeoff
B
11

In this following picture, MyClass.java has a hollow J, because it is explicitly excluded from the sources to build:

alt text

Could you go to the properties of the project, "Java Build Path" Section, "Source" tab and see if some exclusion filter has been set ?
It is usual for instance to define:

**/Test*.java

to exclude at first building any unit-test class (when you have a large set of sources and do not want to be presented with Test classes during auto-completion, or do not want them considered during source searches).

Brawley answered 6/3, 2010 at 7:5 Comment(2)
For some reason, the Java Build Path was completely empty and that was causing the issue. I included the missing JAR files but now I need to include all packages back to the project. The only problem is that I get the error message "declared package is different than the expected package"Ashcan
@m_a_khan: make sure you select the right src directory, for if you don't, your packages won't match the directories. See coderanch.com/t/453731/IDEs-Version-Control-other-tools/… or forums.sun.com/thread.jspa?threadID=5376951 or eclipsezone.com/eclipse/forums/t73687.htmlBrawley
B
10

Those with a hollow J aren't part of the build path of the project, so they can't participate in the normal build process and therefore auto-complete won't be enabled for these files (and other Java editor features!). You must add the folders with the Java files to be built to the build path using the 'source path' section of the project properties. This can be accessed by right clicking on a project in the project navigator / package explorer and going to Properties. See http://www.informit.com/articles/article.aspx?p=367962 for details.

Additionally, if the files aren't part of a Java project in the first place, you must create a project and move the files in, or put the files in an existing one. Again, make sure these file are under a source directory as described by that section of the project properties.

alt text
(source: teradata.com)

Brunn answered 5/3, 2010 at 22:28 Comment(4)
actually all source code in under one common directory, "src", most files are fine, only a couple of folders under "src" are containing java files with a hollow "J", their syntax highlighting is gone and autocomplete doesn't work. So how is this possible?Ashcan
Could you right click on one of those files, go to properties, and paste what you see on the initial info page as a comment? :)Brunn
Additionally, make sure that Build Automatically is enabled on the project menu, although I'm not sure this will make a difference. Also check your exclusion filters.Brunn
A screenshot of the package explorer might help to find the reason, too.Effeminate
S
2

I cope with the issue by deleting the file if autocomplete does not work. Just before copying the source code. Then I have recreated the java file with the same name. Pasted the source code previously copied.

Sall answered 8/1, 2012 at 19:5 Comment(0)
U
1

As an addendum to the @VonC answer, make sure that the Java files are part of the Inclusion pattern. I had a case where a build process was creating the project while only including .js files and not the Java files:

Shows Eclipse Include without Java files

You can manually edit the inclusions via the Edit button. In my case, a fix was made to the build script to make it permanent.

Unzip answered 10/3, 2014 at 21:17 Comment(0)
D
1

Neither Restoring Defaults or my build path (file was already in package directory w/other files where auto-complete was working) fixed problem. Fix for me was to close the file explicitly (right click on file name in tab) and re-open. Interestingly, just re-starting Eclipse didn't work either.

Depressor answered 28/8, 2017 at 16:1 Comment(0)
N
0

Make sure you have the right directory structure. I believe that:

  • Hollow J icon beside Java file - will not be build
  • Normal J icon beside Java file - is a file to be build.

I made a mistake when I created webapp artefact. By default it does not create folder for Java, but for resources. I mistakenly put my sources there. Have a look - see the difference.

enter image description here

Nameless answered 11/1, 2017 at 8:54 Comment(0)
M
0

I was able to get this fixed in Visual Studio Code, VSCode but entering crtl-shift-p and typing in clean. When I did that I ran the "Java: Clean Java Language Sever Workspace" command. This fixed my autocomplete issue for me.

Margit answered 8/10, 2021 at 19:33 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.