@ -21,55 +21,55 @@ local single = { '╭', '─', '╮', '│', '╯', '─', '╰', '│' }
-- TODO https://github.com/neovim/neovim/pull/16591 use vimkeymap.set/del
-- LuaFormatter off
local key_maps = {
{ key = ' gr ' , func = require ( ' navigator.reference ' ) . async_ref , d o c = ' async_ref ' } ,
{ key = ' <Leader>gr ' , func = require ( ' navigator.reference ' ) . reference , d o c = ' reference ' } , -- reference deprecated
{ mode = ' i ' , key = ' <M-k> ' , func = vim.lsp . signature_help , d o c = ' signature_help ' } ,
{ key = ' <c-k> ' , func = vim.lsp . buf.signature_help , d o c = ' signature_help ' } ,
{ key = ' g0 ' , func = require ( ' navigator.symbols ' ) . document_symbols , d o c = ' document_symbols ' } ,
{ key = ' gW ' , func = require ( ' navigator.workspace ' ) . workspace_symbol_live , d o c = ' workspace_symbol_live ' } ,
{ key = ' <c-]> ' , func = require ( ' navigator.definition ' ) . definition , d o c = ' definition ' } ,
{ key = ' gd ' , func = require ( ' navigator.definition ' ) . definition , d o c = ' definition ' } ,
{ key = ' gD ' , func = vim.lsp . buf.declaration , d o c = ' declaration ' } ,
{ key = ' gp ' , func = require ( ' navigator.definition ' ) . definition_preview , d o c = ' definition_preview ' } ,
{ key = ' <Leader>gt ' , func = require ( ' navigator.treesitter ' ) . buf_ts , d o c = ' buf_ts ' } ,
{ key = ' <Leader>gT ' , func = require ( ' navigator.treesitter ' ) . bufs_ts , d o c = ' bufs_ts ' } ,
{ key = ' <Leader>ct ' , func = require ( ' navigator.ctags ' ) . ctags , d o c = ' ctags ' } ,
{ key = ' K ' , func = vim.lsp . buf.hover , d o c = ' hover ' } ,
{ key = ' <Space>ca ' , mode = ' n ' , func = require ( ' navigator.codeAction ' ) . code_action , d o c = ' code_action ' } ,
{ key = ' gr ' , func = require ( ' navigator.reference ' ) . async_ref , d es c = ' async_ref ' } ,
{ key = ' <Leader>gr ' , func = require ( ' navigator.reference ' ) . reference , d es c = ' reference ' } , -- reference deprecated
{ mode = ' i ' , key = ' <M-k> ' , func = vim.lsp . signature_help , d es c = ' signature_help ' } ,
{ key = ' <c-k> ' , func = vim.lsp . buf.signature_help , d es c = ' signature_help ' } ,
{ key = ' g0 ' , func = require ( ' navigator.symbols ' ) . document_symbols , d es c = ' document_symbols ' } ,
{ key = ' gW ' , func = require ( ' navigator.workspace ' ) . workspace_symbol_live , d es c = ' workspace_symbol_live ' } ,
{ key = ' <c-]> ' , func = require ( ' navigator.definition ' ) . definition , d es c = ' definition ' } ,
{ key = ' gd ' , func = require ( ' navigator.definition ' ) . definition , d es c = ' definition ' } ,
{ key = ' gD ' , func = vim.lsp . buf.declaration , d es c = ' declaration ' } ,
{ key = ' gp ' , func = require ( ' navigator.definition ' ) . definition_preview , d es c = ' definition_preview ' } ,
{ key = ' <Leader>gt ' , func = require ( ' navigator.treesitter ' ) . buf_ts , d es c = ' buf_ts ' } ,
{ key = ' <Leader>gT ' , func = require ( ' navigator.treesitter ' ) . bufs_ts , d es c = ' bufs_ts ' } ,
{ key = ' <Leader>ct ' , func = require ( ' navigator.ctags ' ) . ctags , d es c = ' ctags ' } ,
{ key = ' K ' , func = vim.lsp . buf.hover , d es c = ' hover ' } ,
{ key = ' <Space>ca ' , mode = ' n ' , func = require ( ' navigator.codeAction ' ) . code_action , d es c = ' code_action ' } ,
{
key = ' <Space>ca ' ,
mode = ' v ' ,
func = require ( ' navigator.codeAction ' ) . range_code_action ,
d o c = ' range_code_action ' ,
d es c = ' range_code_action ' ,
} ,
-- { key = '<Leader>re', func = 'rename()' },
{ key = ' <Space>rn ' , func = require ( ' navigator.rename ' ) . rename , d o c = ' rename ' } ,
{ key = ' <Leader>gi ' , func = vim.lsp . buf.incoming_calls , d o c = ' incoming_calls ' } ,
{ key = ' <Leader>go ' , func = vim.lsp . buf.outgoing_calls , d o c = ' outgoing_calls ' } ,
{ key = ' gi ' , func = vim.lsp . buf.implementation , d o c = ' implementation ' } ,
{ key = ' <Space>D ' , func = vim.lsp . buf.type_definition , d o c = ' type_definition ' } ,
{ key = ' gL ' , func = require ( ' navigator.diagnostics ' ) . show_diagnostics , d o c = ' show_diagnostics ' } ,
{ key = ' gG ' , func = require ( ' navigator.diagnostics ' ) . show_buf_diagnostics , d o c = ' show_buf_diagnostics ' } ,
{ key = ' <Leader>dt ' , func = require ( ' navigator.diagnostics ' ) . toggle_diagnostics , d o c = ' toggle_diagnostics ' } ,
{ key = ' ]d ' , func = vim.diagnostic . goto_next , d o c = ' next diagnostics ' } ,
{ key = ' [d ' , func = vim.diagnostic . goto_prev , d o c = ' prev diagnostics ' } ,
{ key = ' ]O ' , func = vim.diagnostic . set_loclist , d o c = ' diagnostics set loclist ' } ,
{ key = ' ]r ' , func = require ( ' navigator.treesitter ' ) . goto_next_usage , d o c = ' goto_next_usage ' } ,
{ key = ' [r ' , func = require ( ' navigator.treesitter ' ) . goto_previous_usage , d o c = ' goto_previous_usage ' } ,
{ key = ' <C-LeftMouse> ' , func = vim.lsp . buf.definition , d o c = ' definition ' } ,
{ key = ' g<LeftMouse> ' , func = vim.lsp . buf.implementation , d o c = ' implementation ' } ,
{ key = ' <Leader>k ' , func = require ( ' navigator.dochighlight ' ) . hi_symbol , d o c = ' hi_symbol ' } ,
{ key = ' <Space>wa ' , func = require ( ' navigator.workspace ' ) . add_workspace_folder , d o c = ' add_workspace_folder ' } ,
{ key = ' <Space>rn ' , func = require ( ' navigator.rename ' ) . rename , d es c = ' rename ' } ,
{ key = ' <Leader>gi ' , func = vim.lsp . buf.incoming_calls , d es c = ' incoming_calls ' } ,
{ key = ' <Leader>go ' , func = vim.lsp . buf.outgoing_calls , d es c = ' outgoing_calls ' } ,
{ key = ' gi ' , func = vim.lsp . buf.implementation , d es c = ' implementation ' } ,
{ key = ' <Space>D ' , func = vim.lsp . buf.type_definition , d es c = ' type_definition ' } ,
{ key = ' gL ' , func = require ( ' navigator.diagnostics ' ) . show_diagnostics , d es c = ' show_diagnostics ' } ,
{ key = ' gG ' , func = require ( ' navigator.diagnostics ' ) . show_buf_diagnostics , d es c = ' show_buf_diagnostics ' } ,
{ key = ' <Leader>dt ' , func = require ( ' navigator.diagnostics ' ) . toggle_diagnostics , d es c = ' toggle_diagnostics ' } ,
{ key = ' ]d ' , func = vim.diagnostic . goto_next , d es c = ' next diagnostics ' } ,
{ key = ' [d ' , func = vim.diagnostic . goto_prev , d es c = ' prev diagnostics ' } ,
{ key = ' ]O ' , func = vim.diagnostic . set_loclist , d es c = ' diagnostics set loclist ' } ,
{ key = ' ]r ' , func = require ( ' navigator.treesitter ' ) . goto_next_usage , d es c = ' goto_next_usage ' } ,
{ key = ' [r ' , func = require ( ' navigator.treesitter ' ) . goto_previous_usage , d es c = ' goto_previous_usage ' } ,
{ key = ' <C-LeftMouse> ' , func = vim.lsp . buf.definition , d es c = ' definition ' } ,
{ key = ' g<LeftMouse> ' , func = vim.lsp . buf.implementation , d es c = ' implementation ' } ,
{ key = ' <Leader>k ' , func = require ( ' navigator.dochighlight ' ) . hi_symbol , d es c = ' hi_symbol ' } ,
{ key = ' <Space>wa ' , func = require ( ' navigator.workspace ' ) . add_workspace_folder , d es c = ' add_workspace_folder ' } ,
{
key = ' <Space>wr ' ,
func = require ( ' navigator.workspace ' ) . remove_workspace_folder ,
d o c = ' remove_workspace_folder ' ,
d es c = ' remove_workspace_folder ' ,
} ,
{ key = ' <Space>ff ' , func = vim.lsp . buf.format , mode = ' n ' , d o c = ' format ' } ,
{ key = ' <Space>ff ' , func = vim.lsp . buf.range_formatting , mode = ' v ' , d o c = ' range format ' } ,
{ key = ' <Space>rf ' , func = require ( ' navigator.formatting ' ) . range_format , mode = ' n ' , d o c = ' range_fmt_v ' } ,
{ key = ' <Space>wl ' , func = require ( ' navigator.workspace ' ) . list_workspace_folders , d o c = ' list_workspace_folders ' } ,
{ key = ' <Space>la ' , mode = ' n ' , func = require ( ' navigator.codelens ' ) . run_action , d o c = ' run code lens action ' } ,
{ key = ' <Space>ff ' , func = vim.lsp . buf.format , mode = ' n ' , d es c = ' format ' } ,
{ key = ' <Space>ff ' , func = vim.lsp . buf.range_formatting , mode = ' v ' , d es c = ' range format ' } ,
{ key = ' <Space>rf ' , func = require ( ' navigator.formatting ' ) . range_format , mode = ' n ' , d es c = ' range_fmt_v ' } ,
{ key = ' <Space>wl ' , func = require ( ' navigator.workspace ' ) . list_workspace_folders , d es c = ' list_workspace_folders ' } ,
{ key = ' <Space>la ' , mode = ' n ' , func = require ( ' navigator.codelens ' ) . run_action , d es c = ' run code lens action ' } ,
}
local commands = {
@ -88,8 +88,8 @@ local key_maps_help = {}
local M = { }
local ccls_mappings = {
{ key = ' <Leader>gi ' , func = require ( ' navigator.cclshierarchy ' ) . incoming_calls , d o c = ' incoming_calls ' } ,
{ key = ' <Leader>go ' , func = require ( ' navigator.cclshierarchy ' ) . outgoing_calls , d o c = ' outgoing_calls ' } ,
{ key = ' <Leader>gi ' , func = require ( ' navigator.cclshierarchy ' ) . incoming_calls , d es c = ' incoming_calls ' } ,
{ key = ' <Leader>go ' , func = require ( ' navigator.cclshierarchy ' ) . outgoing_calls , d es c = ' outgoing_calls ' } ,
}
local check_cap = function ( opts )
@ -209,10 +209,13 @@ local function set_mapping(lsp_attach_info)
-- neovim 0.7.0
opts.buffer = key_maps.buffer or value.buffer
if value.desc then
opts.desc = value.desc
end
vim.keymap . set ( value.mode or ' n ' , value.key , value.func , opts )
if string.find ( value.doc , ' range format ' ) then
if string.find ( value.d es c, ' range format ' ) then
rfmtkey = value.key
elseif string.find ( value.d o c, ' format ' ) then
elseif string.find ( value.d es c, ' format ' ) then
fmtkey = value.key
end
end
@ -220,8 +223,8 @@ local function set_mapping(lsp_attach_info)
for _ , val in pairs ( key_maps ) do
local helper_msg = ' '
if val.d o c then
helper_msg = val.d o c
if val.d es c then
helper_msg = val.d es c
elseif type ( val.func ) == ' string ' then
helper_msg = val.func
end
@ -237,11 +240,17 @@ local function set_mapping(lsp_attach_info)
if doc_fmt and _NgConfigValues.lsp . format_on_save then
local gn = api.nvim_create_augroup ( ' NavAuGroupFormat ' , { } )
local fopts = _NgConfigValues.lsp . format_options
if not fopts.async and vim.api . nvim_buf_line_count ( 0 ) > 4000 then
fopts.async = true
end
api.nvim_create_autocmd ( { ' BufWritePre ' } , {
group = gn ,
buffer = bufnr ,
callback = function ( )
vim.lsp . buf.format ( { async = true } )
vim.lsp . buf.format ( fopts )
end ,
} )
elseif fmtkey then