100 lines
4.4 KiB
Diff
100 lines
4.4 KiB
Diff
|
diff --git a/modules/terminal-life/nvim/default.nix b/modules/terminal-life/nvim/default.nix
|
||
|
index e46c82e..02102c4 100644
|
||
|
--- a/modules/terminal-life/nvim/default.nix
|
||
|
+++ b/modules/terminal-life/nvim/default.nix
|
||
|
@@ -74,9 +74,7 @@ in
|
||
|
nodePackages.typescript-language-server
|
||
|
nodePackages.vim-language-server
|
||
|
nodePackages.vue-language-server
|
||
|
- nodePackages.vscode-css-languageserver-bin
|
||
|
- nodePackages.vscode-html-languageserver-bin
|
||
|
- nodePackages.vscode-json-languageserver-bin
|
||
|
+ nodePackages.vscode-langservers-extracted
|
||
|
nodePackages.yaml-language-server
|
||
|
python39Packages.python-lsp-server
|
||
|
python3Full
|
||
|
@@ -131,6 +129,7 @@ in
|
||
|
vim-go
|
||
|
vim-javascript
|
||
|
vim-json
|
||
|
+ SchemaStore-nvim
|
||
|
vim-markdown
|
||
|
vim-nix
|
||
|
vim-ruby
|
||
|
diff --git a/modules/terminal-life/nvim/lsp.vim b/modules/terminal-life/nvim/lsp.vim
|
||
|
index 1d5bf4d..83e5d8c 100644
|
||
|
--- a/modules/terminal-life/nvim/lsp.vim
|
||
|
+++ b/modules/terminal-life/nvim/lsp.vim
|
||
|
@@ -40,10 +40,10 @@ lua <<EOF
|
||
|
buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
|
||
|
buf_set_keymap('n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
|
||
|
buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
|
||
|
- buf_set_keymap('n', '<space>e', '<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<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>e', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
|
||
|
+ buf_set_keymap('n', 'g[', '<cmd>lua vim.diagnostic.goto_prev()<CR>', opts)
|
||
|
+ buf_set_keymap('n', 'g]', '<cmd>lua vim.diagnostic.goto_next()<CR>', opts)
|
||
|
+ buf_set_keymap('n', '<space>q', '<cmd>lua vim.diagnostic.setloclist()<CR>', opts)
|
||
|
buf_set_keymap('n', '<space>f', '<cmd>lua vim.lsp.buf.formatting()<CR>', opts)
|
||
|
|
||
|
end
|
||
|
@@ -51,6 +51,8 @@ lua <<EOF
|
||
|
-- Add additional capabilities supported by nvim-cmp
|
||
|
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||
|
capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities)
|
||
|
+ -- vscode HTML lsp needs this https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#html
|
||
|
+ capabilities.textDocument.completion.completionItem.snippetSupport = true
|
||
|
|
||
|
for lsp_key, lsp_settings in pairs({
|
||
|
'bashls', ------------------------------- Bash
|
||
|
@@ -76,10 +78,14 @@ lua <<EOF
|
||
|
}
|
||
|
},
|
||
|
['jsonls'] = { -------------------------- JSON
|
||
|
- ['cmd'] = {"json-languageserver", "--stdio"}
|
||
|
+ ['settings'] = {
|
||
|
+ ['json'] = {
|
||
|
+ ['schemas' ] = require('schemastore').json.schemas()
|
||
|
+ }
|
||
|
+ }
|
||
|
},
|
||
|
'phpactor', ----------------------------- PHP
|
||
|
- 'pylsp', --------------------------------- Python
|
||
|
+ 'pylsp', -------------------------------- Python
|
||
|
'rnix', --------------------------------- Nix
|
||
|
'solargraph', --------------------------- Ruby
|
||
|
'rust_analyzer', ------------------------ Rust
|
||
|
@@ -90,7 +96,6 @@ lua <<EOF
|
||
|
['filetypes'] = { "terraform", "hcl", "tf" }
|
||
|
},
|
||
|
'tsserver', ----------------------------- Typescript / JavaScript
|
||
|
- 'angularls', ---------------------------- Angular
|
||
|
'vuels', -------------------------------- Vue
|
||
|
'svelte', ------------------------------- Svelte
|
||
|
['yamlls'] = { -------------------------- YAML
|
||
|
@@ -126,6 +131,13 @@ lua <<EOF
|
||
|
end
|
||
|
end -- ‡
|
||
|
|
||
|
+ -- configure floating diagnostics appearance, symbols
|
||
|
+ local signs = { Error = " ", Warn = " ", Hint = " ", Info = " " }
|
||
|
+ for type, icon in pairs(signs) do
|
||
|
+ local hl = "DiagnosticSign" .. type
|
||
|
+ vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = hl })
|
||
|
+ end
|
||
|
+
|
||
|
-- Set completeopt to have a better completion experience
|
||
|
vim.o.completeopt = 'menuone,noselect'
|
||
|
|
||
|
@@ -184,7 +196,7 @@ let g:diagnostic_trimmed_virtual_text = '40'
|
||
|
let g:diagnostic_insert_delay = 1
|
||
|
|
||
|
" Show diagnostic popup on cursor hold
|
||
|
-autocmd CursorHold * lua vim.lsp.diagnostic.show_line_diagnostics({ focusable = false })
|
||
|
+autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, { focus = false, scope = "cursor" })
|
||
|
|
||
|
" Goto previous/next diagnostic warning/error
|
||
|
" nnoremap <silent> g[ <cmd>PrevDiagnosticCycle<cr>
|