aboutsummaryrefslogtreecommitdiffstats
path: root/lua/alpha/lsp.lua
diff options
context:
space:
mode:
authorAriel D'Alessandro <dalessandro.ariel@gmail.com>2021-11-25 00:05:34 +0100
committerAriel D'Alessandro <dalessandro.ariel@gmail.com>2021-11-25 00:05:59 +0100
commit412f51cd7ad4ce610ecaf13210b52709fb3e0232 (patch)
treebf6475830cc0df42b671bf7ce9a1b33fe70f0e37 /lua/alpha/lsp.lua
parent31efe743072b868d4bb86ed709b85253db0b1f60 (diff)
downloadnvim-conf-412f51cd7ad4ce610ecaf13210b52709fb3e0232.tar.gz
nvim-conf-412f51cd7ad4ce610ecaf13210b52709fb3e0232.zip
Move config to lua. Add laravel snippets
Diffstat (limited to 'lua/alpha/lsp.lua')
-rw-r--r--lua/alpha/lsp.lua47
1 files changed, 47 insertions, 0 deletions
diff --git a/lua/alpha/lsp.lua b/lua/alpha/lsp.lua
new file mode 100644
index 0000000..c164846
--- /dev/null
+++ b/lua/alpha/lsp.lua
@@ -0,0 +1,47 @@
+local function on_attach()
+ -- keymaps for lsp
+ vim.api.nvim_set_keymap('n', 'K', ':lua vim.lsp.buf.hover()<cr>', {noremap = true})
+ vim.api.nvim_set_keymap('n', '<leader>vd', ':lua vim.lsp.buf.definition()<cr>', {noremap = true})
+
+
+ vim.api.nvim_set_keymap('n', '<leader>vo', ':LspRestart<cr>', {noremap = true})
+
+ -- diagnostics to move between info and errors
+ vim.api.nvim_set_keymap('n', '<leader>vn', ':lua vim.lsp.diagnostic.goto_next()<cr>', {noremap = true})
+ vim.api.nvim_set_keymap('n', '<leader>vp', ':lua vim.lsp.diagnostic.goto_prev()<cr>', {noremap = true})
+
+ vim.api.nvim_set_keymap('n', '<leader>vp', ':lua vim.lsp.diagnostic.goto_prev()<cr>', {noremap = true})
+
+ vim.api.nvim_set_keymap('n', '<leader>vca', ':lua vim.lsp.buf.code_action()<cr>', {noremap = true})
+ vim.api.nvim_set_keymap('n', '<leader>vf', ':lua vim.lsp.buf.formatting()<cr>', {noremap = true})
+
+ vim.api.nvim_set_keymap('n', '<leader>vi', ':lua vim.lsp.buf.implementation()<cr>', {noremap = true})
+ vim.api.nvim_set_keymap('n', '<leader>vrn', ':lua vim.lsp.buf.rename()<cr>', {noremap = true})
+
+ -- not sure since when I need signature help cant access this, maybe move to normal, but already have
+ -- the new snippet for the floating
+ -- vim.api.nvim_set_keymap('n', '<leader>vsh', ':lua vim.lsp.buf.signature_help()<cr>', {noremap = true})
+ require "lsp_signature".on_attach()
+
+ vim.cmd [[au Filetype php setl omnifunc=v:lua.vim.lsp.omnifunc]]
+ vim.cmd [[autocmd FileType go setlocal omnifunc=v:lua.vim.lsp.omnifunc]]
+
+ vim.g.completion_matching_strategy_list = { 'exact', 'substring', 'fuzzy' }
+
+end
+
+local lsp_installer = require("nvim-lsp-installer")
+
+lsp_installer.on_server_ready(function(server)
+ local opts = {}
+
+ -- (optional) Customize the options passed to the server
+ if server.name == "emmet_ls" then
+ opts.filetypes = {"html", "css", "blade"}
+ end
+
+ opts.on_attach = on_attach
+ -- This setup() function is exactly the same as lspconfig's setup function (:help lspconfig-quickstart)
+ server:setup(opts)
+ vim.cmd [[ do User LspAttachBuffers ]]
+end)