1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-23 22:31:34 +08:00
SpaceVim/autoload/SpaceVim/layers/lang/java.vim

126 lines
5.7 KiB
VimL
Raw Normal View History

2017-01-22 23:20:41 +08:00
""
2017-01-31 19:05:59 +08:00
" @section lang#java, layer-lang-java
2017-01-29 22:55:09 +08:00
" @parentsection layers
" This layer is for Java development.
"
" @subsection Mappings
2017-01-22 23:20:41 +08:00
" >
" Import mappings:
"
" Mode Key Function
" -------------------------------------------------------------
" normal <F4> import class under cursor
" insert <F4> import class under cursor
" normal <leader>jI import missing classes
" normal <leader>jR remove unused imports
" normal <leader>ji smart import class under cursor
2017-01-22 23:20:41 +08:00
" normal <leader>jii same as <F4>
" insert <c-j>I import missing imports
" insert <c-j>R remove unused imports
" insert <c-j>i smart import class under cursor
" insert <c-j>ii add import for class under cursor
"
" Generate mappings:
2017-01-22 23:20:41 +08:00
"
" Mode Key Function
" -------------------------------------------------------------
" normal <leader>jA generate accessors
" normal <leader>js generate setter accessor
" normal <leader>jg generate getter accessor
" normal <leader>ja generate setter and getter accessor
" normal <leader>jts generate toString function
" normal <leader>jeq generate equals and hashcode function
" normal <leader>jc generate constructor
" normal <leader>jcc generate default constructor
" insert <c-j>s generate setter accessor
" insert <c-j>g generate getter accessor
" insert <c-j>a generate getter and setter accessor
" visual <leader>js generate setter accessor
" visual <leader>jg generate getter accessor
" visual <leader>ja generate setter and getter accessor
2017-01-22 23:20:41 +08:00
" <
2017-03-19 16:27:36 +08:00
" @subsection Code formatting
" To make neoformat support java file, you should install uncrustify.
" or download google's formater jar from:
" https://github.com/google/google-java-format
2017-01-22 23:20:41 +08:00
"
2017-03-19 16:27:36 +08:00
" and set 'g:spacevim_layer_lang_java_formatter' to the path of the jar.
2017-01-22 23:20:41 +08:00
2017-01-15 21:30:51 +08:00
function! SpaceVim#layers#lang#java#plugins() abort
2017-03-19 16:27:36 +08:00
let plugins = [
\ ['wsdjeg/vim-dict', { 'on_ft' : 'java'}],
\ ['wsdjeg/java_getset.vim', { 'on_ft' : 'java', 'loadconf' : 1}],
\ ['wsdjeg/JavaUnit.vim', { 'on_ft' : 'java'}],
\ ['vim-jp/vim-java', { 'on_ft' : 'java'}],
\ ['artur-shaik/vim-javacomplete2', { 'on_ft' : ['java','jsp'], 'loadconf' : 1}],
\ ]
return plugins
2017-01-15 21:30:51 +08:00
endfunction
function! SpaceVim#layers#lang#java#config() abort
2017-03-19 16:27:36 +08:00
function! s:java_mappings() abort
2017-05-10 00:03:18 +08:00
let g:_spacevim_mappings_space.l = {'name' : '+Language Specified'}
if g:spacevim_enable_insert_leader
inoremap <silent> <buffer> <leader>UU <esc>bgUwea
inoremap <silent> <buffer> <leader>uu <esc>bguwea
inoremap <silent> <buffer> <leader>ua <esc>bgulea
inoremap <silent> <buffer> <leader>Ua <esc>bgUlea
endif
2017-03-19 16:27:36 +08:00
nmap <silent><buffer> <F4> <Plug>(JavaComplete-Imports-Add)
imap <silent><buffer> <F4> <Plug>(JavaComplete-Imports-Add)
nmap <silent><buffer> <leader>jI <Plug>(JavaComplete-Imports-AddMissing)
nmap <silent><buffer> <leader>jR <Plug>(JavaComplete-Imports-RemoveUnused)
nmap <silent><buffer> <leader>ji <Plug>(JavaComplete-Imports-AddSmart)
nmap <silent><buffer> <leader>jii <Plug>(JavaComplete-Imports-Add)
2017-01-22 21:29:29 +08:00
2017-03-19 16:27:36 +08:00
imap <silent><buffer> <C-j>I <Plug>(JavaComplete-Imports-AddMissing)
imap <silent><buffer> <C-j>R <Plug>(JavaComplete-Imports-RemoveUnused)
imap <silent><buffer> <C-j>i <Plug>(JavaComplete-Imports-AddSmart)
imap <silent><buffer> <C-j>ii <Plug>(JavaComplete-Imports-Add)
2017-01-22 21:29:29 +08:00
2017-03-19 16:27:36 +08:00
nmap <silent><buffer> <leader>jM <Plug>(JavaComplete-Generate-AbstractMethods)
2017-01-22 21:29:29 +08:00
2017-03-19 16:27:36 +08:00
imap <silent><buffer> <C-j>jM <Plug>(JavaComplete-Generate-AbstractMethods)
2017-05-09 23:01:28 +08:00
call SpaceVim#mapping#space#langSPC('nmap', ['l','M'], '<Plug>(JavaComplete-Generate-AbstractMethods)', 'Generate abstract methods', 0)
2017-01-22 21:29:29 +08:00
2017-03-19 16:27:36 +08:00
nmap <silent><buffer> <leader>jA <Plug>(JavaComplete-Generate-Accessors)
nmap <silent><buffer> <leader>js <Plug>(JavaComplete-Generate-AccessorSetter)
nmap <silent><buffer> <leader>jg <Plug>(JavaComplete-Generate-AccessorGetter)
nmap <silent><buffer> <leader>ja <Plug>(JavaComplete-Generate-AccessorSetterGetter)
nmap <silent><buffer> <leader>jts <Plug>(JavaComplete-Generate-ToString)
nmap <silent><buffer> <leader>jeq <Plug>(JavaComplete-Generate-EqualsAndHashCode)
nmap <silent><buffer> <leader>jc <Plug>(JavaComplete-Generate-Constructor)
nmap <silent><buffer> <leader>jcc <Plug>(JavaComplete-Generate-DefaultConstructor)
2017-01-22 21:29:29 +08:00
2017-03-19 16:27:36 +08:00
imap <silent><buffer> <C-j>s <Plug>(JavaComplete-Generate-AccessorSetter)
imap <silent><buffer> <C-j>g <Plug>(JavaComplete-Generate-AccessorGetter)
imap <silent><buffer> <C-j>a <Plug>(JavaComplete-Generate-AccessorSetterGetter)
2017-01-22 21:29:29 +08:00
2017-03-19 16:27:36 +08:00
vmap <silent><buffer> <leader>js <Plug>(JavaComplete-Generate-AccessorSetter)
vmap <silent><buffer> <leader>jg <Plug>(JavaComplete-Generate-AccessorGetter)
vmap <silent><buffer> <leader>ja <Plug>(JavaComplete-Generate-AccessorSetterGetter)
let g:neoformat_enabled_java = ['googlefmt']
let g:neoformat_java_googlefmt = {
\ 'exe': 'java',
\ 'args': ['-jar', get(g:,'spacevim_layer_lang_java_formatter', '')],
\ 'replace': 0,
\ 'stdin': 0,
\ 'no_append': 0,
\ }
try
let g:neoformat_enabled_java += neoformat#formatters#java#enabled()
catch
endtry
endfunction
augroup SpaceVim_lang_java
au!
autocmd FileType java setlocal omnifunc=javacomplete#Complete
autocmd FileType java call s:java_mappings()
set tags +=~/others/openjdksrc/java/tags
set tags +=~/others/openjdksrc/javax/tags
augroup END
2017-01-15 21:30:51 +08:00
endfunction
2017-03-19 16:27:36 +08:00
" vim:set et sw=2 cc=80: