diff options
| author | jdhao <jdhao@hotmail.com> | 2021-08-18 01:43:08 +0800 |
|---|---|---|
| committer | jdhao <jdhao@hotmail.com> | 2021-08-18 01:43:08 +0800 |
| commit | bac94b47a085583db5b200c5d0fdf47d8cff4139 (patch) | |
| tree | 24342b5767a853defb7cccdd77aed288575479c9 /lua/config/lsp.lua | |
| parent | 61d6045e671853c81d7a7853ef7f4ef4674366a8 (diff) | |
Format with stylua
Diffstat (limited to 'lua/config/lsp.lua')
| -rw-r--r-- | lua/config/lsp.lua | 185 |
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 |
