aboutsummaryrefslogtreecommitdiff
path: root/lua/config/lsp.lua
diff options
context:
space:
mode:
authorjdhao <jdhao@hotmail.com>2021-08-18 01:43:08 +0800
committerjdhao <jdhao@hotmail.com>2021-08-18 01:43:08 +0800
commitbac94b47a085583db5b200c5d0fdf47d8cff4139 (patch)
tree24342b5767a853defb7cccdd77aed288575479c9 /lua/config/lsp.lua
parent61d6045e671853c81d7a7853ef7f4ef4674366a8 (diff)
Format with stylua
Diffstat (limited to 'lua/config/lsp.lua')
-rw-r--r--lua/config/lsp.lua185
1 files changed, 92 insertions, 93 deletions
diff --git a/lua/config/lsp.lua b/lua/config/lsp.lua
index 4279a6e..79f6091 100644
--- a/lua/config/lsp.lua
+++ b/lua/config/lsp.lua
@@ -3,39 +3,43 @@ local M = {}
function M.show_line_diagnostics()
local opts = {
focusable = false,
- close_events = {'BufLeave', 'CursorMoved', 'InsertEnter', 'FocusLost'}
+ close_events = { "BufLeave", "CursorMoved", "InsertEnter", "FocusLost" },
}
vim.lsp.diagnostic.show_line_diagnostics(opts)
end
local custom_attach = function(client, bufnr)
- local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end
- local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end
+ local function buf_set_keymap(...)
+ vim.api.nvim_buf_set_keymap(bufnr, ...)
+ end
+ local function buf_set_option(...)
+ vim.api.nvim_buf_set_option(bufnr, ...)
+ end
- buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')
+ buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc")
-- Mappings.
- local opts = { noremap=true, silent=true }
- buf_set_keymap('n', 'gD', '<Cmd>lua vim.lsp.buf.declaration()<CR>', opts)
- buf_set_keymap('n', 'gd', '<Cmd>lua vim.lsp.buf.definition()<CR>', opts)
- buf_set_keymap('n', '<C-]>', '<Cmd>lua vim.lsp.buf.definition()<CR>', opts)
- buf_set_keymap('n', 'K', '<Cmd>lua vim.lsp.buf.hover()<CR>', opts)
- buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
- buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
- buf_set_keymap('n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
- buf_set_keymap('n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
- buf_set_keymap('n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
- buf_set_keymap('n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
- buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
- buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
- buf_set_keymap('n', '[d', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts)
- buf_set_keymap('n', ']d', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts)
- buf_set_keymap('n', '<space>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts)
- buf_set_keymap('n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
-
- vim.cmd [[
+ local opts = { noremap = true, silent = true }
+ buf_set_keymap("n", "gD", "<Cmd>lua vim.lsp.buf.declaration()<CR>", opts)
+ buf_set_keymap("n", "gd", "<Cmd>lua vim.lsp.buf.definition()<CR>", opts)
+ buf_set_keymap("n", "<C-]>", "<Cmd>lua vim.lsp.buf.definition()<CR>", opts)
+ buf_set_keymap("n", "K", "<Cmd>lua vim.lsp.buf.hover()<CR>", opts)
+ buf_set_keymap("n", "gi", "<cmd>lua vim.lsp.buf.implementation()<CR>", opts)
+ buf_set_keymap("n", "<C-k>", "<cmd>lua vim.lsp.buf.signature_help()<CR>", opts)
+ buf_set_keymap("n", "<space>wa", "<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>", opts)
+ buf_set_keymap("n", "<space>wr", "<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>", opts)
+ buf_set_keymap("n", "<space>wl", "<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>", opts)
+ buf_set_keymap("n", "<space>D", "<cmd>lua vim.lsp.buf.type_definition()<CR>", opts)
+ buf_set_keymap("n", "<space>rn", "<cmd>lua vim.lsp.buf.rename()<CR>", opts)
+ buf_set_keymap("n", "gr", "<cmd>lua vim.lsp.buf.references()<CR>", opts)
+ buf_set_keymap("n", "[d", "<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>", opts)
+ buf_set_keymap("n", "]d", "<cmd>lua vim.lsp.diagnostic.goto_next()<CR>", opts)
+ buf_set_keymap("n", "<space>q", "<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>", opts)
+ buf_set_keymap("n", "<space>ca", "<cmd>lua vim.lsp.buf.code_action()<CR>", opts)
+
+ vim.cmd([[
autocmd CursorHold <buffer> lua require('config.lsp').show_line_diagnostics()
- ]]
+ ]])
-- Set some key bindings conditional on server capabilities
if client.resolved_capabilities.document_formatting then
@@ -59,8 +63,8 @@ local custom_attach = function(client, bufnr)
]])
end
- local msg = string.format('Language server %s started!' , client.name)
- vim.api.nvim_echo({{msg, 'MoreMsg'}, }, false, {})
+ local msg = string.format("Language server %s started!", client.name)
+ vim.api.nvim_echo({ { msg, "MoreMsg" } }, false, {})
end
local capabilities = vim.lsp.protocol.make_client_capabilities()
@@ -68,68 +72,68 @@ capabilities.textDocument.completion.completionItem.snippetSupport = true
local lspconfig = require("lspconfig")
-lspconfig.pylsp.setup{
+lspconfig.pylsp.setup({
on_attach = custom_attach,
settings = {
pylsp = {
plugins = {
- pylint = {enabled = true, executable = "pylint"},
- pyflakes = {enabled = false},
- pycodestyle = {enabled = false},
- jedi_completion = {fuzzy = true},
- pyls_isort = {enabled = true},
- pylsp_mypy = {enabled = true}
- }
- }
+ pylint = { enabled = true, executable = "pylint" },
+ pyflakes = { enabled = false },
+ pycodestyle = { enabled = false },
+ jedi_completion = { fuzzy = true },
+ pyls_isort = { enabled = true },
+ pylsp_mypy = { enabled = true },
+ },
+ },
},
flags = {
debounce_text_changes = 200,
- }
-}
+ },
+})
-- lspconfig.pyright.setup{
-- on_attach = custom_attach,
-- }
-lspconfig.clangd.setup{
+lspconfig.clangd.setup({
on_attach = custom_attach,
capabilities = capabilities,
filetypes = { "c", "cpp", "cc" },
flags = {
debounce_text_changes = 500,
- }
-}
+ },
+})
-- set up vim-language-server
-lspconfig.vimls.setup{
+lspconfig.vimls.setup({
on_attach = custom_attach,
flags = {
debounce_text_changes = 500,
- }
-}
+ },
+})
-local sumneko_binary_path = vim.fn.exepath('lua-language-server')
-if vim.g.is_mac or vim.g.is_linux and sumneko_binary_path ~= '' then
- local sumneko_root_path = vim.fn.fnamemodify(sumneko_binary_path, ':h:h:h')
+local sumneko_binary_path = vim.fn.exepath("lua-language-server")
+if vim.g.is_mac or vim.g.is_linux and sumneko_binary_path ~= "" then
+ local sumneko_root_path = vim.fn.fnamemodify(sumneko_binary_path, ":h:h:h")
- local runtime_path = vim.split(package.path, ';')
+ local runtime_path = vim.split(package.path, ";")
table.insert(runtime_path, "lua/?.lua")
table.insert(runtime_path, "lua/?/init.lua")
- require'lspconfig'.sumneko_lua.setup {
+ require("lspconfig").sumneko_lua.setup({
on_attach = custom_attach,
- cmd = {sumneko_binary_path, "-E", sumneko_root_path .. "/main.lua"};
+ cmd = { sumneko_binary_path, "-E", sumneko_root_path .. "/main.lua" },
settings = {
Lua = {
runtime = {
-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
- version = 'LuaJIT',
+ version = "LuaJIT",
-- Setup your lua path
path = runtime_path,
},
diagnostics = {
-- Get the language server to recognize the `vim` global
- globals = {'vim'},
+ globals = { "vim" },
},
workspace = {
-- Make the server aware of Neovim runtime files
@@ -141,59 +145,54 @@ if vim.g.is_mac or vim.g.is_linux and sumneko_binary_path ~= '' then
},
},
},
- }
+ })
end
-- Change diagnostic signs.
-vim.fn.sign_define('LspDiagnosticsSignError', { text = "✗", texthl = "LspDiagnosticsDefaultError" })
-vim.fn.sign_define('LspDiagnosticsSignWarning', { text = "!", texthl = "LspDiagnosticsDefaultWarning" })
-vim.fn.sign_define('LspDiagnosticsSignInformation', { text = "", texthl = "LspDiagnosticsDefaultInformation" })
-vim.fn.sign_define('LspDiagnosticsSignHint', { text = "", texthl = "LspDiagnosticsDefaultHint" })
+vim.fn.sign_define("LspDiagnosticsSignError", { text = "✗", texthl = "LspDiagnosticsDefaultError" })
+vim.fn.sign_define("LspDiagnosticsSignWarning", { text = "!", texthl = "LspDiagnosticsDefaultWarning" })
+vim.fn.sign_define("LspDiagnosticsSignInformation", { text = "", texthl = "LspDiagnosticsDefaultInformation" })
+vim.fn.sign_define("LspDiagnosticsSignHint", { text = "", texthl = "LspDiagnosticsDefaultHint" })
+
+vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
+ underline = false,
+ virtual_text = false,
+ signs = true,
+ update_in_insert = false,
+})
+
+-- Refs: https://github.com/neovim/nvim-lspconfig/wiki/UI-customization#show-source-in-diagnostics
+vim.lsp.handlers["textDocument/publishDiagnostics"] = function(_, _, params, client_id, _)
+ local uri = params.uri
+ local bufnr = vim.uri_to_bufnr(uri)
+
+ if not bufnr then
+ return
+ end
+
+ if not vim.api.nvim_buf_is_loaded(bufnr) then
+ return
+ end
+
+ local diagnostics = params.diagnostics
+ for i, v in ipairs(diagnostics) do
+ diagnostics[i].message = string.format("%s: %s", v.source, v.message)
+ end
+ vim.lsp.diagnostic.save(diagnostics, bufnr, client_id)
-vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(
- vim.lsp.diagnostic.on_publish_diagnostics, {
+ local config = {
underline = false,
virtual_text = false,
signs = true,
update_in_insert = false,
}
-)
-
--- Refs: https://github.com/neovim/nvim-lspconfig/wiki/UI-customization#show-source-in-diagnostics
-vim.lsp.handlers["textDocument/publishDiagnostics"] =
- function(_, _, params, client_id, _)
- local uri = params.uri
- local bufnr = vim.uri_to_bufnr(uri)
-
- if not bufnr then
- return
- end
-
- if not vim.api.nvim_buf_is_loaded(bufnr) then
- return
- end
-
- local diagnostics = params.diagnostics
- for i, v in ipairs(diagnostics) do
- diagnostics[i].message = string.format("%s: %s", v.source, v.message)
- end
- vim.lsp.diagnostic.save(diagnostics, bufnr, client_id)
-
- local config = {
- underline = false,
- virtual_text = false,
- signs = true,
- update_in_insert = false,
- }
- vim.lsp.diagnostic.display(diagnostics, bufnr, client_id, config)
- end
+ vim.lsp.diagnostic.display(diagnostics, bufnr, client_id, config)
+end
-- The following settings works with the bleeding edge neovim.
-- See https://github.com/neovim/neovim/pull/13998.
-vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(
- vim.lsp.handlers.hover, {
- border = 'rounded'
- }
-)
+vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, {
+ border = "rounded",
+})
return M