diff options
author | Gustaf Rydholm <gustaf.rydholm@gmail.com> | 2021-07-22 00:08:36 +0200 |
---|---|---|
committer | Gustaf Rydholm <gustaf.rydholm@gmail.com> | 2021-07-22 00:08:36 +0200 |
commit | b51f1ae28924a752258e7607fbc3210f9b18eaac (patch) | |
tree | 8c8c095528990b3f6eb499dbcca15e9720e636d1 /.config/nvim/lua/cfg/lsp | |
parent | da936b0ed9ac4c171d3c7908e41af1875a82b08b (diff) |
Updates based on Chris's lunarvim
Diffstat (limited to '.config/nvim/lua/cfg/lsp')
-rw-r--r-- | .config/nvim/lua/cfg/lsp/emmet-ls.lua | 23 | ||||
-rw-r--r-- | .config/nvim/lua/cfg/lsp/init.lua | 174 | ||||
-rw-r--r-- | .config/nvim/lua/cfg/lsp/ts-fmt-lint.lua | 37 |
3 files changed, 0 insertions, 234 deletions
diff --git a/.config/nvim/lua/cfg/lsp/emmet-ls.lua b/.config/nvim/lua/cfg/lsp/emmet-ls.lua deleted file mode 100644 index fcb7f62..0000000 --- a/.config/nvim/lua/cfg/lsp/emmet-ls.lua +++ /dev/null @@ -1,23 +0,0 @@ --- if not package.loaded['lspconfig'] then --- return --- end - -local nvim_lsp = require'lspconfig' -local configs = require'lspconfig/configs' -local capabilities = vim.lsp.protocol.make_client_capabilities() -capabilities.textDocument.completion.completionItem.snippetSupport = true - -configs.emmet_ls = { - default_config = { - cmd = {'emmet-ls', '--stdio'}; - filetypes = {'html', 'css', 'javascript', 'typescript'}; - root_dir = function() - return vim.loop.cwd() - end; - settings = {}; - }; -} - -nvim_lsp.emmet_ls.setup{ - -- on_attach = on_attach; -} diff --git a/.config/nvim/lua/cfg/lsp/init.lua b/.config/nvim/lua/cfg/lsp/init.lua deleted file mode 100644 index 547f9e7..0000000 --- a/.config/nvim/lua/cfg/lsp/init.lua +++ /dev/null @@ -1,174 +0,0 @@ --- TODO figure out why this don't work -vim.fn.sign_define( - "LspDiagnosticsSignError", - {texthl = "LspDiagnosticsSignError", text = "", numhl = "LspDiagnosticsSignError"} -) -vim.fn.sign_define( - "LspDiagnosticsSignWarning", - {texthl = "LspDiagnosticsSignWarning", text = "", numhl = "LspDiagnosticsSignWarning"} -) -vim.fn.sign_define( - "LspDiagnosticsSignHint", - {texthl = "LspDiagnosticsSignHint", text = "", numhl = "LspDiagnosticsSignHint"} -) -vim.fn.sign_define( - "LspDiagnosticsSignInformation", - {texthl = "LspDiagnosticsSignInformation", text = "", numhl = "LspDiagnosticsSignInformation"} -) - -vim.cmd("nnoremap <silent> gd <cmd>lua vim.lsp.buf.definition()<CR>") -vim.cmd("nnoremap <silent> gD <cmd>lua vim.lsp.buf.declaration()<CR>") -vim.cmd("nnoremap <silent> gr <cmd>lua vim.lsp.buf.references()<CR>") -vim.cmd("nnoremap <silent> gi <cmd>lua vim.lsp.buf.implementation()<CR>") -vim.cmd("nnoremap <silent> K :lua vim.lsp.buf.hover()<CR>") --- vim.cmd('nnoremap <silent> <C-k> <cmd>lua vim.lsp.buf.signature_help()<CR>') -vim.cmd("nnoremap <silent> <C-p> :lua vim.lsp.diagnostic.goto_prev({popup_opts = {border = O.lsp.popup_border}})<CR>") -vim.cmd("nnoremap <silent> <C-n> :lua vim.lsp.diagnostic.goto_next({popup_opts = {border = O.lsp.popup_border}})<CR>") --- scroll down hover doc or scroll in definition preview --- scroll up hover doc -vim.cmd('command! -nargs=0 LspVirtualTextToggle lua require("lsp/virtual_text").toggle()') - --- Set Default Prefix. --- Note: You can set a prefix per lsp server in the lv-globals.lua file -vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with( - vim.lsp.diagnostic.on_publish_diagnostics, { - virtual_text = { - prefix = "", - spacing = 0, - }, - signs = true, - underline = true, - } -) - -vim.lsp.handlers["textDocument/hover"] = vim.lsp.with( - vim.lsp.handlers.hover, { - border = O.lsp.popup_border - } -) - -vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with( - vim.lsp.handlers.signature_help, { - border = O.lsp.popup_border - } -) - --- symbols for autocomplete -vim.lsp.protocol.CompletionItemKind = { - " (Text) ", - " (Method)", - " (Function)", - " (Constructor)", - " ﴲ (Field)", - "[] (Variable)", - " (Class)", - " ﰮ (Interface)", - " (Module)", - " 襁 (Property)", - " (Unit)", - " (Value)", - " 練 (Enum)", - " (Keyword)", - " (Snippet)", - " (Color)", - " (File)", - " (Reference)", - " (Folder)", - " (EnumMember)", - " ﲀ (Constant)", - " ﳤ (Struct)", - " (Event)", - " (Operator)", - " (TypeParameter)" -} - ---[[ " autoformat -autocmd BufWritePre *.js lua vim.lsp.buf.formatting_sync(nil, 100) -autocmd BufWritePre *.jsx lua vim.lsp.buf.formatting_sync(nil, 100) -autocmd BufWritePre *.lua lua vim.lsp.buf.formatting_sync(nil, 100) ]] --- Java --- autocmd FileType java nnoremap ca <Cmd>lua require('jdtls').code_action()<CR> - -local function documentHighlight(client, bufnr) - -- Set autocommands conditional on server_capabilities - if client.resolved_capabilities.document_highlight then - vim.api.nvim_exec( - [[ - hi LspReferenceRead cterm=bold ctermbg=red guibg=#464646 - hi LspReferenceText cterm=bold ctermbg=red guibg=#464646 - hi LspReferenceWrite cterm=bold ctermbg=red guibg=#464646 - augroup lsp_document_highlight - autocmd! * <buffer> - autocmd CursorHold <buffer> lua vim.lsp.buf.document_highlight() - autocmd CursorMoved <buffer> lua vim.lsp.buf.clear_references() - augroup END - ]], - false - ) - end -end -local lsp_config = {} - -if O.document_highlight then - function lsp_config.common_on_attach(client, bufnr) - documentHighlight(client, bufnr) - end -end - -function lsp_config.tsserver_on_attach(client, bufnr) - -- lsp_config.common_on_attach(client, bufnr) - client.resolved_capabilities.document_formatting = false - - local ts_utils = require("nvim-lsp-ts-utils") - - -- defaults - ts_utils.setup { - debug = false, - disable_commands = false, - enable_import_on_completion = false, - import_all_timeout = 5000, -- ms - - -- eslint - eslint_enable_code_actions = true, - eslint_enable_disable_comments = true, - eslint_bin = O.lang.tsserver.linter, - eslint_config_fallback = nil, - eslint_enable_diagnostics = true, - - -- formatting - enable_formatting = O.lang.tsserver.autoformat, - formatter = O.lang.tsserver.formatter, - formatter_config_fallback = nil, - - -- parentheses completion - complete_parens = false, - signature_help_in_parens = false, - - -- update imports on file move - update_imports_on_move = false, - require_confirmation_on_move = false, - watch_dir = nil, - } - - -- required to fix code action ranges - ts_utils.setup_client(client) - - -- TODO: keymap these? - -- vim.api.nvim_buf_set_keymap(bufnr, "n", "gs", ":TSLspOrganize<CR>", {silent = true}) - -- vim.api.nvim_buf_set_keymap(bufnr, "n", "qq", ":TSLspFixCurrent<CR>", {silent = true}) - -- vim.api.nvim_buf_set_keymap(bufnr, "n", "gr", ":TSLspRenameFile<CR>", {silent = true}) - -- vim.api.nvim_buf_set_keymap(bufnr, "n", "gi", ":TSLspImportAll<CR>", {silent = true}) -end - - -require('cfg.utils').define_augroups({ - _general_lsp = { - {'FileType', 'lspinfo', 'nnoremap <silent> <buffer> q :q<CR>'}, - } -}) - --- Use a loop to conveniently both setup defined servers --- and map buffer local keybindings when the language server attaches --- local servers = {"pyright", "tsserver"} --- for _, lsp in ipairs(servers) do nvim_lsp[lsp].setup {on_attach = on_attach} end -return lsp_config diff --git a/.config/nvim/lua/cfg/lsp/ts-fmt-lint.lua b/.config/nvim/lua/cfg/lsp/ts-fmt-lint.lua deleted file mode 100644 index 36d4ca8..0000000 --- a/.config/nvim/lua/cfg/lsp/ts-fmt-lint.lua +++ /dev/null @@ -1,37 +0,0 @@ --- Example configuations here: https://github.com/mattn/efm-langserver --- You can look for project scope Prettier and Eslint with e.g. vim.fn.glob("node_modules/.bin/prettier") etc. If it is not found revert to global Prettier where needed. -local M = {} - -M.setup = function() - local tsserver_args = {} - - local prettier = { - formatCommand = "prettier --stdin-filepath ${INPUT}", - formatStdin = true - } - - if vim.fn.glob("node_modules/.bin/prettier") ~= "" then - prettier = { - formatCommand = "./node_modules/.bin/prettier --stdin-filepath ${INPUT}", - formatStdin = true - } - end - - require"lspconfig".efm.setup { - -- init_options = {initializationOptions}, - cmd = {DATA_PATH .. "/lspinstall/efm/efm-langserver"}, - init_options = {documentFormatting = true, codeAction = false}, - filetypes = {"html", "css", "yaml", "vue", "javascript", "javascriptreact", "typescript", "typescriptreact"}, - settings = { - rootMarkers = {".git/", "package.json"}, - languages = { - html = {prettier}, - css = {prettier}, - json = {prettier}, - yaml = {prettier} - } - } - } -end - -return M |