refactor(nvim): split lsp into setup and mappings
This commit is contained in:
parent
ab788203db
commit
dedcbddc86
|
@ -1,70 +0,0 @@
|
|||
local has_lsp, lspconfig = pcall(require, "lspconfig")
|
||||
|
||||
local servers = {
|
||||
ansiblels = true,
|
||||
bashls = true,
|
||||
cssls = true,
|
||||
html = true,
|
||||
|
||||
intelephense = {
|
||||
filetypes = { "install", "inc", "module", "php", "test", "theme" }
|
||||
},
|
||||
|
||||
tsserver = {
|
||||
filetypes = { "js", "jsx", "typescript", "vue" }
|
||||
},
|
||||
|
||||
yamlls = true,
|
||||
}
|
||||
|
||||
local setup_server = function(server, config)
|
||||
if not config then
|
||||
return
|
||||
end
|
||||
|
||||
if type(config) ~= "table" then
|
||||
config = {}
|
||||
end
|
||||
|
||||
lspconfig[server].setup(config)
|
||||
end
|
||||
|
||||
for server, config in pairs(servers) do
|
||||
setup_server(server, config)
|
||||
end
|
||||
|
||||
vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(
|
||||
vim.lsp.diagnostic.on_publish_diagnostics, {
|
||||
underline = true,
|
||||
virtual_text = false,
|
||||
signs = true,
|
||||
update_in_insert = true,
|
||||
}
|
||||
)
|
||||
|
||||
local key_mapper = function(mode, key, result)
|
||||
vim.api.nvim_set_keymap(
|
||||
mode,
|
||||
key,
|
||||
result,
|
||||
{noremap = true, silent = true}
|
||||
)
|
||||
end
|
||||
|
||||
key_mapper('n', '<c-k>', ':lua vim.lsp.buf.signature_help()<CR>')
|
||||
key_mapper('n', '<leader>af', ':lua vim.lsp.buf.code_action()<CR>')
|
||||
key_mapper('n', '<leader>dn', ':lua vim.lsp.diagnostic.goto_next()<CR>')
|
||||
key_mapper('n', '<leader>dp', ':lua vim.lsp.diagnostic.goto_prev()<CR>')
|
||||
key_mapper('n', '<leader>ds', ':lua vim.lsp.diagnostic.show_line_diagnostics()<CR>')
|
||||
key_mapper('n', '<leader>fb', ':lua require"telescope.builtin".buffers()<CR>')
|
||||
key_mapper('n', '<leader>fh', ':lua require"telescope.builtin".help_tags()<CR>')
|
||||
key_mapper('n', '<leader>fs', ':lua require"telescope.builtin".live_grep()<CR>')
|
||||
key_mapper('n', '<leader>rn', ':lua vim.lsp.buf.rename()<CR>')
|
||||
key_mapper('n', 'K', ':lua vim.lsp.buf.hover()<CR>')
|
||||
key_mapper('n', 'gD', ':lua vim.lsp.buf.declaration()<CR>')
|
||||
key_mapper('n', 'gW', ':lua vim.lsp.buf.workspace_symbol()<CR>')
|
||||
key_mapper('n', 'gd', ':lua vim.lsp.buf.definition()<CR>')
|
||||
key_mapper('n', 'gi', ':lua vim.lsp.buf.implementation()<CR>')
|
||||
key_mapper('n', 'gr', ':lua vim.lsp.buf.references()<CR>')
|
||||
key_mapper('n', 'gt', ':lua vim.lsp.buf.type_definition()<CR>')
|
||||
key_mapper('n', 'gw', ':lua vim.lsp.buf.document_symbol()<CR>')
|
2
nvim/.config/nvim/lua/opdavies/plugins/lsp/init.lua
Normal file
2
nvim/.config/nvim/lua/opdavies/plugins/lsp/init.lua
Normal file
|
@ -0,0 +1,2 @@
|
|||
require "opdavies.plugins.lsp.setup"
|
||||
require "opdavies.plugins.lsp.mappings"
|
22
nvim/.config/nvim/lua/opdavies/plugins/lsp/mappings.lua
Normal file
22
nvim/.config/nvim/lua/opdavies/plugins/lsp/mappings.lua
Normal file
|
@ -0,0 +1,22 @@
|
|||
local map_options = {
|
||||
noremap = true,
|
||||
silent = true,
|
||||
}
|
||||
|
||||
vim.api.nvim_set_keymap('n', '<c-k>', ':lua vim.lsp.buf.signature_help()<CR>', map_options)
|
||||
vim.api.nvim_set_keymap('n', '<leader>af', ':lua vim.lsp.buf.code_action()<CR>', map_options)
|
||||
vim.api.nvim_set_keymap('n', '<leader>dn', ':lua vim.lsp.diagnostic.goto_next()<CR>', map_options)
|
||||
vim.api.nvim_set_keymap('n', '<leader>dp', ':lua vim.lsp.diagnostic.goto_prev()<CR>', map_options)
|
||||
vim.api.nvim_set_keymap('n', '<leader>ds', ':lua vim.lsp.diagnostic.show_line_diagnostics()<CR>', map_options)
|
||||
vim.api.nvim_set_keymap('n', '<leader>fb', ':lua require"telescope.builtin".buffers()<CR>', map_options)
|
||||
vim.api.nvim_set_keymap('n', '<leader>fh', ':lua require"telescope.builtin".help_tags()<CR>', map_options)
|
||||
vim.api.nvim_set_keymap('n', '<leader>fs', ':lua require"telescope.builtin".live_grep()<CR>', map_options)
|
||||
vim.api.nvim_set_keymap('n', '<leader>rn', ':lua vim.lsp.buf.rename()<CR>', map_options)
|
||||
vim.api.nvim_set_keymap('n', 'K', ':lua vim.lsp.buf.hover()<CR>', map_options)
|
||||
vim.api.nvim_set_keymap('n', 'gD', ':lua vim.lsp.buf.declaration()<CR>', map_options)
|
||||
vim.api.nvim_set_keymap('n', 'gW', ':lua vim.lsp.buf.workspace_symbol()<CR>', map_options)
|
||||
vim.api.nvim_set_keymap('n', 'gd', ':lua vim.lsp.buf.definition()<CR>', map_options)
|
||||
vim.api.nvim_set_keymap('n', 'gi', ':lua vim.lsp.buf.implementation()<CR>', map_options)
|
||||
vim.api.nvim_set_keymap('n', 'gr', ':lua vim.lsp.buf.references()<CR>', map_options)
|
||||
vim.api.nvim_set_keymap('n', 'gt', ':lua vim.lsp.buf.type_definition()<CR>', map_options)
|
||||
vim.api.nvim_set_keymap('n', 'gw', ':lua vim.lsp.buf.document_symbol()<CR>', map_options)
|
43
nvim/.config/nvim/lua/opdavies/plugins/lsp/setup.lua
Normal file
43
nvim/.config/nvim/lua/opdavies/plugins/lsp/setup.lua
Normal file
|
@ -0,0 +1,43 @@
|
|||
local has_lsp, lspconfig = pcall(require, "lspconfig")
|
||||
|
||||
local servers = {
|
||||
ansiblels = true,
|
||||
bashls = true,
|
||||
cssls = true,
|
||||
html = true,
|
||||
|
||||
intelephense = {
|
||||
filetypes = { "install", "inc", "module", "php", "test", "theme" }
|
||||
},
|
||||
|
||||
tsserver = {
|
||||
filetypes = { "js", "jsx", "typescript", "vue" }
|
||||
},
|
||||
|
||||
yamlls = true,
|
||||
}
|
||||
|
||||
local setup_server = function(server, config)
|
||||
if not config then
|
||||
return
|
||||
end
|
||||
|
||||
if type(config) ~= "table" then
|
||||
config = {}
|
||||
end
|
||||
|
||||
lspconfig[server].setup(config)
|
||||
end
|
||||
|
||||
for server, config in pairs(servers) do
|
||||
setup_server(server, config)
|
||||
end
|
||||
|
||||
vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(
|
||||
vim.lsp.diagnostic.on_publish_diagnostics, {
|
||||
underline = true,
|
||||
virtual_text = false,
|
||||
signs = true,
|
||||
update_in_insert = true,
|
||||
}
|
||||
)
|
Loading…
Reference in a new issue