mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-02-03 06:40:05 +08:00
feat(checkers
): support lsp diagnostic jumping
If the lsp is enabled for current buffer. the following key bindings should support lsp diagnostic. 1. SPC e l: diagnostic set location list 2. SPC e n: jump to next diagnostic 3. SPC e p: jump to previous diagnostic
This commit is contained in:
parent
c6156bf766
commit
55365f64f8
@ -169,6 +169,9 @@ function! s:neomake_cursor_move_delay() abort
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:toggle_show_error(...) abort
|
function! s:toggle_show_error(...) abort
|
||||||
|
if SpaceVim#lsp#buf_server_ready()
|
||||||
|
call SpaceVim#lsp#diagnostic_set_loclist()
|
||||||
|
else
|
||||||
let llist = getloclist(0, {'size' : 1, 'winid' : 1})
|
let llist = getloclist(0, {'size' : 1, 'winid' : 1})
|
||||||
let qlist = getqflist({'size' : 1, 'winid' : 1})
|
let qlist = getqflist({'size' : 1, 'winid' : 1})
|
||||||
if llist.size == 0 && qlist.size == 0
|
if llist.size == 0 && qlist.size == 0
|
||||||
@ -189,9 +192,13 @@ function! s:toggle_show_error(...) abort
|
|||||||
if a:1 == 1
|
if a:1 == 1
|
||||||
wincmd w
|
wincmd w
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:jump_to_next_error() abort
|
function! s:jump_to_next_error() abort
|
||||||
|
if SpaceVim#lsp#buf_server_ready()
|
||||||
|
call SpaceVim#lsp#diagnostic_goto_next()
|
||||||
|
else
|
||||||
try
|
try
|
||||||
lnext
|
lnext
|
||||||
catch
|
catch
|
||||||
@ -211,9 +218,13 @@ function! s:jump_to_next_error() abort
|
|||||||
endtry
|
endtry
|
||||||
endtry
|
endtry
|
||||||
endtry
|
endtry
|
||||||
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:jump_to_previous_error() abort
|
function! s:jump_to_previous_error() abort
|
||||||
|
if SpaceVim#lsp#buf_server_ready()
|
||||||
|
call SpaceVim#lsp#diagnostic_goto_prev()
|
||||||
|
else
|
||||||
try
|
try
|
||||||
lprevious
|
lprevious
|
||||||
catch
|
catch
|
||||||
@ -233,6 +244,7 @@ function! s:jump_to_previous_error() abort
|
|||||||
endtry
|
endtry
|
||||||
endtry
|
endtry
|
||||||
endtry
|
endtry
|
||||||
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
let s:last_echoed_error = ''
|
let s:last_echoed_error = ''
|
||||||
|
@ -101,6 +101,10 @@ function! SpaceVim#layers#lang#vim#config() abort
|
|||||||
autocmd BufWritePost *.vim call s:generate_doc()
|
autocmd BufWritePost *.vim call s:generate_doc()
|
||||||
augroup END
|
augroup END
|
||||||
endif
|
endif
|
||||||
|
" if the lsp layer is enabled, we should disable default linter
|
||||||
|
if SpaceVim#layers#lsp#check_server('vimls') || SpaceVim#layers#lsp#check_filetype('vim')
|
||||||
|
let g:neomake_vim_enabled_makers = []
|
||||||
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:on_exit(...) abort
|
function! s:on_exit(...) abort
|
||||||
|
@ -59,6 +59,18 @@ if (has('nvim-0.5.0') && s:NVIM_VERSION.is_release_version()) || has('nvim-0.6.0
|
|||||||
function! SpaceVim#lsp#remove_workspace_folder() abort
|
function! SpaceVim#lsp#remove_workspace_folder() abort
|
||||||
lua vim.lsp.buf.remove_workspace_folder()
|
lua vim.lsp.buf.remove_workspace_folder()
|
||||||
endfunction
|
endfunction
|
||||||
|
function! SpaceVim#lsp#buf_server_ready() abort
|
||||||
|
return v:lua.vim.lsp.buf.server_ready()
|
||||||
|
endfunction
|
||||||
|
function! SpaceVim#lsp#diagnostic_set_loclist() abort
|
||||||
|
lua vim.lsp.diagnostic.set_loclist()
|
||||||
|
endfunction
|
||||||
|
function! SpaceVim#lsp#diagnostic_goto_next() abort
|
||||||
|
lua vim.lsp.diagnostic.goto_next()
|
||||||
|
endfunction
|
||||||
|
function! SpaceVim#lsp#diagnostic_goto_prev() abort
|
||||||
|
lua vim.lsp.diagnostic.goto_prev()
|
||||||
|
endfunction
|
||||||
elseif SpaceVim#layers#isLoaded('autocomplete') && get(g:, 'spacevim_autocomplete_method') ==# 'coc'
|
elseif SpaceVim#layers#isLoaded('autocomplete') && get(g:, 'spacevim_autocomplete_method') ==# 'coc'
|
||||||
" use coc.nvim
|
" use coc.nvim
|
||||||
let s:coc_language_servers = {}
|
let s:coc_language_servers = {}
|
||||||
|
Loading…
Reference in New Issue
Block a user