From 16d566da938b049dda8998beec43e3cd85c4ed47 Mon Sep 17 00:00:00 2001 From: cafebabe <77344710+yuzu-eva@users.noreply.github.com> Date: Sat, 21 May 2022 23:33:01 +0200 Subject: Add nvim configuration --- .config/nvim/lua/user/plugins/lspconfig.lua | 76 +++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 .config/nvim/lua/user/plugins/lspconfig.lua (limited to '.config/nvim/lua/user/plugins/lspconfig.lua') diff --git a/.config/nvim/lua/user/plugins/lspconfig.lua b/.config/nvim/lua/user/plugins/lspconfig.lua new file mode 100644 index 0000000..248ad20 --- /dev/null +++ b/.config/nvim/lua/user/plugins/lspconfig.lua @@ -0,0 +1,76 @@ +local buf_option = vim.api.nvim_buf_set_option +local buf_keymap = require 'lib.utils'.buf_keymap + +vim.diagnostic.config { + virtual_text = false, + severity_sort = true, + float = { + source = true, + focus = false, + format = function(diagnostic) + if diagnostic.user_data ~= nil and diagnostic.user_data.lsp.code ~= nil then + return string.format("%s: %s", diagnostic.user_data.lsp.code, diagnostic.message) + end + return diagnostic.message + end, + } +} + +local on_attach = function(_, bufnr) + buf_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') + + buf_keymap(bufnr, 'n', 'gD', 'lua vim.lsp.buf.declaration()') + buf_keymap(bufnr, 'n', 'gd', 'lua vim.lsp.buf.definition()') + buf_keymap(bufnr, 'n', 'K', 'lua vim.lsp.buf.hover()') + buf_keymap(bufnr, 'n', 'gi', 'lua vim.lsp.buf.implementation()') + buf_keymap(bufnr, 'n', '', 'lua vim.lsp.buf.signature_help()') + buf_keymap(bufnr, 'n', 'D', 'lua vim.lsp.buf.type_definition()') + buf_keymap(bufnr, 'n', 'rn', 'lua vim.lsp.buf.rename()') + buf_keymap(bufnr, 'n', 'gr', ':Telescope lsp_references') + + buf_keymap(bufnr, 'n', 'ca', ':CodeActionMenu') + buf_keymap(bufnr, 'v', 'ca', ':CodeActionMenu') + + buf_keymap(bufnr, 'n', 'd', 'lua vim.diagnostic.open_float()') + buf_keymap(bufnr, 'n', '[d', 'lua vim.diagnostic.goto_prev()') + buf_keymap(bufnr, 'n', ']d', 'lua vim.diagnostic.goto_next()') + buf_keymap(bufnr, 'n', 'F', 'lua vim.lsp.buf.format { async = true }') + + -- if _.server_capabilities.document_formatting then + -- vim.api.nvim_command [[augroup Format]] + -- vim.api.nvim_command [[autocmd! * ]] + -- vim.api.nvim_command [[autocmd BufWritePre lua vim.lsp.buf.formatting_seq_sync()]] + -- vim.api.nvim_command [[augroup END]] + -- end + +end + + + +require'lspconfig'.eslint.setup{ + on_attach = on_attach, + flags = { + debounce_text_changes = 150, + }, + handlers = { + ['window/showMessageRequest'] = function(_, result, _) return result end, + }, +} + +require'lspconfig'.tsserver.setup{ + on_attach = on_attach, + flags = { + debounce_text_changes = 150, + } +} +-- suppress error messages from lang servers +vim.notify = function(msg, log_level, _) + if msg:match 'exit code' then + return + end + if log_level == vim.log.levels.ERROR then + vim.api.nvim_err_writeln(msg) + else + vim.api.nvim_echo({ { msg } }, true, {}) + end +end -- cgit v1.2.3