From 624620c918c4d9590f177290e27f469b4778d63f Mon Sep 17 00:00:00 2001 From: Zach Berwaldt Date: Mon, 25 Sep 2023 18:59:27 -0400 Subject: add lsp config --- after/plugin/lsp.lua | 34 ++++++++++++++++++++++++++++++++++ lua/zberwaldt/packer.lua | 12 ++++++++++++ plugin/packer_compiled.lua | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 81 insertions(+) create mode 100644 after/plugin/lsp.lua diff --git a/after/plugin/lsp.lua b/after/plugin/lsp.lua new file mode 100644 index 0000000..3e61be0 --- /dev/null +++ b/after/plugin/lsp.lua @@ -0,0 +1,34 @@ +local lsp = require("lsp-zero") + +lsp.preset("recommended") + +lsp.on_attach(function(client, bufnr) + local opts = { buffer = bufnr, remap = false } + + vim.keymap.set("n", "gd", function () vim.lsp.buf.definition() end, opts) + + lsp.default_keymaps({buffer = bufnr}) +end) + +require('mason').setup({}) +require('mason-lspconfig').setup({ + -- Replace the language servers listed here + -- with the ones you want to install + ensure_installed = {'tsserver', 'eslint', 'sumneko_lua', 'rust_analyzer'}, + handlers = { + lsp.default_setup, + }, +}) + +local cmp = require('cmp') +local cmp_select = {behavior = cmp.SelectBehavior.Select} +local cmp_mappings = lsp.defaults.cmp_mappings({ + [''] = cmp.mapping.select_prev_item(cmp_select), + [''] = cmp.mapping.select_next_item(cmp_select), + [''] = cmp.mapping.confirm({ select = true }), + [""] = cmp.mapping.complete(), +}) + +lsp.set_preferences({ + sign_icons = { } +}) diff --git a/lua/zberwaldt/packer.lua b/lua/zberwaldt/packer.lua index 030c760..1b9a136 100644 --- a/lua/zberwaldt/packer.lua +++ b/lua/zberwaldt/packer.lua @@ -21,4 +21,16 @@ return require('packer').startup(function(use) use('theprimeagen/harpoon') use('mbbill/undotree') use('tpope/vim-fugitive') + use { + 'VonHeikemen/lsp-zero.nvim', + branch = 'v3.x', + requires = { + {'williamboman/mason.nvim'}, + {'williamboman/mason-lspconfig.nvim'}, + {'neovim/nvim-lspconfig'}, + {'hrsh7th/nvim-cmp'}, + {'hrsh7th/cmp-nvim-lsp'}, + {'L3MON4D3/LuaSnip'}, + } + } end) diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua index 5c9c711..342aaee 100644 --- a/plugin/packer_compiled.lua +++ b/plugin/packer_compiled.lua @@ -74,11 +74,46 @@ end time([[try_loadstring definition]], false) time([[Defining packer_plugins]], true) _G.packer_plugins = { + LuaSnip = { + loaded = true, + path = "/home/zberwaldt/.local/share/nvim/site/pack/packer/start/LuaSnip", + url = "https://github.com/L3MON4D3/LuaSnip" + }, + ["cmp-nvim-lsp"] = { + loaded = true, + path = "/home/zberwaldt/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp", + url = "https://github.com/hrsh7th/cmp-nvim-lsp" + }, harpoon = { loaded = true, path = "/home/zberwaldt/.local/share/nvim/site/pack/packer/start/harpoon", url = "https://github.com/theprimeagen/harpoon" }, + ["lsp-zero.nvim"] = { + loaded = true, + path = "/home/zberwaldt/.local/share/nvim/site/pack/packer/start/lsp-zero.nvim", + url = "https://github.com/VonHeikemen/lsp-zero.nvim" + }, + ["mason-lspconfig.nvim"] = { + loaded = true, + path = "/home/zberwaldt/.local/share/nvim/site/pack/packer/start/mason-lspconfig.nvim", + url = "https://github.com/williamboman/mason-lspconfig.nvim" + }, + ["mason.nvim"] = { + loaded = true, + path = "/home/zberwaldt/.local/share/nvim/site/pack/packer/start/mason.nvim", + url = "https://github.com/williamboman/mason.nvim" + }, + ["nvim-cmp"] = { + loaded = true, + path = "/home/zberwaldt/.local/share/nvim/site/pack/packer/start/nvim-cmp", + url = "https://github.com/hrsh7th/nvim-cmp" + }, + ["nvim-lspconfig"] = { + loaded = true, + path = "/home/zberwaldt/.local/share/nvim/site/pack/packer/start/nvim-lspconfig", + url = "https://github.com/neovim/nvim-lspconfig" + }, ["nvim-treesitter"] = { loaded = true, path = "/home/zberwaldt/.local/share/nvim/site/pack/packer/start/nvim-treesitter", -- cgit v1.1