@ -12,152 +12,54 @@ if vim.diagnostic == nil then
end
end
local double = { ' ╔ ' , ' ═ ' , ' ╗ ' , ' ║ ' , ' ╝ ' , ' ═ ' , ' ╚ ' , ' ║ ' }
local double = { ' ╔ ' , ' ═ ' , ' ╗ ' , ' ║ ' , ' ╝ ' , ' ═ ' , ' ╚ ' , ' ║ ' }
local single = { ' ╭ ' , ' ─ ' , ' ╮ ' , ' │ ' , ' ╯ ' , ' ─ ' , ' ╰ ' , ' │ ' }
local single = { ' ╭ ' , ' ─ ' , ' ╮ ' , ' │ ' , ' ╯ ' , ' ─ ' , ' ╰ ' , ' │ ' }
-- TODO https://github.com/neovim/neovim/pull/16591 use vimkeymap.set/del
-- stylua: ignore start
-- LuaFormatter off
local key_maps = {
local key_maps = {
{ key = ' gr ' , func = require ( ' navigator.reference ' ) . async_ref , desc = ' async_ref ' } ,
{ key = ' gr ' , func = require ( ' navigator.reference ' ) . async_ref , desc = ' async_ref ' } ,
{ key = ' <Leader>gr ' , func = require ( ' navigator.reference ' ) . reference , desc = ' reference ' } , -- reference deprecated
{ key = ' <Leader>gr ' , func = require ( ' navigator.reference ' ) . reference , desc = ' reference ' } , -- reference deprecated
{
{ mode = ' i ' , key = ' <M-k> ' , func = vim.lsp . buf.signature_help , desc = ' signature_help ' } ,
mode = ' i ' ,
{ key = ' <c-k> ' , func = vim.lsp . buf.signature_help , desc = ' signature_help ' } ,
key = ' <M-k> ' ,
{ key = ' g0 ' , func = require ( ' navigator.symbols ' ) . document_symbols , desc = ' document_symbols ' } ,
func = vim.lsp . buf.signature_help ,
{ key = ' gW ' , func = require ( ' navigator.workspace ' ) . workspace_symbol_live , desc = ' workspace_symbol_live ' } ,
desc = ' signature_help ' ,
} ,
{
key = ' <c-k> ' ,
func = vim.lsp . buf.signature_help ,
desc = ' signature_help ' ,
} ,
{
key = ' g0 ' ,
func = require ( ' navigator.symbols ' ) . document_symbols ,
desc = ' document_symbols ' ,
} ,
{
key = ' gW ' ,
func = require ( ' navigator.workspace ' ) . workspace_symbol_live ,
desc = ' workspace_symbol_live ' ,
} ,
{ key = ' <c-]> ' , func = require ( ' navigator.definition ' ) . definition , desc = ' definition ' } ,
{ key = ' <c-]> ' , func = require ( ' navigator.definition ' ) . definition , desc = ' definition ' } ,
{ key = ' gd ' , func = require ( ' navigator.definition ' ) . definition , desc = ' definition ' } ,
{ key = ' gd ' , func = require ( ' navigator.definition ' ) . definition , desc = ' definition ' } ,
{ key = ' gD ' , func = vim.lsp . buf.declaration , desc = ' declaration ' } ,
{ key = ' gD ' , func = vim.lsp . buf.declaration , desc = ' declaration ' } ,
{ key = ' gt ' , func = vim.lsp . buf.type_definition , desc = ' type_definition ' } ,
{
{ key = ' gp ' , func = require ( ' navigator.definition ' ) . definition_preview , desc = ' definition_preview ' } ,
key = ' gt ' ,
{ key = ' gP ' , func = require ( ' navigator.definition ' ) . type_definition_preview , desc = ' type_definition_preview ' } ,
func = vim.lsp . buf.type_definition ,
desc = ' type_definition ' ,
} ,
{
key = ' gp ' ,
func = require ( ' navigator.definition ' ) . definition_preview ,
desc = ' definition_preview ' ,
} ,
{
key = ' gP ' ,
func = require ( ' navigator.definition ' ) . type_definition_preview ,
desc = ' type_definition_preview ' ,
} ,
{ key = ' <Leader>gt ' , func = require ( ' navigator.treesitter ' ) . buf_ts , desc = ' buf_ts ' } ,
{ key = ' <Leader>gt ' , func = require ( ' navigator.treesitter ' ) . buf_ts , desc = ' buf_ts ' } ,
{ key = ' <Leader>gT ' , func = require ( ' navigator.treesitter ' ) . bufs_ts , desc = ' bufs_ts ' } ,
{ key = ' <Leader>gT ' , func = require ( ' navigator.treesitter ' ) . bufs_ts , desc = ' bufs_ts ' } ,
{ key = ' <Leader>ct ' , func = require ( ' navigator.ctags ' ) . ctags , desc = ' ctags ' } ,
{ key = ' <Leader>ct ' , func = require ( ' navigator.ctags ' ) . ctags , desc = ' ctags ' } ,
{
{ key = ' <Space>ca ' , mode = ' n ' , func = require ( ' navigator.codeAction ' ) . code_action , desc = ' code_action ' } ,
key = ' <Space>ca ' ,
{ key = ' <Space>ca ' , mode = ' v ' , func = require ( ' navigator.codeAction ' ) . range_code_action , desc = ' range_code_action ' } ,
mode = ' n ' ,
func = require ( ' navigator.codeAction ' ) . code_action ,
desc = ' code_action ' ,
} ,
{
key = ' <Space>ca ' ,
mode = ' v ' ,
func = require ( ' navigator.codeAction ' ) . range_code_action ,
desc = ' range_code_action ' ,
} ,
-- { key = '<Leader>re', func = 'rename()' },
-- { key = '<Leader>re', func = 'rename()' },
{ key = ' <Space>rn ' , func = require ( ' navigator.rename ' ) . rename , desc = ' rename ' } ,
{ key = ' <Space>rn ' , func = require ( ' navigator.rename ' ) . rename , desc = ' rename ' } ,
{ key = ' <Leader>gi ' , func = vim.lsp . buf.incoming_calls , desc = ' incoming_calls ' } ,
{ key = ' <Leader>gi ' , func = vim.lsp . buf.incoming_calls , desc = ' incoming_calls ' } ,
{ key = ' <Leader>go ' , func = vim.lsp . buf.outgoing_calls , desc = ' outgoing_calls ' } ,
{ key = ' <Leader>go ' , func = vim.lsp . buf.outgoing_calls , desc = ' outgoing_calls ' } ,
{ key = ' gi ' , func = vim.lsp . buf.implementation , desc = ' implementation ' } ,
{ key = ' gi ' , func = vim.lsp . buf.implementation , desc = ' implementation ' } ,
{ key = ' <Space>D ' , func = vim.lsp . buf.type_definition , desc = ' type_definition ' } ,
{ key = ' <Space>D ' , func = vim.lsp . buf.type_definition , desc = ' type_definition ' } ,
{
{ key = ' gL ' , func = require ( ' navigator.diagnostics ' ) . show_diagnostics , desc = ' show_diagnostics ' } ,
key = ' gL ' ,
{ key = ' gG ' , func = require ( ' navigator.diagnostics ' ) . show_buf_diagnostics , desc = ' show_buf_diagnostics ' } ,
func = require ( ' navigator.diagnostics ' ) . show_diagnostics ,
{ key = ' <Leader>dt ' , func = require ( ' navigator.diagnostics ' ) . toggle_diagnostics , desc = ' toggle_diagnostics ' } ,
desc = ' show_diagnostics ' ,
{ key = ' ]d ' , func = vim.diagnostic . goto_next , desc = ' next diagnostics ' } ,
} ,
{ key = ' [d ' , func = vim.diagnostic . goto_prev , desc = ' prev diagnostics ' } ,
{
{ key = ' ]O ' , func = vim.diagnostic . set_loclist , desc = ' diagnostics set loclist ' } ,
key = ' gG ' ,
func = require ( ' navigator.diagnostics ' ) . show_buf_diagnostics ,
desc = ' show_buf_diagnostics ' ,
} ,
{
key = ' <Leader>dt ' ,
func = require ( ' navigator.diagnostics ' ) . toggle_diagnostics ,
desc = ' toggle_diagnostics ' ,
} ,
{
key = ' ]d ' ,
func = vim.diagnostic . goto_next ,
desc = ' next diagnostics ' ,
} ,
{
key = ' [d ' ,
func = vim.diagnostic . goto_prev ,
desc = ' prev diagnostics ' ,
} ,
{
key = ' ]O ' ,
func = vim.diagnostic . set_loclist ,
desc = ' diagnostics set loclist ' ,
} ,
{ key = ' ]r ' , func = require ( ' navigator.treesitter ' ) . goto_next_usage , desc = ' goto_next_usage ' } ,
{ key = ' ]r ' , func = require ( ' navigator.treesitter ' ) . goto_next_usage , desc = ' goto_next_usage ' } ,
{
{ key = ' [r ' , func = require ( ' navigator.treesitter ' ) . goto_previous_usage , desc = ' goto_previous_usage ' } ,
key = ' [r ' ,
{ key = ' <C-LeftMouse> ' , func = vim.lsp . buf.definition , desc = ' definition ' } ,
func = require ( ' navigator.treesitter ' ) . goto_previous_usage ,
{ key = ' g<LeftMouse> ' , func = vim.lsp . buf.implementation , desc = ' implementation ' } ,
desc = ' goto_previous_usage ' ,
{ key = ' <Leader>k ' , func = require ( ' navigator.dochighlight ' ) . hi_symbol , desc = ' hi_symbol ' } ,
} ,
{ key = ' <Space>wa ' , func = require ( ' navigator.workspace ' ) . add_workspace_folder , desc = ' add_workspace_folder ' } ,
{
{ key = ' <Space>wr ' , func = require ( ' navigator.workspace ' ) . remove_workspace_folder , desc = ' remove_workspace_folder ' } ,
key = ' <C-LeftMouse> ' ,
func = vim.lsp . buf.definition ,
desc = ' definition ' ,
} ,
{
key = ' g<LeftMouse> ' ,
func = vim.lsp . buf.implementation ,
desc = ' implementation ' ,
} ,
{
key = ' <Leader>k ' ,
func = require ( ' navigator.dochighlight ' ) . hi_symbol ,
desc = ' hi_symbol ' ,
} ,
{
key = ' <Space>wa ' ,
func = require ( ' navigator.workspace ' ) . add_workspace_folder ,
desc = ' add_workspace_folder ' ,
} ,
{
key = ' <Space>wr ' ,
func = require ( ' navigator.workspace ' ) . remove_workspace_folder ,
desc = ' remove_workspace_folder ' ,
} ,
{ key = ' <Space>ff ' , func = vim.lsp . buf.format , mode = ' n ' , desc = ' format ' } ,
{ key = ' <Space>ff ' , func = vim.lsp . buf.format , mode = ' n ' , desc = ' format ' } ,
{ key = ' <Space>ff ' , func = vim.lsp . buf.range_formatting , mode = ' v ' , desc = ' range format ' } ,
{ key = ' <Space>ff ' , func = vim.lsp . buf.range_formatting , mode = ' v ' , desc = ' range format ' } ,
{ key = ' <Space>gm ' , func = require ( ' navigator.formatting ' ) . range_format , mode = ' n ' , desc = ' range format operator e.g gmip ' } ,
{ key = ' <Space>wl ' , func = require ( ' navigator.workspace ' ) . list_workspace_folders , desc = ' list_workspace_folders ' } ,
{
{
key = ' <Space>gm ' ,
key = ' <Space>la ' , mode = ' n ' ,
func = require ( ' navigator.formatting ' ) . range_format ,
mode = ' n ' ,
desc = ' range format operator e.g gmip ' ,
} ,
{
key = ' <Space>wl ' ,
func = require ( ' navigator.workspace ' ) . list_workspace_folders ,
desc = ' list_workspace_folders ' ,
} ,
{
key = ' <Space>la ' ,
mode = ' n ' ,
func = require ( ' navigator.codelens ' ) . run_action ,
func = require ( ' navigator.codelens ' ) . run_action ,
desc = ' run code lens action ' ,
desc = ' run code lens action ' ,
} ,
}
-- stylua: ignore end
}
}
if _NgConfigValues.lsp . hover then
if _NgConfigValues.lsp . hover then
@ -260,13 +162,6 @@ local function set_mapping(lsp_attach_info)
end
end
end
end
local function set_keymap ( ... )
vim.api . nvim_buf_set_keymap ( bufnr , ... )
end
-- local function buf_set_option(...)
-- vim.api.nvim_buf_set_option(bufnr, ...)
-- end
local doc_fmt , range_fmt , ccls = check_cap ( lsp_attach_info )
local doc_fmt , range_fmt , ccls = check_cap ( lsp_attach_info )
if ccls then
if ccls then
@ -279,6 +174,7 @@ local function set_mapping(lsp_attach_info)
local exists = false
local exists = false
for _ , default in pairs ( key_maps ) do
for _ , default in pairs ( key_maps ) do
if
if
-- override only if func and mode are the same
v.func == default.func
v.func == default.func
and ( v.mode or ' n ' ) == ( default.mode or ' n ' )
and ( v.mode or ' n ' ) == ( default.mode or ' n ' )
and not default.override
and not default.override
@ -292,6 +188,7 @@ local function set_mapping(lsp_attach_info)
end
end
end
end
else
else
-- disable default mapping
key_maps = _NgConfigValues.keymaps or { }
key_maps = _NgConfigValues.keymaps or { }
log ( ' setting maps to ' , key_maps )
log ( ' setting maps to ' , key_maps )
end
end
@ -481,8 +378,6 @@ function M.setup(attach_opts)
require ( ' navigator.diagnostics ' ) . diagnostic_handler
require ( ' navigator.diagnostics ' ) . diagnostic_handler
end
end
-- TODO: when active signature merge to neovim, remove this setup:
if
if
vim.fn . empty ( _NgConfigValues.signature_help_cfg ) == 0 or _NgConfigValues.lsp_signature_help
vim.fn . empty ( _NgConfigValues.signature_help_cfg ) == 0 or _NgConfigValues.lsp_signature_help
then
then