This is a mirror of vimscript 1785
This is javacomplete, an omni-completion script of JAVA language for vim 7.
It includes javacomplete.vim
, java_parser.vim
, Reflection.java
, and
javacomplete.txt
- List members of a class, including (static) fields, (static) methods and ctors.
- List classes or subpackages of a package.
- Provide parameters information of a method, list all overload methods.
- Complete an incomplete word.
- Provide a complete JAVA parser written in Vim script language.
- Use the JVM to obtain most information.
- Use the embedded parser to obtain the class information from source files.
- Tags generated by ctags can also be used.
- JSP is supported, Builtin objects such as request, session can be recognized. The classes and jar files in the WEB-INF will be appended automatically to classpath.
It works on all the platforms where:
- Vim version 7.0 and above
- JDK version 1.1 and above
existed
It recognizes nearly all kinds of Primary Expressions (see langspec-3.0) except for "Primary.new Indentifier". Casting conversion is also supported.
Samples of input contexts are as following: ('|' indicates cursor)
list members of a class or a package
- package.| subpackages and classes of a package
- Type.| static members of the 'Type' class and "class"
- var.| or field.| members of a variable or a field
- method().| members of result of method()
- this.| members of the current class
- ClassName.this.| members of the qualified class
- super.| members of the super class
- array.| members of an array object
- array[i].| array access, return members of the element of array
- "String".| String literal, return members of java.lang.String
- int.| or void.| primitive type or pseudo-type, return "class"
- int[].| array type, return members of a array type and "class"
- java.lang.String[].|
- new int[].| members of the new array instance
- new java.lang.String[i=1][].|
- new Type().| members of the new class instance
- Type.class.| class literal, return members of java.lang.Class
- void.class.| or int.class.|
- ((Type)var).| cast var as Type, return members of Type.
- (var.method()).| same with "var.|"
- (new Class()).| same with "new Class().|"
list matching methods with parameters information.
- method(|) methods matched
- var.method(|) methods matched
- new ClassName(|) constructors matched
- this(|) constructors of current class matched
- super(|) constructors of super class matched
Any place between '(' and ')' will be supported soon. Help information of javadoc is not supported yet.
- var.ab| subset of members of var beginning with
ab
- ab| list of all maybes
- " import java.util.|"
- " import java.ut|"
- " import ja|"
- " import java.lang.Character.|" e.g. "Subset"
- " import static java.lang.Math.|" e.g. "PI, abs"
- " package com.|"
The above are in simple expression.
- PrimaryExpr.var.|
- PrimaryExpr.method().|
- PrimaryExpr.method(|)
- PrimaryExpr.var.ab|
e.g.
- "java.lang . System.in .|"
- "java.lang.System.getenv().|"
- "int.class.toString().|"
- "list.toArray().|"
- "new ZipFile(path).|"
- "new ZipFile(path).entries().|"
- "System.out.println( str.| )"
- "System.out.println(str.charAt(| )"
- "for (int i = 0; i < str.|; i++)"
- "for ( Object o : a.getCollect| )"
The embedded parser works a bit slower than expected.
- Improve performance of the embedded parser. Incremental parser.
- Add quick information using balloonexpr, ballooneval, balloondelay.
- Add javadoc
- Give a hint for class name conflict in different packages.
- Support parameter information for template
- Make it faster and more robust.
- Members of a package
- Members of a type
- Local variable
- Special reference super
- Object of method result
Feedback:
Any problems, bugs or suggestions are welcome please send an email to [email protected]
If you want to get more functions for writing java programs besides code completion, you can try VJDE