summaryrefslogtreecommitdiff
path: root/base/vim/bundle/javacomplete/doc/javacomplete.txt
diff options
context:
space:
mode:
Diffstat (limited to 'base/vim/bundle/javacomplete/doc/javacomplete.txt')
-rw-r--r--base/vim/bundle/javacomplete/doc/javacomplete.txt568
1 files changed, 568 insertions, 0 deletions
diff --git a/base/vim/bundle/javacomplete/doc/javacomplete.txt b/base/vim/bundle/javacomplete/doc/javacomplete.txt
new file mode 100644
index 0000000..ef5f211
--- /dev/null
+++ b/base/vim/bundle/javacomplete/doc/javacomplete.txt
@@ -0,0 +1,568 @@
+*javacomplete.txt* For Vim version 7.0 and above. Last change: 2011-01-30
+
+ JAVACOMPLETE REFERENCE MANUAL by cheng fang~
+ fangread@yahoo.com.cn~
+
+
+1. Overview |javacomplete-overview|
+ 1.1 Features |javacomplete-features|
+ 1.2 Requirements |javacomplete-requirements|
+ 1.3 Download |javacomplete-download|
+ 1.4 Install |javacomplete-install|
+2. Usage |javacomplete-usage|
+ 2.1 Input contexts |javacomplete-contexts|
+ 2.2 Kind letter |javacomplete-kindletter|
+ 2.3 Options |javacomplete-options|
+ 2.4 Commands |javacomplete-commands|
+3. Java parser in Vim |javacomplete-parser|
+ 3.1 Abstract Syntax Tree |javacomplete-ast|
+ 3.2 Global Constants |javacomplete-constants|
+ 3.3 Parsing Functions |javacomplete-functions|
+ 3.4 Sample |javacomplete-sample|
+4. FAQ |javacomplete-faq|
+5. Limitations |javacomplete-limitations|
+6. History
+ 6.1 javacomplete |javacomplete-history|
+ 6.2 Parser |java-parser-history|
+ 6.2 Reflection.java |javacomplete-reflection|
+7. Todo |javacomplete-todo|
+8. Thanks |javacomplete-thanks|
+
+==============================================================================
+1. Overview *javacomplete-overview*
+
+This is javacomplete, an omni-completion script of JAVA language for vim 7 and
+above. It includes javacomplete.vim, java_parser.vim, Reflection.java, and
+javacomplete.txt.
+
+1.1 Features *javacomplete-features*
+
+- 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 the classpath.
+
+1.2 Requirements *javacomplete-requirements*
+
+It works on all the platforms wherever
+- Vim version 7.0 and above,
+- JDK version 1.1 and above,
+exists.
+
+1.3 Download *javacomplete-download*
+
+You can download the lastest version from this url:
+ http://www.vim.org/scripts/script.php?script_id=1785
+
+1.4 Install *javacomplete-install*
+
+1. Unzip javacomplete.zip to a directory of 'runtimepath', e.g.
+$HOME/.vim (unix/linux), $VIM/vimfiles (windows). >
+ > unzip javacomplete.zip -d ~/.vim
+
+< To update Vim help tags, run vim and run command: >
+ :helptags $HOME/.vim/doc
+< or >
+ :helptags $VIM/vimfiles/doc
+
+NOTE: javacomplete.vim, java_parser.vim and Reflection.java should be in one
+autoload directory of 'runtimepath'.
+javacomplete.txt should be in one doc directory of 'runtimepath'.
+
+2. Set 'omnifunc' option. e.g. >
+ :setlocal omnifunc=javacomplete#Complete
+< Or, use autocmd: >
+ :" Only do this part when compiled with support for autocommands.
+ :if has("autocmd")
+ : autocmd Filetype java setlocal omnifunc=javacomplete#Complete
+ :endif
+You can add this command to your .vimrc or _vimrc.
+
+3. Set 'completefunc' option to show parameters information IF YOU LIKE. e.g. >
+ :setlocal completefunc=javacomplete#CompleteParamsInfo
+You can map as follows for better display: >
+ :inoremap <buffer> <C-X><C-U> <C-X><C-U><C-P>
+ :inoremap <buffer> <C-S-Space> <C-X><C-U><C-P>
+
+4. Reflection.java will be automatcally compiled and placed to $HOME when you
+use first time. Assure that Reflection.java is in the same directory with
+javacomplete.vim to be searched in autoload subdirectory of &rtp.
+If no Reflection.class is generated, check that you have the write permission
+in $HOME directory.
+If a previous Reflection.java is not compatible with the new version
+javacomplete.vim, please compile Reflection.java manually.
+
+==============================================================================
+2. Usage *javacomplete-usage*
+
+You can use it like other omni-completion script. Many samples of input context
+are gived in the following section.
+
+Make sure a JVM launcher (default 'java') can be searched in the PATH enviroment
+variable, otherwise Use javacomplete#SetJVMLauncher() to specify one. See option
+`javacomplete-launcher`.
+
+See FAQ in time if some problem occurs. When meeting other problems not
+described in FAQ, you can contact with the auther by the following e-mail:
+fangread@yahoo.com.cn
+
+2.1 Input contexts |javacomplete-contexts|
+It recognize 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: (Note that '|' indicates cursor)
+ (1). after '.', 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().|"
+
+ (2). after '(', 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.
+
+ (3). after an incomplete word, list all the matched beginning with it.
+ - var.ab| subset of members of var beginning with `ab`
+ - ab| list of all maybes
+
+ (4). import statement
+ - " import java.util.|"
+ - " import java.ut|"
+ - " import ja|"
+ - " import java.lang.Character.|" e.g. "Subset"
+ - " import static java.lang.Math.|" e.g. "PI, abs"
+
+ (5). package declaration
+ - " package com.|"
+
+ The above are in simple expression.
+ (6). after compound 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().|"
+
+ (7). Nested expression:
+ - "System.out.println( str.| )"
+ - "System.out.println(str.charAt(| )"
+ - "for (int i = 0; i < str.|; i++)"
+ - "for ( Object o : a.getCollect| )"
+
+
+2.2 Kind letter *javacomplete-kindletter*
+
+A single letter indicates the kind of compeltion item. These kinds are:
+ + ctor
+ v local variable or parameter
+ f nonstatic field
+ F static field
+ m nonstatic method
+ M static method
+ P package
+ C class type
+ I interface type
+
+2.3 Options *javacomplete-options*
+
+1. Set java compiler (default 'javac') using the following function:
+ javacomplete#SetCompiler('javac') *javacomplete-compiler*
+
+2. Set java launcher (default 'java') using the following function:
+ javacomplete#SetJVMLauncher('java') *javacomplete-launcher*
+
+3. Set classpath using the following function: >
+ javacomplete#AddClassPath('jarfile_or_classes_path')
+ javacomplete#DelClassPath('jarfile_or_classes_path')
+ javacomplete#SetClassPath('semicolon_separated_string')
+<
+ Another two variables will be used if they are existing:
+ |g:java_classpath| global classpath
+ |b:classpath| associated with current buffer
+ In one sense, s:classpath is like a classpath option for a PROJECT.
+ If some of them are body set, the priority of these variables is:
+ first, b:classpath first,
+ second, s:classpath
+ third, g:java_classpath
+ last, $CLASSPATH
+
+4. Set sourcepath using the following function: >
+ javacomplete#AddSourcePath('sources_file_path')
+ javacomplete#DelSourcePath('sources_file_path')
+ javacomplete#SetSourcePath('sources_file_path')
+
+5. Set option for using JDK1.1 if you meet the problem described in FAQ 3: >
+ javacomplete#UseJDK11()
+
+6. Set methods to search declaration: >
+ " 1 - by builtin searchdecl(), quickest but inaccurate in many cases.
+ " 2 - by special Searchdecl(), work NOT WELL YET.
+ " 4 - by java_parser, slowest but accurate in most cases. Not for JSP.
+ javacomplete#SetSearchdeclMethod()
+
+2.4 Commands *javacomplete-commands*
+
+==============================================================================
+3. Java parser in Vim *javacomplete-parser*
+
+3.1 Abstract Syntax Tree *javacomplete-ast*
+
+3.2 Global Constants *javacomplete-constants*
+
+3.3 Parsing Functions *javacomplete-functions*
+
+3.4 Sample Codes *javacomplete-sample*
+This parser can be a good candidate for anyone who needs a java parser to get
+a abstract syntax tree for many use. The following are sample codes: >
+
+ " NOTE: The script contains a single parser instance. You cannot create
+ " another parser! The only way to parse another JAVA code is reset the
+ " parser by calling java_parser#InitParser().
+
+ " 1. Initialize the parser
+ " for a code snippet,
+ call java_parser#InitParser(['for (int i = 0; i < N; i++) {', '', '}'])
+ " or for the current buffer,
+ call java_parser#InitParser(getline('^', '$'))
+ " or for a whole source file
+ call java_parser#InitParser(readfile('java/util/Arrays.java'))
+
+ " 2. Get the result tree
+ call java_parser#compilationUnit()
+ " or others according to the input code
+ call java_parser#expression()
+ call java_parser#block()
+ call java_parser#statement()
+
+ " 3. Use the tree as you like
+
+ " 4. The default scan strategy is scanning only sklenton.
+ " You can change it by set the option 'scanStrategy'.
+ " The values for 'scanStrategy' option are:
+ " 0 - only class members when parse full file;
+ " 1 - keep statement as a whole string;
+ " 2 - all
+ call java_parser#InitParser(getline('^', '$'), {'scanStrategy': 2})
+
+ " 5. I recommend that keeping scanStrategy as default.
+ " If you want to parse a code snippet such as a method body of the whole
+ " file, you can call java_parser#GotoPosition() to go to what you are going
+ " to start parsing.
+ " Then, call java_parser#block(), java_parser#statement() or
+ " java_parser#expression() to parse the smaller snippet.
+ " NOTE: This way will keep the result tree reserved.
+ call java_parser#GotoPosition(def.body.pos)
+ call java_parser#block()
+
+==============================================================================
+4. FAQ *javacomplete-faq*
+
+(1). When you meets the following problem: >
+ omni-completion error: Exception in thread "main"
+ java.lang.NoClassDefFoundError: Reflection
+It is Reflection.class not found in autoload directory or $HOME that cause
+this problem.
+There are several reasons causing this problem:
+ o No compiler. Use javacomplete#SetCompiler() to specify one.
+ o No write permission for $HOME directory.
+
+(2). Reflection.java should be searched in autoload subdirectory of &rtp.
+Reflection.class should be searched in $HOME or autoload subdirectory of &rtp.
+If not found, javacomplete try to compile it and place the generated class
+file in $HOME.
+
+(3). A error when using JDK1.1:
+ Unable to initialize threads: cannot find class java/lang/Thread
+When I tested JDK1.1.8 on Windows XP, I found -classpath options cause it.
+There are two way to avoid it is:
+ o Add the runtime classes to classpath, like
+ "${JDK118}\classes;${JDK118}\lib\classes.zip;${JDK118}\lib\classes.jar;"
+ o Add Reflection.class and others to the CLASSPATH enviroment variable.
+ And call javacomplete#UseJDK11() to set option.
+
+==============================================================================
+5. Limitations *javacomplete-limitations*
+
+The embedded parser works a bit slower than expected.
+
+==============================================================================
+6. History
+
+6.1 javacomplete *javacomplete-history*
+
+v0.77.1.2
+ 2011-01-30 Fixed to adapt globpath() (vim < 7.2). Patched by Sam Lidder.
+
+v0.77.1.1
+ 2010-11-12 Fixed to ignore the 'suffixes' and 'wildignore' options which
+ make Reflection.class can not be found.
+
+v0.77.1
+ 2007-09-19 Supported showing method parameters information in any place
+ between parenthesises.
+
+v0.77
+ 2007-09-19 bug fix
+ 2007-09-18 Added GetCurrentFileKey() avoid empty key of s:files for current buffer.
+ 2007-09-16 Use a new strategy for searching inherited members.
+ 2007-09-11
+ - Supported new contexts "jav|", "var|", just after an incomplete word.
+ - Supported new context "abs(|)", a imported static method.
+ 2007-09-10
+ - Improved FoundClassDeclaration()
+ - Fixed bug calling cursor(0, 0)
+ 2007-09-09 Rewrote DoGetClassInfo(), GetFQN() and IsFQN()ĄŁ
+ 2007-09-08 Fixed a bug when merging superclass's members
+ 2007-09-05 -- 07
+ - Improved s:MergeLines() and s:ExtractCleanExpr().
+ - Rewrote CompleteAfterDot(). Added ParseExpr(). Removed s:GetNextSubexprType()
+ - Supported accessible static imported members.
+ - Supported accessible inherited members.
+
+ 2007-09-04 Used b:changedtick and getftime() to check buffer (or other file) for changing.
+ 2007-09-01 Supported not-file-name toplevel or static member class in source files.
+
+v0.76.8
+ 2007-08-30
+ - Created the s:TreeVisitor to search type or symbol names.
+ - Supported local and anonymous class.
+
+ 2007-08-29
+ - Supported appending automatically classpath under WEB-INF for jsp files.
+
+v0.76.7
+ 2007-08-28
+ - Fixed case of "new java.util.zip.ZipFile().|"
+ - Improved process of type arguments and method parameters. JAVA5+
+ - Reorganize codes in javacomplete#Complete()
+ - Added CONTEXT_NEED_TYPE, removed CONTEXT_INCOMPLETE_WORD
+
+ 2007-08-24 Add Context types for type declaration: CONTEXT_NEED_TYPE
+
+v0.76.6
+ 2007-08-23 Improved GetStatement() and related. Bug fixed.
+
+v0.76.5
+ 2007-08-21
+ - Fixed bug: "foo().|", "getFoo().foo().|",
+ "for (Enumeration entries = ; entries.|; )".
+ - Supported input contexts: "((Object)o).|", "((Object)o).getClass().|",
+ "new ZipFile(path).|", "(new String().)|".
+
+v0.76.4
+ 2007-08-17
+ - Improved input contexts: "int.class.toString().|", "list.toArray().|".
+ - Fixed recognizing "this(|)", "method1(|)"
+ - Added the 'kind' letter to distinguish between classes and packages.
+ 2007-08-14
+ - Support accessible nested classes.
+ - Support import static members and import accessible nested classes.
+ 2007-08-11
+ - Fixed a bug when Reflection.java is in the path which contains space.
+ - Improved process of this and super in JSP.
+ - Fixed an severe bug parsing current jsp file.
+
+v0.76.3
+ 2007-08-10
+ - Add an option 'searchdecl' set by javacomplete#SetSearchdeclMethod().
+ - Make an improvement for jsp file.
+ - Clear cache when set options affecting classpath.
+ - Improved DoGetPackageList() and s:GenerateImports().
+ - Replace codes searching list of string with index().
+
+v0.76.2
+ 2007-08-08
+ - Fix failing to list members of nested class.
+ - Combine members of local packages and loadable packages.
+ - Add quick recognition of package or import.
+ 2007-08-06 Add inherited fields and methods to local class.
+
+v0.76.1
+ 2007-08-04
+ - Fix using a: in javacomplete#SetClassPath()
+ - Fix a bug in javacomplete#GetClassPath()
+
+v0.76 2007-08-04
+ 2007-08-04
+ - Fix a infinite loop bug in s:GetMatchedIndexEx()
+ - Fix that array type not recognised in compound expression.
+ - Add a option for JDK1.1. See FAQ 3.
+ 2007-08-03
+ - Improve for 'this' or 'super'.
+ - Support searching toplevel class in sourcepath.
+ - Clean
+ 2007-08-02
+ - Improve the process of checking a class in one of packages.
+ 2007-08-01
+ - Add Searchdecl() using java_parser.vim to provide quick information.
+ - Supports input context: "StringLiteral".|, "int.|", "void.|"
+ 2007-07-28
+ - Automatcally compile Reflection.java and place it to $HOME.
+ - Add option 'javacompiler', default 'javac'
+ - Add option 'java', default 'java'
+
+v0.75 2007-02-13
+ - Add java_parser.vim.
+ - Add b:sourcepath option.
+ - Improve recognition of classes defined in current buffer or in source path.
+ - Support generating class information from tags instead of returning list directly.
+
+v0.74 2007-02-03
+ - Support jre1.2 (and above).
+ - Support input context like "boolean.class.|"
+ - Handle java primitive types like 'int'.
+
+v0.73 2007-02-01
+ - Fix bug that CLASSPATH not used when b:classpath or g:java_classpath not set.
+ - Fix bug that call filter() without making a copy for incomplete.
+ - Improve recognition of declaration of this class
+
+v0.72 2007-01-31 Handle nested expression.
+v0.71 2007-01-28 Add Basic support for class in current folder.
+v0.70 2007-01-27 Complete the reflection part.
+v0.60 2007-01-25 Design TClassInfo, etc.
+v0.50 2007-01-21 Use java and Reflection.class directly.
+
+
+6.2 Parser *java-parser-history*
+
+v0.67
+ 2007-09-11 Append a error string to imported qid when error occurs.
+ 2007-09-10 Improved regexp constants.
+ 2007-09-07 Fixed type2Str(). Removed qualident2Str().
+
+v0.66.1 08-30 Changed classCreatorRest().
+v0.66 08-27 Minor changes
+
+v0.65
+ 2007-08-23
+ - Improved s:scanComment(), s:Strpart(), s:String2Flags().
+ - Improved recognizing methods, ctors, and variable declarators declared in most common form.
+ - Added s:optFinalParameter(), s:methodDeclaratorRest_opt().
+ - Removed s:GetLine() and s:GetCol().
+ - Rewrote binary functions.
+
+v0.64
+ 2007-08-21
+ - Added quick recognizing fields or methods declared in most common form.
+ - Optimized code: s:modeAndEXPR(), formalParameter(), and others.
+
+v0.63
+ 2007-08-10
+ - Removed the unclear s:tokens and s:modifier_keywords.
+ - Add java_parser#GetSnapshot() and java_parser#Restore().
+ 2007-08-09 Fixed a bug when no top level class defined
+
+v0.62 2007-08-08
+ 2007-08-08 Fix values in s:Flags and s:modifiersOpt() and the related.
+ 2007-08-07 Optimize code of scanDoubleQuote() and importDeclaration().
+
+v0.61 2007-08-04
+ 2007-08-01 Fix a bug typetag(). return a:token -> return tolower(a:token)
+ 2007-07-31
+ - Rename all script functions matching "s:Java_\(\i\+\)" to "s:\1".
+ - Change s:EOI = ''
+ - Use get() instead of s:GetOption(). Remove it.
+ - Use repeat() instead of s:PrependChar(). Remove it.
+ - Improve scanChar()
+
+v0.60 2007-07-31 Now it nearly is a complete parser and support Java5,6.
+ And tested correctly on all java files in jdk6 src.zip.
+ 2007-07-19 Support new language features in java 5 and above.
+ 2007-07-25 Add supports for parsing statement, block or expression
+ 2007-07-28 Place it to autoload directory.
+ 2007-07-30 Clean this script.
+
+v0.51 2007-02-13 Optimize several scan function.
+v0.50 2007-02-10 Complete the skeleton.
+
+
+6.3 Reflection.java *javacomplete-reflection*
+
+v0.77
+ 2007-09-14 Improved generating information of all packages in jar files.
+ 2007-09-06
+ - Improved getting paths of all system jar files for different JDKs
+ in different platforms.
+ 2007-08-14 Major improvement. Support nontoplevel classes.
+
+v0.76.3
+ 2007-08-09 Redefined '-P' option for returning all packages and subpackages info in one time.
+
+v0.76.2
+ 2007-08-06 Return a modifier value as a string because it more than 32bit.
+
+v0.76
+ 2007-08-04 Support checking and reading package members for '-E'.
+ 2007-08-02
+ - Add an option '-E'.
+ - Use ZipFile and ZipEntry instead of JarFile and JarEntry,
+ so that it can be compiled by and run on JDK1.1 and above.
+v0.7 2007-02-17
+
+==============================================================================
+7. Todo *javacomplete-todo*
+
+- 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
+
+==============================================================================
+8. Thanks *javacomplete-thanks*
+ * Bram Moolenaar and all Vim contributors for Vim
+ * The insenvim project
+ * The javac and gjc sources
+ * All of you for using this script :)
+
+ * For help, documentation, bug report :
+ Martin Stubenschrott author of IComplete
+ Vissale NEANG author of OmniCppComplete
+ David Fishburn author of SQLComplete and others
+ Nico Weber testing on the Mac
+ Thomas Link testing on cygwin+bash
+ Zhixing Yu
+ * For the bug of 'wildignore' options
+ Rodrigo Rosenfeld Rosas
+ Alexandru Mo?oi
+
+FeedBack:
+Any problem, bug or suggest are welcome to send to fangread@yahoo.com.cn
+
+==============================================================================
+ vim:tw=78:ts=8:ft=help:norl: