diff options
author | Benjamin Chausse <benjamin@chausse.xyz> | 2024-05-24 00:40:46 -0400 |
---|---|---|
committer | Benjamin Chausse <benjamin@chausse.xyz> | 2024-05-24 00:40:46 -0400 |
commit | 0ec84dac8db1b6b47716d4dfa29383f7e50f5ab3 (patch) | |
tree | dad6ffc9721252c6de7339b7a9f3e8c459bf1f65 /lua/plugins/lsp.lua | |
parent | c95b9108768ca734fa94ed99b0979f56f097d4bf (diff) |
More following TJ's vid on LSP configuration
Diffstat (limited to 'lua/plugins/lsp.lua')
-rw-r--r-- | lua/plugins/lsp.lua | 122 |
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, } |