summaryrefslogtreecommitdiff
path: root/ar/.config/LazyVim/lua/plugins/lspconfig.lua
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-01-24 20:35:27 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-01-24 20:35:27 +0900
commitc80a54e42b52ce297f0f2f71af23c562832025c7 (patch)
treedcce8bb977a770f473325d48f6f70b21d9818a40 /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.lua77
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",
+ },
+ },
+}