93 lines
2.6 KiB
Lua
93 lines
2.6 KiB
Lua
return {
|
|
{
|
|
"nvim-treesitter/nvim-treesitter",
|
|
opts = { ensure_installed = { "cpp" } },
|
|
},
|
|
{
|
|
"p00f/clangd_extensions.nvim",
|
|
lazy = true,
|
|
config = function() end,
|
|
opts = {
|
|
inlay_hints = {
|
|
inline = false,
|
|
},
|
|
ast = {
|
|
--These require codicons (https://github.com/microsoft/vscode-codicons)
|
|
role_icons = {
|
|
type = "",
|
|
declaration = "",
|
|
expression = "",
|
|
specifier = "",
|
|
statement = "",
|
|
["template argument"] = "",
|
|
},
|
|
kind_icons = {
|
|
Compound = "",
|
|
Recovery = "",
|
|
TranslationUnit = "",
|
|
PackExpansion = "",
|
|
TemplateTypeParm = "",
|
|
TemplateTemplateParm = "",
|
|
TemplateParamObject = "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
"neovim/nvim-lspconfig",
|
|
opts = {
|
|
servers = {
|
|
-- Ensure mason installs the server
|
|
clangd = {
|
|
mason = false,
|
|
keys = {
|
|
{ "<leader>ch", "<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 = LazyVim.opts("clangd_extensions.nvim")
|
|
require("clangd_extensions").setup(vim.tbl_deep_extend("force", clangd_ext_opts or {}, { server = opts }))
|
|
return false
|
|
end,
|
|
},
|
|
},
|
|
},
|
|
{
|
|
"nvim-cmp",
|
|
opts = function(_, opts)
|
|
table.insert(opts.sorting.comparators, 1, require("clangd_extensions.cmp_scores"))
|
|
end,
|
|
},
|
|
}
|