summaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/lsp/bash-ls.lua2
-rw-r--r--lua/lsp/css-ls.lua2
-rw-r--r--lua/lsp/docker-ls.lua2
-rw-r--r--lua/lsp/graphql-ls.lua2
-rw-r--r--lua/lsp/html-ls.lua8
-rw-r--r--lua/lsp/init.lua28
-rw-r--r--lua/lsp/java-ls.lua1
-rw-r--r--lua/lsp/js-ts-ls.lua2
-rw-r--r--lua/lsp/json-ls.lua1
-rw-r--r--lua/lsp/lua-ls.lua1
-rw-r--r--lua/lsp/python-ls.lua4
-rw-r--r--lua/lsp/vim-ls.lua2
-rw-r--r--lua/lsp/yaml-ls.lua4
13 files changed, 53 insertions, 6 deletions
diff --git a/lua/lsp/bash-ls.lua b/lua/lsp/bash-ls.lua
index 8be0383a..723f71ca 100644
--- a/lua/lsp/bash-ls.lua
+++ b/lua/lsp/bash-ls.lua
@@ -1,2 +1,2 @@
-- npm i -g bash-language-server
-require'lspconfig'.bashls.setup{}
+require'lspconfig'.bashls.setup {on_attach = require'lsp'.common_on_attach}
diff --git a/lua/lsp/css-ls.lua b/lua/lsp/css-ls.lua
new file mode 100644
index 00000000..0da8868d
--- /dev/null
+++ b/lua/lsp/css-ls.lua
@@ -0,0 +1,2 @@
+-- npm install -g vscode-css-languageserver-bin
+require'lspconfig'.cssls.setup {on_attach = require'lsp'.common_on_attach}
diff --git a/lua/lsp/docker-ls.lua b/lua/lsp/docker-ls.lua
new file mode 100644
index 00000000..96a6babb
--- /dev/null
+++ b/lua/lsp/docker-ls.lua
@@ -0,0 +1,2 @@
+-- npm install -g dockerfile-language-server-nodejs
+require'lspconfig'.dockerls.setup {on_attach = require'lsp'.common_on_attach}
diff --git a/lua/lsp/graphql-ls.lua b/lua/lsp/graphql-ls.lua
new file mode 100644
index 00000000..0bd97ed5
--- /dev/null
+++ b/lua/lsp/graphql-ls.lua
@@ -0,0 +1,2 @@
+-- npm install -g graphql-language-service-cli
+require'lspconfig'.graphql.setup {on_attach = require'lsp'.common_on_attach}
diff --git a/lua/lsp/html-ls.lua b/lua/lsp/html-ls.lua
new file mode 100644
index 00000000..8a13abdb
--- /dev/null
+++ b/lua/lsp/html-ls.lua
@@ -0,0 +1,8 @@
+-- npm install -g vscode-html-languageserver-bin
+local capabilities = vim.lsp.protocol.make_client_capabilities()
+capabilities.textDocument.completion.completionItem.snippetSupport = true
+
+require'lspconfig'.html.setup {
+ on_attach = require'lsp'.common_on_attach,
+ capabilities = capabilities
+}
diff --git a/lua/lsp/init.lua b/lua/lsp/init.lua
index 7ae6bab3..6b42f856 100644
--- a/lua/lsp/init.lua
+++ b/lua/lsp/init.lua
@@ -30,8 +30,7 @@ vim.cmd('nnoremap <silent> K :Lspsaga hover_doc<CR>')
vim.cmd('nnoremap <silent> <C-p> :Lspsaga diagnostic_jump_prev<CR>')
vim.cmd('nnoremap <silent> <C-n> :Lspsaga diagnostic_jump_next<CR>')
-- scroll down hover doc or scroll in definition preview
-vim.cmd(
- 'nnoremap <silent> <C-f> <cmd>lua require(\'lspsaga.action\').smart_scroll_with_saga(1)<CR>')
+vim.cmd('nnoremap <silent> <C-f> <cmd>lua require(\'lspsaga.action\').smart_scroll_with_saga(1)<CR>')
-- scroll up hover doc
vim.cmd(
'nnoremap <silent> <C-b> <cmd>lua require(\'lspsaga.action\').smart_scroll_with_saga(-1)<CR>')
@@ -42,3 +41,28 @@ 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 lsp_config = {}
+
+function lsp_config.common_on_attach(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
+
+-- 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/lua/lsp/java-ls.lua b/lua/lsp/java-ls.lua
index 31f9744d..d3dcb9d9 100644
--- a/lua/lsp/java-ls.lua
+++ b/lua/lsp/java-ls.lua
@@ -13,6 +13,7 @@ else
print("Unsupported system")
end
require('jdtls').start_or_attach({
+ on_attach = require'lsp'.common_on_attach,
cmd = {JAVA_LS_EXECUTABLE},
root_dir = require('jdtls.setup').find_root({'gradle.build', 'pom.xml'})
})
diff --git a/lua/lsp/js-ts-ls.lua b/lua/lsp/js-ts-ls.lua
index 16b430f4..0c4a02e3 100644
--- a/lua/lsp/js-ts-ls.lua
+++ b/lua/lsp/js-ts-ls.lua
@@ -7,4 +7,4 @@
-- require'completion'.on_attach(client)
-- require'illuminate'.on_attach(client)
-- end
-require'lspconfig'.tsserver.setup {}
+require'lspconfig'.tsserver.setup {on_attach = require'lsp'.common_on_attach}
diff --git a/lua/lsp/json-ls.lua b/lua/lsp/json-ls.lua
index d13fed3f..57c13224 100644
--- a/lua/lsp/json-ls.lua
+++ b/lua/lsp/json-ls.lua
@@ -1,5 +1,6 @@
-- npm install -g vscode-json-languageserver
require'lspconfig'.jsonls.setup {
+ on_attach = require'lsp'.common_on_attach,
commands = {
Format = {
function()
diff --git a/lua/lsp/lua-ls.lua b/lua/lsp/lua-ls.lua
index ef0e599e..00032b19 100644
--- a/lua/lsp/lua-ls.lua
+++ b/lua/lsp/lua-ls.lua
@@ -20,6 +20,7 @@ end
require'lspconfig'.sumneko_lua.setup {
cmd = {sumneko_binary, "-E", sumneko_root_path .. "/main.lua"},
+ on_attach = require'lsp'.common_on_attach,
settings = {
Lua = {
runtime = {
diff --git a/lua/lsp/python-ls.lua b/lua/lsp/python-ls.lua
index 11eeef91..19de234a 100644
--- a/lua/lsp/python-ls.lua
+++ b/lua/lsp/python-ls.lua
@@ -1,2 +1,4 @@
-- npm i -g pyright
-require'lspconfig'.pyright.setup{}
+require'lspconfig'.pyright.setup{
+ on_attach = require'lsp'.common_on_attach,
+}
diff --git a/lua/lsp/vim-ls.lua b/lua/lsp/vim-ls.lua
new file mode 100644
index 00000000..f2dcb79b
--- /dev/null
+++ b/lua/lsp/vim-ls.lua
@@ -0,0 +1,2 @@
+-- npm install -g vim-language-server
+require'lspconfig'.vimls.setup {on_attach = require'lsp'.common_on_attach}
diff --git a/lua/lsp/yaml-ls.lua b/lua/lsp/yaml-ls.lua
index 904f20ea..e611572b 100644
--- a/lua/lsp/yaml-ls.lua
+++ b/lua/lsp/yaml-ls.lua
@@ -1,2 +1,4 @@
-- npm install -g yaml-language-server
-require'lspconfig'.yamlls.setup{}
+require'lspconfig'.yamlls.setup{
+ -- on_attach = require'lsp'.common_on_attach,
+}