diff options
| author | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-01-24 20:35:27 +0900 |
|---|---|---|
| committer | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-01-24 20:35:27 +0900 |
| commit | c80a54e42b52ce297f0f2f71af23c562832025c7 (patch) | |
| tree | dcce8bb977a770f473325d48f6f70b21d9818a40 /ar/.config/LazyVim/lua/plugins/lspconfig.lua | |
init
Diffstat (limited to 'ar/.config/LazyVim/lua/plugins/lspconfig.lua')
| -rw-r--r-- | ar/.config/LazyVim/lua/plugins/lspconfig.lua | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/ar/.config/LazyVim/lua/plugins/lspconfig.lua b/ar/.config/LazyVim/lua/plugins/lspconfig.lua new file mode 100644 index 0000000..4d8db1c --- /dev/null +++ b/ar/.config/LazyVim/lua/plugins/lspconfig.lua @@ -0,0 +1,77 @@ +return { + "neovim/nvim-lspconfig", + init = function() + local keys = require("lazyvim.plugins.lsp.keymaps").get() + -- change a keymap + -- keys[#keys + 1] = { "K", "<cmd>echo 'hello'<cr>" } + -- keys[#keys + 1] = { "<c-k>", mode = { "i" }, false } + + -- disable a keymap + -- keys[#keys + 1] = { "K", false } + keys[#keys + 1] = { mode = { "i" }, "<c-k>", false } + + -- add a keymap + -- keys[#keys + 1] = { "H", "<cmd>echo 'hello'<cr>" } + end, + opts = { + servers = { + -- Ensure mason installs the server + clangd = { + keys = { + { "<leader>cR", "<cmd>ClangdSwitchSourceHeader<cr>", desc = "Switch Source/Header (C/C++)" }, + }, + root_dir = function(fname) + return require("lspconfig.util").root_pattern( + "Makefile", + "configure.ac", + "configure.in", + "config.h.in", + "meson.build", + "meson_options.txt", + "build.ninja" + )(fname) or require("lspconfig.util").root_pattern("compile_commands.json", "compile_flags.txt")( + fname + ) or require("lspconfig.util").find_git_ancestor(fname) + end, + capabilities = { + offsetEncoding = { "utf-16" }, + }, + cmd = { + "clangd", + "--background-index", + "--clang-tidy", + "--header-insertion=iwyu", + "--completion-style=detailed", + "--function-arg-placeholders", + "--fallback-style=llvm", + }, + init_options = { + usePlaceholders = true, + completeUnimported = true, + clangdFileStatus = true, + }, + }, + }, + setup = { + clangd = function(_, opts) + local clangd_ext_opts = require("lazyvim.util").opts("clangd_extensions.nvim") + require("clangd_extensions").setup(vim.tbl_deep_extend("force", clangd_ext_opts or {}, { server = opts })) + return false + end, + }, + }, + keys = { + { + -- mode = "n", + "<leader>rr", + ":w | :TermExec cmd='compiler \"%\"' size=50 direction=tab go_back=0<cr>", + desc = "Run Code", + }, + { + -- mode = "n", + "<leader>rd", + ":w | :TermExec cmd='compiler \"%\" -d' size=50 direction=tab go_back=0<cr>", + desc = "Debug Code", + }, + }, +} |
