PlanDuSite ModificationsRécentes Nouvelles SectionElisp CommentFaire

JavaCompletion

AutoComplete provides Java completion. It seems to work.

Tags based project

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

Java completion requirements

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.


CategoryCompletion CategoryJava