xref: /vim-8.2.3635/runtime/ftplugin/java.vim (revision 071d4279)
1*071d4279SBram Moolenaar" Vim filetype plugin file
2*071d4279SBram Moolenaar" Language:	Java
3*071d4279SBram Moolenaar" Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
4*071d4279SBram Moolenaar" Last Change:  2004 May 16
5*071d4279SBram Moolenaar" URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
6*071d4279SBram Moolenaar
7*071d4279SBram Moolenaarif exists("b:did_ftplugin") | finish | endif
8*071d4279SBram Moolenaarlet b:did_ftplugin = 1
9*071d4279SBram Moolenaar
10*071d4279SBram Moolenaar" Make sure the continuation lines below do not cause problems in
11*071d4279SBram Moolenaar" compatibility mode.
12*071d4279SBram Moolenaarlet s:save_cpo = &cpo
13*071d4279SBram Moolenaarset cpo-=C
14*071d4279SBram Moolenaar
15*071d4279SBram Moolenaar" Go ahead and set this to get decent indenting even if the indent files
16*071d4279SBram Moolenaar" aren't being used.  For people who really don't want any indentation,
17*071d4279SBram Moolenaar" let them turn it off.
18*071d4279SBram Moolenaarif !exists("g:ftplugin_java_no_indent")
19*071d4279SBram Moolenaar    setlocal cindent
20*071d4279SBram Moolenaar
21*071d4279SBram Moolenaar    "---------------------
22*071d4279SBram Moolenaar    " Correctly indent anonymous classes
23*071d4279SBram Moolenaar    " From Johannes Zellner <[email protected]>
24*071d4279SBram Moolenaar    setlocal cinoptions+=j1
25*071d4279SBram Moolenaar    "---------------------
26*071d4279SBram Moolenaarendif
27*071d4279SBram Moolenaar
28*071d4279SBram Moolenaar" For filename completion, prefer the .java extension over the .class
29*071d4279SBram Moolenaar" extension.
30*071d4279SBram Moolenaarset suffixes+=.class
31*071d4279SBram Moolenaar
32*071d4279SBram Moolenaar" Enable gf on import statements.  Convert . in the package
33*071d4279SBram Moolenaar" name to / and append .java to the name, then search the path.
34*071d4279SBram Moolenaarsetlocal includeexpr=substitute(v:fname,'\\.','/','g')
35*071d4279SBram Moolenaarsetlocal suffixesadd=.java
36*071d4279SBram Moolenaarif exists("g:ftplugin_java_source_path")
37*071d4279SBram Moolenaar    let &l:path=g:ftplugin_java_source_path . ',' . &l:path
38*071d4279SBram Moolenaarendif
39*071d4279SBram Moolenaar
40*071d4279SBram Moolenaar" Set 'formatoptions' to break comment lines but not other lines,
41*071d4279SBram Moolenaar" and insert the comment leader when hitting <CR> or using "o".
42*071d4279SBram Moolenaarsetlocal formatoptions-=t formatoptions+=croql
43*071d4279SBram Moolenaar
44*071d4279SBram Moolenaar" Set 'comments' to format dashed lists in comments. Behaves just like C.
45*071d4279SBram Moolenaarsetlocal comments& comments^=sO:*\ -,mO:*\ \ ,exO:*/
46*071d4279SBram Moolenaar
47*071d4279SBram Moolenaarsetlocal commentstring=//%s
48*071d4279SBram Moolenaar
49*071d4279SBram Moolenaar" Change the :browse e filter to primarily show Java-related files.
50*071d4279SBram Moolenaarif has("gui_win32")
51*071d4279SBram Moolenaar    let  b:browsefilter="Java Files (*.java)\t*.java\n" .
52*071d4279SBram Moolenaar		\	"Properties Files (*.prop*)\t*.prop*\n" .
53*071d4279SBram Moolenaar		\	"Manifest Files (*.mf)\t*.mf\n" .
54*071d4279SBram Moolenaar		\	"All Files (*.*)\t*.*\n"
55*071d4279SBram Moolenaarendif
56*071d4279SBram Moolenaar
57*071d4279SBram Moolenaar" Undo the stuff we changed.
58*071d4279SBram Moolenaarlet b:undo_ftplugin = "setlocal cindent< cinoptions< suffixes< suffixesadd<" .
59*071d4279SBram Moolenaar		\     " formatoptions< comments< commentstring< path< includeexpr<" .
60*071d4279SBram Moolenaar		\     " | unlet! b:browsefilter"
61*071d4279SBram Moolenaar
62*071d4279SBram Moolenaar" Restore the saved compatibility options.
63*071d4279SBram Moolenaarlet &cpo = s:save_cpo
64