Migrate to coc
This commit is contained in:
parent
6f63ce00ec
commit
54e0c89967
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"languageserver": {
|
||||||
|
"rust": {
|
||||||
|
"command": "rustup",
|
||||||
|
"args": ["run", "nightly", "rust-analyzer"],
|
||||||
|
"filetypes": ["rust"],
|
||||||
|
"rootPatterns": ["Cargo.toml"]
|
||||||
|
},
|
||||||
|
"elm": {
|
||||||
|
"command": "elm-language-server",
|
||||||
|
"filetypes": ["elm"],
|
||||||
|
"rootPatterns": ["elm.json"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
72
init.vim
72
init.vim
|
@ -3,35 +3,24 @@ set nocompatible
|
||||||
|
|
||||||
" PLUGNIS ###########################################################{{{
|
" PLUGNIS ###########################################################{{{
|
||||||
call plug#begin()
|
call plug#begin()
|
||||||
if has('nvim')
|
|
||||||
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
|
" Conquer of Completion
|
||||||
else
|
Plug 'neoclide/coc.nvim', {'branch': 'release'}
|
||||||
Plug 'Shougo/deoplete.nvim'
|
|
||||||
Plug 'roxma/nvim-yarp'
|
|
||||||
Plug 'roxma/vim-hug-neovim-rpc'
|
|
||||||
endif
|
|
||||||
|
|
||||||
" General plugins
|
" General plugins
|
||||||
Plug 'vim-airline/vim-airline'
|
Plug 'vim-airline/vim-airline'
|
||||||
Plug 'vim-airline/vim-airline-themes'
|
Plug 'vim-airline/vim-airline-themes'
|
||||||
Plug 'https://gitea.tforgione.fr/tforgione/peach.git'
|
Plug 'https://gitea.tforgione.fr/tforgione/peach.git'
|
||||||
Plug 'scrooloose/nerdtree'
|
Plug 'scrooloose/nerdtree'
|
||||||
Plug 'w0rp/ale'
|
|
||||||
Plug 'tpope/vim-abolish'
|
Plug 'tpope/vim-abolish'
|
||||||
|
|
||||||
" Language specific plugins
|
" Language specific plugins
|
||||||
|
|
||||||
" C++
|
|
||||||
Plug 'Shougo/deoplete-clangx'
|
|
||||||
|
|
||||||
" Rust
|
" Rust
|
||||||
Plug 'rust-lang/rust.vim'
|
Plug 'rust-lang/rust.vim'
|
||||||
Plug 'racer-rust/vim-racer'
|
|
||||||
Plug 'sebastianmarkow/deoplete-rust'
|
|
||||||
|
|
||||||
" Elm
|
" Elm
|
||||||
Plug 'ElmCast/elm-vim'
|
Plug 'ElmCast/elm-vim'
|
||||||
Plug 'antew/vim-elm-language-server'
|
|
||||||
|
|
||||||
" Toml
|
" Toml
|
||||||
Plug 'cespare/vim-toml'
|
Plug 'cespare/vim-toml'
|
||||||
|
@ -157,11 +146,46 @@ let g:markdown_composer_browser = 'firefox'
|
||||||
let g:instant_markdown_autostart = 0
|
let g:instant_markdown_autostart = 0
|
||||||
" }}}
|
" }}}
|
||||||
|
|
||||||
" CODE COMPLETION ###################################################{{{
|
" COC CONFIG ########################################################{{{
|
||||||
|
|
||||||
" Use deoplete
|
" Use `[g` and `]g` to navigate diagnostics
|
||||||
let g:deoplete#enable_at_startup = 1
|
" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list.
|
||||||
autocmd FileType elm call deoplete#custom#buffer_option('auto_complete', v:false)
|
nmap <silent> gp <Plug>(coc-diagnostic-prev)
|
||||||
|
nmap <silent> gn <Plug>(coc-diagnostic-next)
|
||||||
|
|
||||||
|
" GoTo code navigation.
|
||||||
|
nmap <silent> gd <Plug>(coc-definition)
|
||||||
|
nmap <silent> gy <Plug>(coc-type-definition)
|
||||||
|
nmap <silent> gi <Plug>(coc-implementation)
|
||||||
|
nmap <silent> gr <Plug>(coc-references)
|
||||||
|
|
||||||
|
" Use K to show documentation in preview window.
|
||||||
|
nnoremap <silent> K :call <SID>show_documentation()<CR>
|
||||||
|
|
||||||
|
|
||||||
|
function! s:show_documentation()
|
||||||
|
if (index(['vim','help'], &filetype) >= 0)
|
||||||
|
execute 'h '.expand('<cword>')
|
||||||
|
elseif (coc#rpc#ready())
|
||||||
|
call CocActionAsync('doHover')
|
||||||
|
else
|
||||||
|
execute '!' . &keywordprg . " " . expand('<cword>')
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Having longer updatetime (default is 4000 ms = 4 s) leads to noticeable
|
||||||
|
" delays and poor user experience.
|
||||||
|
set updatetime=300
|
||||||
|
|
||||||
|
" Highlight the symbol and its references when holding the cursor.
|
||||||
|
autocmd CursorHold * silent call CocActionAsync('highlight')
|
||||||
|
|
||||||
|
" Symbol renaming.
|
||||||
|
nmap <leader>rn <Plug>(coc-rename)
|
||||||
|
|
||||||
|
" Formatting selected code.
|
||||||
|
xmap <leader>f <Plug>(coc-format-selected)
|
||||||
|
nmap <leader>f <Plug>(coc-format-selected)
|
||||||
|
|
||||||
" Autoclose preview
|
" Autoclose preview
|
||||||
autocmd CursorMovedI * if pumvisible() == 0|pclose|endif
|
autocmd CursorMovedI * if pumvisible() == 0|pclose|endif
|
||||||
|
@ -169,19 +193,7 @@ autocmd InsertLeave * if pumvisible() == 0|pclose|endif
|
||||||
|
|
||||||
" Complete on tab
|
" Complete on tab
|
||||||
inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
|
inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
|
||||||
|
|
||||||
" }}}
|
" }}}
|
||||||
|
|
||||||
" CUSTOM THINGS DEPENDING ON ENV ####################################{{{
|
" CUSTOM THINGS DEPENDING ON ENV ####################################{{{
|
||||||
let g:rustfmt_autosave = 1
|
let g:rustfmt_autosave = 1
|
||||||
let g:ale_linters = {}
|
|
||||||
let g:ale_c_parse_compile_commands=1
|
|
||||||
let g:ale_elm_ls_use_global = 1
|
|
||||||
let g:ale_linters_ignore = { 'elm': ['make'] }
|
|
||||||
let g:ale_lint_on_text_changed = 0
|
|
||||||
if $NVIM_DISABLE_PYTHON_LINTER == '1'
|
|
||||||
let g:ale_linters.python = []
|
|
||||||
endif
|
|
||||||
if $NVIM_DISABLE_JAVA_LINTER == '1'
|
|
||||||
let g:ale_linters.java = []
|
|
||||||
endif
|
|
||||||
|
|
Loading…
Reference in New Issue