AutoComplete provides Java completion. It seems to work.
JavaComplete is a tags based system for completing Java. The idea is you generate a tags file and load it in a buffer. Emacs can complete using the tags file. This project was necessary because the existing tags based completion system for C did not fit the Java language very well.
This is a very old project, NicFerrier is trying to resurrect it to see if it’s useful in anyway, perhaps as a supplement to AutoComplete.
The plan is to make it into an ELPA package and see if it can be integrated with Java build tools better.
The Github is here
I only really want 4 things from completion in Emacs’ Java buffers.
First, to complete a package or class in an import statement
Second, to complete a class in a decleration, eg:
public static void someMethod ()
{
StringBu
Completion should get the class StringBuffer. This should work based on the import statements in the file.
Third, to complete a member name based on a variable’s type, eg:
public static void someMethod ()
{
StringBuffer sb = new StringBuffer();
sb.ap
Completion should get the method name append().
And fourth, to easily see completion expansions, including methods and their argument types, eg:
public static void someMethod ()
{
StringBuffer sb = new StringBuffer();
sb.
Completion should present a list of expansions such as this:
Possible completions are:
append(char) returns java.lang.StringBuffer
append(double) returns java.lang.StringBuffer
append(float) returns java.lang.StringBuffer
append(int) returns java.lang.StringBuffer
append(long) returns java.lang.StringBuffer
append(boolean) returns java.lang.StringBuffer
append([C) returns java.lang.StringBuffer
append([C, int, int) returns java.lang.StringBuffer
append(java.lang.Object) returns java.lang.StringBuffer
append(java.lang.String) returns java.lang.StringBuffer
append(java.lang.StringBuffer) returns java.lang.StringBuffer
toString() returns java.lang.String
charAt(int) returns char
getChars(int, int, [C, int) returns void
indexOf(java.lang.String) returns int
indexOf(java.lang.String, int) returns int
lastIndexOf(java.lang.String) returns int
lastIndexOf(java.lang.String, int) returns int
length() returns int
replace(int, int, java.lang.String) returns java.lang.StringBuffer
subSequence(int, int) returns java.lang.CharSequence
substring(int) returns java.lang.String
substring(int, int) returns java.lang.String
capacity() returns int
ensureCapacity(int) returns void
delete(int, int) returns java.lang.StringBuffer
deleteCharAt(int) returns java.lang.StringBuffer
insert(int, char) returns java.lang.StringBuffer
insert(int, double) returns java.lang.StringBuffer
insert(int, float) returns java.lang.StringBuffer
insert(int, int) returns java.lang.StringBuffer
insert(int, long) returns java.lang.StringBuffer
insert(int, boolean) returns java.lang.StringBuffer
insert(int, [C) returns java.lang.StringBuffer
insert(int, [C, int, int) returns java.lang.StringBuffer
insert(int, java.lang.Object) returns java.lang.StringBuffer
insert(int, java.lang.String) returns java.lang.StringBuffer
reverse() returns java.lang.StringBuffer
setCharAt(int, char) returns void
setLength(int) returns void
With those 4 tools Emacs would have just as good completion as Eclipse.