From ed6b8049bd7040e2c2a72f78ba0a0ed000604340 Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Mon, 10 Apr 2023 18:59:40 +0200 Subject: lsp stuff --- lazy-lock.json | 21 +++++++++---------- lua/lsp.lua | 62 ++++++++++++++++++++++++++++++++++++++++++-------------- lua/packages.lua | 24 ++++++++-------------- 3 files changed, 66 insertions(+), 41 deletions(-) diff --git a/lazy-lock.json b/lazy-lock.json index 55ba57e..060b57d 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,19 +1,18 @@ { - "LuaSnip": { "branch": "master", "commit": "bc8ec05022743d3f08bda7a76c6bb5e9a9024581" }, + "LuaSnip": { "branch": "master", "commit": "8fdb06d4601c019a9ee880473646364bdbed3206" }, "cmp-nvim-lsp": { "branch": "main", "commit": "0e6b2ed705ddcff9738ec4ea838141654f12eeef" }, "indent-blankline.nvim": { "branch": "master", "commit": "018bd04d80c9a73d399c1061fa0c3b14a7614399" }, "lazy.nvim": { "branch": "main", "commit": "57cce98dfdb2f2dd05a0567d89811e6d0505e13b" }, - "lsp-zero.nvim": { "branch": "v2.x", "commit": "93d50eb990a977a5a9842c715a0da27303fda29d" }, - "lualine.nvim": { "branch": "master", "commit": "c28a7427c3fb29322db136f0564ec58807b26747" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "b64fdede85fd5e0b720ce722919e0a9b95ed6547" }, - "mason.nvim": { "branch": "main", "commit": "c625abf171dfaad790f5703465a93a94334e5049" }, + "lualine.nvim": { "branch": "master", "commit": "84ffb80e452d95e2c46fa29a98ea11a240f7843e" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "a8d5db8f227b9b236d1c54a9c6234bc033825ce7" }, + "mason.nvim": { "branch": "main", "commit": "2311d9d883eb709ad9979a726a38c5ce1343b63c" }, "nvim-cmp": { "branch": "main", "commit": "777450fd0ae289463a14481673e26246b5e38bf2" }, - "nvim-lspconfig": { "branch": "master", "commit": "0bc0c38e1b11dfb6b5f1794d53869f89ccf9e78f" }, - "nvim-treesitter": { "branch": "master", "commit": "871f5665d92d59a369cf916e9aa4d321d466f1e3" }, - "nvim-treesitter-textobjects": { "branch": "master", "commit": "b55fe6175f0001347a433c9df358c8cbf8a4e90f" }, - "nvim-web-devicons": { "branch": "master", "commit": "0568104bf8d0c3ab16395433fcc5c1638efc25d4" }, - "plenary.nvim": { "branch": "master", "commit": "253d34830709d690f013daf2853a9d21ad7accab" }, + "nvim-lspconfig": { "branch": "master", "commit": "10fa01d553ce10646350461ac5ddc71f189e9d1a" }, + "nvim-treesitter": { "branch": "master", "commit": "a82501244a75b3d59cdc42496e5ad841f31e4d6d" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "8673926519ea61069f9c1366d1ad1949316d250e" }, + "nvim-web-devicons": { "branch": "master", "commit": "f16ec8f6e5d23e4349501dae46e0a661918e086e" }, + "plenary.nvim": { "branch": "master", "commit": "9ac3e9541bbabd9d73663d757e4fe48a675bb054" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "580b6c48651cabb63455e97d7e131ed557b8c7e2" }, "telescope.nvim": { "branch": "master", "commit": "c1a2af0af69e80e14e6b226d3957a064cd080805" }, - "vscode.nvim": { "branch": "main", "commit": "9cf814fbc1e7ec05fe05e5381beee2ceec5b099c" } + "vscode.nvim": { "branch": "main", "commit": "6c46cdf22b31e7cbd2558c3bafeceeadc41dc89e" } } \ No newline at end of file diff --git a/lua/lsp.lua b/lua/lsp.lua index 7d34725..54337eb 100644 --- a/lua/lsp.lua +++ b/lua/lsp.lua @@ -1,6 +1,38 @@ -local lsp = require("lsp-zero").preset({}) +require("mason").setup() -lsp.on_attach(function(client, b) +require("mason-lspconfig").setup({ + ensure_installed = { "clangd" }, +}) + +local cmp = require("cmp") +cmp.setup({ + snippet = { + expand = function(args) + require("luasnip").lsp_expand(args.body) + end, + }, + sources = cmp.config.sources({ + { + name = "nvim_lsp", + entry_filter = function(entry, ctx) + if entry:get_kind() == 15 then -- Snippet + print("OH NO") + return false + end + return true + end, + }, + }), + mapping = cmp.mapping.preset.insert({ + [''] = cmp.mapping.confirm({ select = true }), + [''] = cmp.mapping.abort(), + }) +}) + +local lsp_capabilities = require("cmp_nvim_lsp").default_capabilities() +lsp_capabilities.textDocument.completion.completionItem.snipperSupport = false + +local lsp_on_attach = function(client, b) local nmap = function(keys, func, desc) vim.keymap.set("n", keys, func, { buffer = b, desc = desc }) end @@ -11,22 +43,22 @@ lsp.on_attach(function(client, b) nmap("fr", require("telescope.builtin").lsp_references, "Find references") nmap("", require("telescope.builtin").lsp_document_symbols, "Find document symbols") nmap("", vim.lsp.buf.hover, "Signature help") -end) +end -lsp.ensure_installed({ - "clangd", -}) +local lspconfig = require("lspconfig") -require("lspconfig").clangd.setup({ - cmd = { "C:\\Program Files\\LLVM-15\\bin\\clangd.exe" }, +require("mason-lspconfig").setup_handlers({ + function (server_name) + lspconfig[server_name].setup({ + on_attach = lsp_on_attach, + capabilities = lsp_capabilities, + }) + end }) -lsp.setup() - -require("cmp").setup({ - mapping = { - [''] = require("cmp").mapping.confirm({ select = true }), - [''] = require("cmp").mapping.abort(), - } +lspconfig.clangd.setup({ + on_attach = lsp_on_attach, + capabilities = lsp_capabilities, + cmd = { "C:\\Program Files\\LLVM-15\\bin\\clangd.exe" }, }) diff --git a/lua/packages.lua b/lua/packages.lua index c98ba8e..052496d 100644 --- a/lua/packages.lua +++ b/lua/packages.lua @@ -34,23 +34,17 @@ require("lazy").setup({ }, build = ":TSUpdate", }, + {"neovim/nvim-lspconfig"}, { - "VonHeikemen/lsp-zero.nvim", - branch = "v2.x", - dependencies = { - {"neovim/nvim-lspconfig"}, - { - "williamboman/mason.nvim", - build = function() - pcall(vim.cmd, "MasonUpdate") - end, - }, - { "williamboman/mason-lspconfig.nvim" }, - { "hrsh7th/nvim-cmp" }, - { "hrsh7th/cmp-nvim-lsp" }, - { "L3MON4D3/LuaSnip" }, - }, + "williamboman/mason.nvim", + build = function() + pcall(vim.cmd, "MasonUpdate") + end, }, + { "williamboman/mason-lspconfig.nvim" }, + { "hrsh7th/nvim-cmp" }, + { "hrsh7th/cmp-nvim-lsp" }, + { "L3MON4D3/LuaSnip" }, { "lukas-reineke/indent-blankline.nvim", }, -- cgit