From 188d14e5b2524a7c48dfe176cbb2d7c8b116650d Mon Sep 17 00:00:00 2001 From: Xander Swan Date: Wed, 3 Dec 2025 10:00:42 -0500 Subject: update lsp to use neovim's lsp --- .config/nvim/lua/lsp.lua | 82 ++++++++++++++++++++++++++++++++++++++ .config/nvim/lua/map.lua | 28 ------------- .config/nvim/lua/neovide.lua | 9 ----- .config/nvim/lua/plugin/init.lua | 2 +- .config/nvim/lua/plugin/lsp.lua | 55 ------------------------- .config/nvim/lua/plugin/packer.lua | 31 ++++---------- .config/nvim/lua/plugin/setup.lua | 2 + 7 files changed, 92 insertions(+), 117 deletions(-) create mode 100644 .config/nvim/lua/lsp.lua delete mode 100644 .config/nvim/lua/neovide.lua delete mode 100644 .config/nvim/lua/plugin/lsp.lua (limited to '.config/nvim/lua') diff --git a/.config/nvim/lua/lsp.lua b/.config/nvim/lua/lsp.lua new file mode 100644 index 0000000..32ba6f8 --- /dev/null +++ b/.config/nvim/lua/lsp.lua @@ -0,0 +1,82 @@ +local lspconf = require("lspconfig") +local cmp = require("cmp") +local capabilities = require("cmp_nvim_lsp").default_capabilities() + +vim.opt.signcolumn = "yes" + +local servers = { + ["lua_ls"] = { + settings = { + Lua = { + runtime = { + version = "LuaJIT" + } + } + } + }, + ["clangd"] = {}, +} + +for lsp, conf in pairs(servers) do + conf.capabilities = capabilities + lspconf[lsp].setup(conf) +end + + +cmp.setup({ + preselect = "item", + completion = { + completeopt = "menu,menuone,noinsert", + }, + window = { + completion = cmp.config.window.bordered(), + documentation = cmp.config.window.bordered(), + }, + formatting = { + fields = { "menu", "abbr", "kind" }, + + format = function(entry, item) + local menu_icon = { + nvim_lsp = "L", + buffer = "B", + path = "P", + nvim_lua = "NL", + } + + item.menu = menu_icon[entry.source.name] + + return item + end, + }, + mapping = { + [""] = cmp.mapping.confirm({ select = false }), + [""] = cmp.mapping.select_next_item(), + [""] = cmp.mapping.select_prev_item(), + }, + sources = { + { name = "path" }, + { name = "nvim_lsp" }, + { name = "buffer", keyword_length = 3 }, + }, +}) + +vim.api.nvim_create_autocmd("LspAttach", { + group = vim.api.nvim_create_augroup("UserLspConfig", {}), + callback = function(ev) + vim.bo[ev.buf].omnifunc = "v:lua.vim.lsp.omnifunc" + local opts = { buffer = ev.buf } + vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts) + vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts) + vim.keymap.set("n", "gi", vim.lsp.buf.implementation, opts) + vim.keymap.set("n", "gr", vim.lsp.buf.references, opts) + vim.keymap.set("n", "go", vim.lsp.buf.type_definition, opts) + vim.keymap.set("n", "ls", vim.lsp.buf.signature_help, opts) + vim.keymap.set("n", "rn", vim.lsp.buf.rename, opts) + vim.keymap.set("n", "h", vim.lsp.buf.hover, opts) + vim.keymap.set({"n", "v"}, "ca", vim.lsp.buf.code_action, opts) + vim.keymap.set("n", "f", + function() + vim.lsp.buf.format({async = true}) + end, opts) + end +}) diff --git a/.config/nvim/lua/map.lua b/.config/nvim/lua/map.lua index 6dcc1da..f4edeee 100644 --- a/.config/nvim/lua/map.lua +++ b/.config/nvim/lua/map.lua @@ -5,30 +5,6 @@ local nv = {"n", "v"} vim.keymap.set(nv, "gm", "gM", {}) vim.keymap.set(nv, "gM", "gMi", {}) --- Moving between windows -vim.keymap.set(nv, "", "h", {}) -vim.keymap.set(nv, "", "j", {}) -vim.keymap.set(nv, "", "k", {}) -vim.keymap.set(nv, "", "l", {}) - --- Same, but for terminal -vim.keymap.set("t", "", "h", {}) -vim.keymap.set("t", "", "j", {}) -vim.keymap.set("t", "", "k", {}) -vim.keymap.set("t", "", "l", {}) - --- Moving windows -vim.keymap.set(nv, "h", "H", {}) -vim.keymap.set(nv, "j", "J", {}) -vim.keymap.set(nv, "k", "K", {}) -vim.keymap.set(nv, "l", "L", {}) - --- Resizing windows -vim.keymap.set(nv, "", "-", {}) -vim.keymap.set(nv, "", "+", {}) -vim.keymap.set(nv, "", "<", {}) -vim.keymap.set(nv, "", ">", {}) - -- Make exiting insert mode in terminal mode easier vim.keymap.set("t", "", "", {}) @@ -49,10 +25,6 @@ vim.keymap.set("x", "P", "p", {}) -- Commands vim.keymap.set(nv, "c", "set invhlsearch", {silent=true}) vim.keymap.set(nv, "e", "Oil", {silent=true}) -vim.keymap.set(nv, "t", function() - vim.cmd("split") - vim.cmd("term") -end, {silent=true}) vim.keymap.set("n", "{", "cp", {silent=true}) vim.keymap.set("n", "}", "cn", {silent=true}) diff --git a/.config/nvim/lua/neovide.lua b/.config/nvim/lua/neovide.lua deleted file mode 100644 index da710bb..0000000 --- a/.config/nvim/lua/neovide.lua +++ /dev/null @@ -1,9 +0,0 @@ -if not vim.g.neovide then - return -end - -vim.o.guifont = "MartianMono Nerd Font Mono" -vim.g.neovide_cursor_animation_length = 0 -vim.g.neovide_cursor_trail_size = 0 -vim.g.neovide_cursor_animate_in_insert_mode = false -vim.g.neovide_cursor_animate_command_line = false diff --git a/.config/nvim/lua/plugin/init.lua b/.config/nvim/lua/plugin/init.lua index 4e60f98..6cd9e35 100644 --- a/.config/nvim/lua/plugin/init.lua +++ b/.config/nvim/lua/plugin/init.lua @@ -1,3 +1,3 @@ require("plugin.packer") require("plugin.setup") -require("plugin.lsp") +-- require("plugin.lsp") diff --git a/.config/nvim/lua/plugin/lsp.lua b/.config/nvim/lua/plugin/lsp.lua deleted file mode 100644 index b590d30..0000000 --- a/.config/nvim/lua/plugin/lsp.lua +++ /dev/null @@ -1,55 +0,0 @@ -local lsp = require("lsp-zero") -local lspconfig = require("lspconfig") - -vim.opt.signcolumn = 'yes' - -local lspconfig_defaults = require('lspconfig').util.default_config -lspconfig_defaults.capabilities = vim.tbl_deep_extend( - 'force', - lspconfig_defaults.capabilities, - require('cmp_nvim_lsp').default_capabilities() -) - -require('mason').setup {} -require('mason-lspconfig').setup { - ensure_installed = { - "lua_ls", - "clangd", - }, - handlers = { - lsp.default_setup, - }, -} - -local cmp = require('cmp') -cmp.setup { - mapping = cmp.mapping.preset.insert({ - -- `Enter` key to confirm completion - [''] = cmp.mapping.confirm({ select = false }), - -- `Tab` key to navigate - [''] = cmp.mapping.select_prev_item({ behavior = 'select' }), - [''] = cmp.mapping.select_next_item({ behavior = 'select' }), - }) -} - -lsp.on_attach(function(client, buffer) - local opts = { buffer = buffer, remap = false } - - vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts) - vim.keymap.set("n", "gD", function() vim.lsp.buf.declaration() end, opts) - vim.keymap.set("n", "gi", function() vim.lsp.buf.implementation() end, opts) - vim.keymap.set("n", "go", function() vim.lsp.buf.type_definition() end, opts) - vim.keymap.set("n", "gr", function() vim.lsp.buf.references() end, opts) - vim.keymap.set("n", "h", function() vim.lsp.buf.hover() end, opts) - vim.keymap.set("n", "la", function() vim.lsp.buf.code_action() end, opts) - vim.keymap.set("n", "lrn", function() vim.lsp.buf.rename() end, opts) - vim.keymap.set("n", "ls", function() vim.lsp.buf.signature_help() end, opts) -end) - -lsp.setup() - -vim.diagnostic.config { - virtual_text = true -} - -vim.g.zig_fmt_autosave = 0 diff --git a/.config/nvim/lua/plugin/packer.lua b/.config/nvim/lua/plugin/packer.lua index a468c06..0ed86bc 100644 --- a/.config/nvim/lua/plugin/packer.lua +++ b/.config/nvim/lua/plugin/packer.lua @@ -4,7 +4,6 @@ return require("packer").startup(function(use) use {"andweeb/presence.nvim"} use {"hobby-engine/hobby-script-vim"} - use {"~/den_vim"} use { "nvim-telescope/telescope.nvim", @@ -13,7 +12,6 @@ return require("packer").startup(function(use) }, } - use {"tpope/vim-fugitive"} use {"windwp/nvim-autopairs"} use { @@ -36,28 +34,13 @@ return require("packer").startup(function(use) use {"xiyaowong/transparent.nvim"} use {"xiyaowong/virtcolumn.nvim"} - use { - "VonHeikemen/lsp-zero.nvim", - requires = { - {"lukas-reineke/lsp-format.nvim"}, - -- LSP Support - {"neovim/nvim-lspconfig"}, - {"williamboman/mason.nvim"}, - {"williamboman/mason-lspconfig.nvim"}, - - -- Autocompletion - {"hrsh7th/nvim-cmp"}, - {"hrsh7th/cmp-buffer"}, - {"hrsh7th/cmp-path"}, - {"saadparwaiz1/cmp_luasnip"}, - {"hrsh7th/cmp-nvim-lsp"}, - {"hrsh7th/cmp-nvim-lua"}, - - -- Snippets - {"L3MON4D3/LuaSnip"}, - {"rafamadriz/friendly-snippets"}, - } - } + use {"williamboman/mason.nvim"} + use {"neovim/nvim-lspconfig"} + use {"hrsh7th/nvim-cmp"} + use {"hrsh7th/cmp-buffer"} + use {"hrsh7th/cmp-path"} + use {"hrsh7th/cmp-nvim-lsp"} + use {"hrsh7th/cmp-nvim-lua"} use {"stevearc/oil.nvim"} diff --git a/.config/nvim/lua/plugin/setup.lua b/.config/nvim/lua/plugin/setup.lua index 5b6e400..5a3ae43 100644 --- a/.config/nvim/lua/plugin/setup.lua +++ b/.config/nvim/lua/plugin/setup.lua @@ -4,6 +4,8 @@ require('gitsigns').setup {} require("Comment").setup {} +require("mason").setup {} + require("oil").setup { view_options = { show_hidden = true, -- cgit v1.3-2-g0d8e