From 0b2315d1fb180b18038626767cfe66e2e381ab57 Mon Sep 17 00:00:00 2001 From: Selim Mustafaev Date: Sun, 26 May 2024 21:32:57 +0300 Subject: [PATCH] Adding lsp for C++ and cmake --- lazy-lock.json | 31 ++++++++++++++++++------------- lua/plugins/cmp.lua | 22 +++++++++++++++++++--- lua/plugins/lspconfig.lua | 12 ++++++++++++ lua/plugins/mason-lspconfig.lua | 14 ++++++++++++++ lua/plugins/mason.lua | 3 ++- lua/plugins/treesitter.lua | 3 ++- 6 files changed, 67 insertions(+), 18 deletions(-) create mode 100644 lua/plugins/lspconfig.lua create mode 100644 lua/plugins/mason-lspconfig.lua diff --git a/lazy-lock.json b/lazy-lock.json index 23b093d..6ec2c3a 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,16 +1,21 @@ { - "crates.nvim": { "branch": "main", "commit": "786d12a70c9b91fa2d0d102bb07df02be0db31a1" }, - "lazy.nvim": { "branch": "main", "commit": "31ddbea7c10b6920c9077b66c97951ca8682d5c8" }, + "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, + "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, + "crates.nvim": { "branch": "main", "commit": "d556c00d60c9421c913ee54ff690df2a34f6264e" }, + "lazy.nvim": { "branch": "main", "commit": "8f19915175395680808de529e4220da8dafc0759" }, "lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" }, - "mason.nvim": { "branch": "main", "commit": "751b1fcbf3d3b783fcf8d48865264a9bcd8f9b10" }, - "monokai-pro.nvim": { "branch": "master", "commit": "aafde73a622435891d36b411d8623e705ead6293" }, - "neo-tree.nvim": { "branch": "v3.x", "commit": "7aad1bf3f6b849cbf108e02c55ad4d701cb4d33a" }, - "noice.nvim": { "branch": "main", "commit": "0cbe3f88d038320bdbda3c4c5c95f43a13c3aa12" }, - "nui.nvim": { "branch": "main", "commit": "cbd2668414331c10039278f558630ed19b93e69b" }, - "nvim-cmp": { "branch": "main", "commit": "ce16de5665c766f39c271705b17fff06f7bcb84f" }, - "nvim-notify": { "branch": "master", "commit": "5371f4bfc1f6d3adf4fe9d62cd3a9d44356bfd15" }, - "nvim-treesitter": { "branch": "master", "commit": "208d504421e4ac53f4230a34cd4b831e8e76cb69" }, - "nvim-web-devicons": { "branch": "master", "commit": "b3468391470034353f0e5110c70babb5c62967d3" }, - "plenary.nvim": { "branch": "master", "commit": "8aad4396840be7fc42896e3011751b7609ca4119" }, - "rustaceanvim": { "branch": "master", "commit": "efccc7d7c42e0849a6c85bfd6a8d746729cf08b5" } + "mason-lspconfig.nvim": { "branch": "main", "commit": "a4caa0d083aab56f6cd5acf2d42331b74614a585" }, + "mason.nvim": { "branch": "main", "commit": "49ff59aded1047a773670651cfa40e76e63c6377" }, + "monokai-pro.nvim": { "branch": "master", "commit": "2bad2a92fe0ff6c8581d33a853a1b17592b83239" }, + "neo-tree.nvim": { "branch": "v3.x", "commit": "29f7c215332ba95e470811c380ddbce2cebe2af4" }, + "noice.nvim": { "branch": "main", "commit": "f119045f38792ad5311e5f9be7a879e4c1a95fe0" }, + "nui.nvim": { "branch": "main", "commit": "b1b3dcd6ed8f355c78bad3d395ff645be5f8b6ae" }, + "nvim-cmp": { "branch": "main", "commit": "5260e5e8ecadaf13e6b82cf867a909f54e15fd07" }, + "nvim-lspconfig": { "branch": "master", "commit": "b972e7154bc94ab4ecdbb38c8edbccac36f83996" }, + "nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" }, + "nvim-treesitter": { "branch": "master", "commit": "78e11ab7cedabe5dfb3b600c6682712271c59acf" }, + "nvim-web-devicons": { "branch": "master", "commit": "b77921fdc44833c994fdb389d658ccbce5490c16" }, + "plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" }, + "rustaceanvim": { "branch": "master", "commit": "e306c742bd7f7183e371cd91268b72d9db1bbae0" } } \ No newline at end of file diff --git a/lua/plugins/cmp.lua b/lua/plugins/cmp.lua index 6e527e1..647ce36 100644 --- a/lua/plugins/cmp.lua +++ b/lua/plugins/cmp.lua @@ -2,11 +2,27 @@ return { { "hrsh7th/nvim-cmp", dependencies = { - "Saecki/crates.nvim" + "Saecki/crates.nvim", + "hrsh7th/cmp-nvim-lsp", + "hrsh7th/cmp-buffer", + "hrsh7th/cmp-path" }, opts = function(_, opts) - opts.sources = opts.sources or {} - table.insert(opts.sources, { name = "crates" }) + local cmp = require("cmp") + + return { + auto_brackets = {}, + sources = cmp.config.sources({ + { name = "nvim_lsp" }, + { name = "crates" } + }, { + { name = "buffer" } + }), + mapping = cmp.mapping.preset.insert({ + [''] = cmp.mapping.complete(), + [''] = cmp.mapping.confirm({ select = true }) + }) + } end } } diff --git a/lua/plugins/lspconfig.lua b/lua/plugins/lspconfig.lua new file mode 100644 index 0000000..d9f5abb --- /dev/null +++ b/lua/plugins/lspconfig.lua @@ -0,0 +1,12 @@ +return { + { + "neovim/nvim-lspconfig", + dependencies = { + "williamboman/mason-lspconfig.nvim" + }, + init = function() + require("lspconfig").cmake.setup{} + require("lspconfig").clangd.setup{} + end + } +} diff --git a/lua/plugins/mason-lspconfig.lua b/lua/plugins/mason-lspconfig.lua new file mode 100644 index 0000000..7205be7 --- /dev/null +++ b/lua/plugins/mason-lspconfig.lua @@ -0,0 +1,14 @@ +return { + { + "williamboman/mason-lspconfig.nvim", + opts = { + ensure_installed = { + "cmake", + "clangd" + } + }, + dependencies = { + "williamboman/mason.nvim" + } + } +} diff --git a/lua/plugins/mason.lua b/lua/plugins/mason.lua index 2432c2b..7274484 100644 --- a/lua/plugins/mason.lua +++ b/lua/plugins/mason.lua @@ -5,7 +5,8 @@ return { opts.ensure_installed = opts.ensure_installed or {} vim.list_extend(opts.ensure_installed, { "codelldb", - "rust-analyzer" + "rust-analyzer", + "cmake-language-server" }) end, config = function() diff --git a/lua/plugins/treesitter.lua b/lua/plugins/treesitter.lua index 814674e..5a48859 100644 --- a/lua/plugins/treesitter.lua +++ b/lua/plugins/treesitter.lua @@ -8,7 +8,8 @@ return { indent = { enable = true }, ensure_installed = { "c", - "cpp", + "cpp", + "cmake", "rust", "ron", "toml",