-- Add C/C++ to treesitter
{
"nvim-treesitter/nvim-treesitter",
- opts = function(_, opts)
- if type(opts.ensure_installed) == "table" then
- vim.list_extend(opts.ensure_installed, { "c", "cpp" })
- end
- end,
+ opts = { ensure_installed = { "c", "cpp" } },
},
{
-- Ensure mason installs the server
clangd = {
keys = {
- { "<leader>cR", "<cmd>ClangdSwitchSourceHeader<cr>", desc = "Switch Source/Header (C/C++)" },
+ { "<leader>ch", "<cmd>ClangdSwitchSourceHeader<cr>", desc = "Switch Source/Header (C/C++)" },
+ },
+ root_markers = {
+ -- clangd
+ { "compile_commands.json", "compile_flags.txt", ".clangd"},
+ -- build tools
+ {
+ "Makefile",
+ "configure.ac",
+ "configure.in",
+ "config.h.in",
+ "meson.build",
+ "meson_options.txt",
+ "build.ninja"
+ },
+ -- git fallback
+ { ".git" },
},
- root_dir = function(fname)
- return require("lspconfig.util").root_pattern( "compile_commands.json", "compile_flags.txt")(fname)
- or 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").find_git_ancestor(fname)
- end,
capabilities = {
offsetEncoding = { "utf-16" },
},
},
setup = {
clangd = function(_, opts)
- local clangd_ext_opts = require("lazyvim.util").opts("clangd_extensions.nvim")
+ local clangd_ext_opts = rmz.lazy.opts("clangd_extensions.nvim")
require("clangd_extensions").setup(vim.tbl_deep_extend("force", clangd_ext_opts or {}, { server = opts }))
return false
end,
},
},
},
-
- -- {
- -- "blink.cmp",
+ -- { "blink.cmp",
-- opts = function(_, opts)
-- -- TODO: make sure this works
-- table.insert(opts.fuzzy.sorts, 1, require("clangd_extensions.cmp_scores"))
-- end,
-- },
-
- {
- "mfussenegger/nvim-dap",
+ { "mfussenegger/nvim-dap",
dependencies = {
-- Ensure C/C++ debugger is installed
"williamboman/mason.nvim",
- opts = function(_, opts)
- if type(opts.ensure_installed) == "table" then
- vim.list_extend(opts.ensure_installed, { "codelldb" })
- end
- end,
+ opts = { ensure_installed = { "codelldb" } },
},
opts = function()
local dap = require("dap")
type = "codelldb",
request = "attach",
name = "Attach to process",
- processId = require("dap.utils").pick_process,
+ pid = require("dap.utils").pick_process,
cwd = "${workspaceFolder}",
},
}