feat: replace coc-nvim with nvim-lsp
This commit is contained in:
parent
e15a0557f0
commit
a6c2877b0d
4 changed files with 188 additions and 147 deletions
|
@ -3,14 +3,12 @@ set completeopt=menu,preview,menuone,noinsert
|
|||
set omnifunc=v:lua.vim.lsp.omnifunc
|
||||
|
||||
let g:deoplete#enable_at_startup = 1
|
||||
" let g:deoplete#auto_refresh_delay = 10 " TODO disable it again if it doesn't make a difference
|
||||
let g:deoplete#smart_case = 1
|
||||
let g:deoplete#min_pattern_length = 1
|
||||
|
||||
" Use <c-space> to trigger completion.
|
||||
inoremap <silent><expr> <c-space> deoplete#manual_complete()
|
||||
|
||||
"Autocomplete and cycle from top-to-bottom of suggestions using <Tab>.
|
||||
" Autocomplete and cycle from top-to-bottom of suggestions using <Tab>.
|
||||
inoremap <expr><TAB> pumvisible() ? "\<c-n>" : "\<TAB>"
|
||||
|
||||
" <TAB>: completion.
|
||||
|
@ -25,19 +23,170 @@ function! s:check_back_space() abort
|
|||
return !col || getline('.')[col - 1] =~# '\s'
|
||||
endfunction
|
||||
|
||||
" these will likely interfere with coc.vim maps
|
||||
nnoremap <silent> gd <cmd>lua vim.lsp.buf.declaration()<CR>
|
||||
nnoremap <silent> <c-]> <cmd>lua vim.lsp.buf.definition()<CR>
|
||||
nnoremap <silent> K <cmd>lua vim.lsp.buf.hover()<CR>
|
||||
nnoremap <silent> gD <cmd>lua vim.lsp.buf.implementation()<CR>
|
||||
nnoremap <silent> <c-k> <cmd>lua vim.lsp.buf.signature_help()<CR>
|
||||
nnoremap <silent> 1gD <cmd>lua vim.lsp.buf.type_definition()<CR>
|
||||
nnoremap <silent> gr <cmd>lua vim.lsp.buf.references()<CR>
|
||||
nnoremap <silent> g0 <cmd>lua vim.lsp.buf.document_symbol()<CR>
|
||||
" maps
|
||||
nnoremap <silent> gd <cmd>lua vim.lsp.buf.declaration()<CR>
|
||||
nnoremap <silent> <c-]> <cmd>lua vim.lsp.buf.definition()<CR>
|
||||
nnoremap <silent> K <cmd>lua vim.lsp.buf.hover()<CR>
|
||||
nnoremap <silent> gD <cmd>lua vim.lsp.buf.implementation()<CR>
|
||||
nnoremap <silent> <c-k> <cmd>lua vim.lsp.buf.signature_help()<CR>
|
||||
nnoremap <silent> 1gD <cmd>lua vim.lsp.buf.type_definition()<CR>
|
||||
nnoremap <silent> gr <cmd>lua vim.lsp.buf.references()<CR>
|
||||
nnoremap <silent> g0 <cmd>lua vim.lsp.buf.document_symbol()<CR>
|
||||
nnoremap <silent> <leader>f <cmd>lua vim.lsp.buf.formatting()<CR>
|
||||
nnoremap <silent> <leader>a <cmd>lua vim.lsp.buf.code_action()<CR>
|
||||
nnoremap <silent> <leader>r <cmd>lua vim.lsp.buf.rename()<CR>
|
||||
|
||||
" nvim-lsp config
|
||||
packloadall " https://github.com/neovim/neovim/issues/11407
|
||||
lua << EOF
|
||||
local nvim_lsp = require'nvim_lsp'
|
||||
local configs = require'nvim_lsp/configs'
|
||||
local util = require'nvim_lsp/util'
|
||||
|
||||
-- remove once omnisharp support is merged
|
||||
configs.omnisharp_lsp = {
|
||||
default_config = {
|
||||
cmd = {"omnisharp","-lsp"};
|
||||
filetypes = {"cs"};
|
||||
root_dir = util.root_pattern("*.csproj", "*.sln", ".git");
|
||||
settings = {};
|
||||
};
|
||||
}
|
||||
|
||||
nvim_lsp.tsserver.setup{}
|
||||
nvim_lsp.omnisharp_lsp.setup{}
|
||||
|
||||
-- TODO install globally or use :LspInstall
|
||||
nvim_lsp.bashls.setup{}
|
||||
nvim_lsp.html.setup{}
|
||||
nvim_lsp.cssls.setup{}
|
||||
nvim_lsp.yamlls.setup{}
|
||||
nvim_lsp.jsonls.setup{}
|
||||
nvim_lsp.vimls.setup{}
|
||||
nvim_lsp.dockerls.setup{}
|
||||
|
||||
-- based on: https://github.com/mikew/vimrc/blob/master/src/nvim/coc-settings.json
|
||||
nvim_lsp.diagnosticls.setup{
|
||||
filetypes = {
|
||||
"javascript",
|
||||
"javascript.jsx",
|
||||
"javascriptreact",
|
||||
"typescript",
|
||||
"typescript.jsx",
|
||||
"typescriptreact",
|
||||
"json",
|
||||
"yaml",
|
||||
"markdown",
|
||||
"html",
|
||||
"css"
|
||||
};
|
||||
init_options = {
|
||||
linters = {
|
||||
eslint = {
|
||||
command = "eslint";
|
||||
args = {
|
||||
"--stdin",
|
||||
"--stdin-filename",
|
||||
"%filepath",
|
||||
"--format",
|
||||
"json"
|
||||
};
|
||||
rootPatterns = {".git"};
|
||||
debounce = 50;
|
||||
sourceName = "eslint";
|
||||
parseJson = {
|
||||
errorsRoot = "[0].messages";
|
||||
line = "line";
|
||||
column = "column";
|
||||
endLine = "endLine";
|
||||
endColumn = "endColumn";
|
||||
message = "${message} [${ruleId}]";
|
||||
security = "severity";
|
||||
};
|
||||
securities = {
|
||||
["2"] = "error";
|
||||
["1"] = "warning";
|
||||
};
|
||||
};
|
||||
stylelint = {
|
||||
command = "stylelint";
|
||||
args = {
|
||||
"--stdin",
|
||||
"--formatter",
|
||||
"json",
|
||||
"--file",
|
||||
"%filepath"
|
||||
};
|
||||
rootPatterns = {".git"};
|
||||
debounce = 50;
|
||||
sourceName = "stylelint";
|
||||
parseJson = {
|
||||
errorsRoot = "[0].warnings";
|
||||
line = "line";
|
||||
column = "column";
|
||||
message = "${text}";
|
||||
security = "severity";
|
||||
};
|
||||
securities = {
|
||||
error = "error";
|
||||
warning = "warning";
|
||||
};
|
||||
};
|
||||
};
|
||||
filetypes = {
|
||||
javascript = {"eslint"};
|
||||
["javascript.jsx"] = {"eslint"};
|
||||
javascriptreact = {"eslint"};
|
||||
typescript = {"eslint"};
|
||||
["typescript.jsx"] = {"eslint"};
|
||||
typescriptreact = {"eslint"};
|
||||
css = {"stylelint"};
|
||||
};
|
||||
formatters = {
|
||||
eslint = {
|
||||
command = "eslint";
|
||||
args = {
|
||||
"--fix",
|
||||
"%file"
|
||||
};
|
||||
rootPatterns = {".git"};
|
||||
isStdout = 1;
|
||||
doesWriteToFile = 1;
|
||||
};
|
||||
stylelint = {
|
||||
command = "stylelint";
|
||||
args = {
|
||||
"--stdin",
|
||||
"--fix",
|
||||
"--file",
|
||||
"%filepath"
|
||||
};
|
||||
rootPatterns = {".git"};
|
||||
};
|
||||
prettier = {
|
||||
command = "prettier";
|
||||
args = {
|
||||
"--stdin",
|
||||
"--stdin-filepath",
|
||||
"%filepath"
|
||||
};
|
||||
rootPatterns = {".git"};
|
||||
};
|
||||
};
|
||||
formatFiletypes = {
|
||||
javascript = {"eslint"};
|
||||
["javascript.jsx"] = {"eslint"};
|
||||
javascriptreact = {"eslint"};
|
||||
typescript = {"eslint"};
|
||||
["typescript.jsx"] = {"eslint"};
|
||||
typescriptreact = {"eslint"};
|
||||
json = {"prettier"};
|
||||
yaml = {"prettier"};
|
||||
markdown = {"prettier"};
|
||||
html = {"prettier"};
|
||||
css = {"stylelint"};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
EOF
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue