summaryrefslogtreecommitdiff
path: root/lua/plugins/lsp.lua
diff options
context:
space:
mode:
authorBenjamin Chausse <benjamin@chausse.xyz>2024-05-24 00:40:46 -0400
committerBenjamin Chausse <benjamin@chausse.xyz>2024-05-24 00:40:46 -0400
commit0ec84dac8db1b6b47716d4dfa29383f7e50f5ab3 (patch)
treedad6ffc9721252c6de7339b7a9f3e8c459bf1f65 /lua/plugins/lsp.lua
parentc95b9108768ca734fa94ed99b0979f56f097d4bf (diff)
More following TJ's vid on LSP configuration
Diffstat (limited to 'lua/plugins/lsp.lua')
-rw-r--r--lua/plugins/lsp.lua122
1 files changed, 25 insertions, 97 deletions
diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua
index ffb48fa..1a45845 100644
--- a/lua/plugins/lsp.lua
+++ b/lua/plugins/lsp.lua
@@ -1,103 +1,31 @@
return {
"neovim/nvim-lspconfig",
dependencies = {
- "williamboman/mason.nvim",
- "williamboman/mason-lspconfig.nvim",
- "hrsh7th/cmp-nvim-lsp",
- "hrsh7th/cmp-buffer",
- "hrsh7th/cmp-path",
- "hrsh7th/cmp-cmdline",
- "hrsh7th/nvim-cmp",
- "L3MON4D3/LuaSnip",
- "saadparwaiz1/cmp_luasnip",
- "j-hui/fidget.nvim",
+ {
+ "nvim-telescope/telescope.nvim"
+ },
+ {
+ "hrsh7th/nvim-cmp",
+ dependencies = {
+ "hrsh7th/cmp-nvim-lsp",
+ "hrsh7th/cmp-buffer",
+ },
+ }
},
-
+ lazy=false,
config = function()
- local cmp = require('cmp')
- local cmp_lsp = require("cmp_nvim_lsp")
- local capabilities = vim.tbl_deep_extend(
- "force",
- {},
- vim.lsp.protocol.make_client_capabilities(),
- cmp_lsp.default_capabilities())
-
- require("fidget").setup({})
- require("mason").setup()
- require("mason-lspconfig").setup({
- ensure_installed = {
- "vimls",
- "lua_ls",
-
- "gopls",
- "golangci_lint_ls",
-
- "sqlls",
- "dockerls",
- "docker_compose_language_service",
-
- "graphql",
- "yamlls",
-
- "rust_analyzer",
- "clangd",
- },
- handlers = {
- function(server_name) -- default handler (optional)
-
- require("lspconfig")[server_name].setup {
- capabilities = capabilities
- }
- end,
-
- ["lua_ls"] = function()
- local lspconfig = require("lspconfig")
- lspconfig.lua_ls.setup {
- capabilities = capabilities,
- settings = {
- Lua = {
- runtime = { version = "Lua 5.1" },
- diagnostics = {
- globals = { "vim", "it", "describe", "before_each", "after_each" },
- }
- }
- }
- }
- end,
- }
- })
-
- local cmp_select = { behavior = cmp.SelectBehavior.Select }
-
- cmp.setup({
- snippet = {
- expand = function(args)
- require('luasnip').lsp_expand(args.body) -- For `luasnip` users.
- end,
- },
- mapping = cmp.mapping.preset.insert({
- ['<C-p>'] = cmp.mapping.select_prev_item(cmp_select),
- ['<C-n>'] = cmp.mapping.select_next_item(cmp_select),
- ['<C-y>'] = cmp.mapping.confirm({ select = true }),
- ["<C-Space>"] = cmp.mapping.complete(),
- }),
- sources = cmp.config.sources({
- { name = 'nvim_lsp' },
- { name = 'luasnip' }, -- For luasnip users.
- }, {
- { name = 'buffer' },
- })
- })
-
- vim.diagnostic.config({
- float = {
- focusable = false,
- style = "minimal",
- border = "rounded",
- source = "always",
- header = "",
- prefix = "",
- },
- })
- end
+ telescope = require('telescope')
+ require'lspconfig'.gopls.setup{
+ on_attach = function()
+ vim.keymap.set("n", "K", vim.lsp.buf.hover, {buffer=0})
+ vim.keymap.set("n", "<leader>r", vim.lsp.buf.rename, {buffer=0})
+ vim.keymap.set("n", "gd", vim.lsp.buf.definition, {buffer=0})
+ vim.keymap.set("n", "gt", vim.lsp.buf.type_definition, {buffer=0})
+ vim.keymap.set("n", "gi", vim.lsp.buf.implementation, {buffer=0})
+ vim.keymap.set("n", "<leader>fa", vim.lsp.buf.code_action, {buffer=0})
+ vim.keymap.set("n", "<leader>fn", vim.diagnostic.goto_next, {buffer=0})
+ vim.keymap.set("n", "<leader>fp", vim.diagnostic.goto_previous, {buffer=0})
+ end
+ }
+ end,
}