Merge branch 'master' into neovim_0.6

neovim_0.6
ray-x 2 years ago
commit c14f9ca140

@ -33,7 +33,7 @@ _NgConfigValues = {
transparency = 50, -- 0 ~ 100 blur the main window, 100: fully transparent, 0: opaque, set to nil to disable it
lsp_signature_help = true, -- if you would like to hook ray-x/lsp_signature plugin in navigator
-- setup here. if it is nil, navigator will not init signature help
signature_help_cfg = {debug=false}, -- if you would like to init ray-x/lsp_signature plugin in navigator, pass in signature help
signature_help_cfg = { debug = false }, -- if you would like to init ray-x/lsp_signature plugin in navigator, pass in signature help
lsp = {
code_action = {
enable = true,
@ -224,7 +224,8 @@ M.setup = function(cfg)
-- print("loading navigator")
require('navigator.lazyloader').init()
require('navigator.lspclient.clients').setup(_NgConfigValues)
-- require("navigator.lspclient.mapping").setup(_NgConfigValues)
-- keymaps should be added to on_attach. in case on_attach is not called
-- require('navigator.lspclient.mapping').setup(_NgConfigValues)
require('navigator.reference')
require('navigator.definition')
require('navigator.hierarchy')

@ -2,43 +2,42 @@ return {
init = function()
local loader = nil
local packer_plugins = packer_plugins or nil -- suppress warnings
local log = require'navigator.util'.log
local log = require('navigator.util').log
-- packer only
if packer_plugins ~= nil then -- packer install
local lazy_plugins = {
["nvim-lspconfig"] = "neovim/nvim-lspconfig",
["guihua.lua"] = "ray-x/guihua.lua"
['nvim-lspconfig'] = 'neovim/nvim-lspconfig',
['guihua.lua'] = 'ray-x/guihua.lua',
}
if _NgConfigValues.lsp_installer == true then
lazy_plugins["nvim-lsp-installer"] = "williamboman/nvim-lsp-installer"
lazy_plugins['nvim-lsp-installer'] = 'williamboman/nvim-lsp-installer'
end
-- packer installed
loader = require"packer".loader
loader = require('packer').loader
for plugin, url in pairs(lazy_plugins) do
if not packer_plugins[url] or not packer_plugins[url].loaded then
-- log("loading ", plugin)
loader(plugin)
end
end
end
if _NgConfigValues.lsp_installer == true then
local has_lspinst, lspinst = pcall(require, "lsp_installer")
local has_lspinst, lspinst = pcall(require, 'lsp_installer')
log('lsp_installer installed', has_lspinst)
if has_lspinst then
lspinst.setup()
local configs = require "lspconfig/configs"
local servers = require'nvim-lsp-installer'.get_installed_servers()
local configs = require('lspconfig/configs')
local servers = require('nvim-lsp-installer').get_installed_servers()
for _, server in pairs(servers) do
local cfg = require'navigator.lspclient.clients'.get_cfg(server)
local cfg = require('navigator.lspclient.clients').get_cfg(server)
local lsp_inst_cfg = configs[server]
if lsp_inst_cfg and lsp_inst_cfg.document_config.default_config then
lsp_inst_cfg = lsp_inst_cfg.document_config.default_config
lsp_inst_cfg = vim.tbl_deep_extend('keep', lsp_inst_cfg, cfg)
require'lspconfig'[server].setup(lsp_inst_cfg)
require('lspconfig')[server].setup(lsp_inst_cfg)
end
end
end
@ -51,7 +50,7 @@ return {
if packer_plugins ~= nil then -- packer install
local lazy_plugins = {}
lazy_plugins[plugin_name] = path
loader = require"packer".loader
loader = require('packer').loader
for plugin, url in pairs(lazy_plugins) do
if packer_plugins[plugin] and packer_plugins[plugin].loaded == false then
-- log("loading ", plugin)
@ -59,6 +58,5 @@ return {
end
end
end
end
end,
}

@ -1,4 +1,3 @@
-- todo allow config passed in
local util = require('navigator.util')
local log = util.log
local trace = util.trace
@ -415,7 +414,7 @@ local function update_capabilities()
capabilities.textDocument.completion.completionItem.labelDetailsSupport = true
capabilities.textDocument.completion.completionItem.deprecatedSupport = true
capabilities.textDocument.completion.completionItem.commitCharactersSupport = true
capabilities.textDocument.completion.completionItem.tagSupport = { valueSet = { 1 } }
-- capabilities.textDocument.completion.completionItem.tagSupport = { valueSet = { 1 } }
capabilities.textDocument.completion.completionItem.resolveSupport = {
properties = { 'documentation', 'detail', 'additionalTextEdits' },
}
@ -506,7 +505,7 @@ local function lsp_startup(ft, retry, user_lsp_opts)
disable_fmt = true
end
local enable_fmt = not disable_fmt
local enable_fmt = not disable_fmt
if user_lsp_opts[lspclient] ~= nil then
-- log(lsp_opts[lspclient], cfg)
cfg = vim.tbl_deep_extend('force', cfg, user_lsp_opts[lspclient])
@ -523,11 +522,29 @@ local function lsp_startup(ft, retry, user_lsp_opts)
cfg.on_attach = function(client, bufnr)
config.on_attach(client, bufnr)
client.resolved_capabilities.document_formatting = enable_fmt
require('navigator.lspclient.mapping').setup({
client = client,
bufnr = bufnr,
cap = capabilities,
})
end
end
if config.combined_attach == 'their' then
cfg.on_attach = function(client, bufnr)
on_attach(client, bufnr)
config.on_attach(client, bufnr)
client.resolved_capabilities.document_formatting = enable_fmt
require('navigator.lspclient.mapping').setup({
client = client,
bufnr = bufnr,
cap = capabilities,
})
end
end
if config.combined_attach == 'both' then
cfg.on_attach = function(client, bufnr)
if config.on_attach then
client.resolved_capabilities.document_formatting = enable_fmt
if config.on_attach and type(config.on_attach) == 'function' then
config.on_attach(client, bufnr)
end
if setups[lspclient] and setups[lspclient].on_attach then
@ -535,7 +552,11 @@ local function lsp_startup(ft, retry, user_lsp_opts)
else
on_attach(client, bufnr)
end
client.resolved_capabilities.document_formatting = enable_fmt
require('navigator.lspclient.mapping').setup({
client = client,
bufnr = bufnr,
cap = capabilities,
})
end
end
cfg.on_init = function(client)
@ -548,11 +569,9 @@ local function lsp_startup(ft, retry, user_lsp_opts)
end
end
else
if disable_fmt then
cfg.on_attach = function(client, bufnr)
on_attach(client, bufnr)
client.resolved_capabilities.document_formatting = enable_fmt
end
cfg.on_attach = function(client, bufnr)
on_attach(client, bufnr)
client.resolved_capabilities.document_formatting = enable_fmt
end
end

@ -172,7 +172,7 @@ local function set_mapping(user_opts)
elseif fmtkey then
del_keymap('n', fmtkey)
end
if user_opts.cap.document_range_formatting then
if user_opts.cap and user_opts.cap.document_range_formatting then
log('formatting enabled', user_opts.cap)
end

Loading…
Cancel
Save