aboutsummaryrefslogtreecommitdiff
path: root/lua/user/lsp/lsp-installer.lua
diff options
context:
space:
mode:
authorAleksa Vučković <aleksav013@gmail.com>2022-01-05 15:35:38 +0100
committerAleksa Vučković <aleksav013@gmail.com>2022-01-05 15:35:38 +0100
commit6c1c6ba2f5b45c0c3ba178ee34a9992ce23b7180 (patch)
tree48fad4a844d874303149f829db4a062634b10f79 /lua/user/lsp/lsp-installer.lua
parent2a5f4d72d21d495408a52a2cad271b1e5775967b (diff)
ccls working as intended
Diffstat (limited to 'lua/user/lsp/lsp-installer.lua')
-rw-r--r--lua/user/lsp/lsp-installer.lua28
1 files changed, 28 insertions, 0 deletions
diff --git a/lua/user/lsp/lsp-installer.lua b/lua/user/lsp/lsp-installer.lua
new file mode 100644
index 0000000..18490ce
--- /dev/null
+++ b/lua/user/lsp/lsp-installer.lua
@@ -0,0 +1,28 @@
+local status_ok, lsp_installer = pcall(require, "nvim-lsp-installer")
+if not status_ok then
+ return
+end
+
+-- Register a handler that will be called for all installed servers.
+-- Alternatively, you may also register handlers on specific server instances instead (see example below).
+lsp_installer.on_server_ready(function(server)
+ local opts = {
+ on_attach = require("user.lsp.handlers").on_attach,
+ capabilities = require("user.lsp.handlers").capabilities,
+ }
+
+ if server.name == "bashls" then
+ local bashls_opts = require("user.lsp.settings.bashls")
+ opts = vim.tbl_deep_extend("force", bashls_opts, opts)
+ end
+
+ if server.name == "texlab" then
+ local texlab_opts = require("user.lsp.settings.texlab")
+ opts = vim.tbl_deep_extend("force", texlab_opts, opts)
+ end
+
+
+ -- This setup() function is exactly the same as lspconfig's setup function.
+ -- Refer to https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
+ server:setup(opts)
+end)