clang setup
This commit is contained in:
parent
737c3cf77b
commit
f53b310f52
2 changed files with 94 additions and 1 deletions
|
|
@ -3,6 +3,7 @@
|
||||||
"SchemaStore.nvim": { "branch": "main", "commit": "a86e7a0ecaf09fdb0b58ca09f34cd1e2b2b1fd75" },
|
"SchemaStore.nvim": { "branch": "main", "commit": "a86e7a0ecaf09fdb0b58ca09f34cd1e2b2b1fd75" },
|
||||||
"bufferline.nvim": { "branch": "main", "commit": "0b2fd861eee7595015b6561dade52fb060be10c4" },
|
"bufferline.nvim": { "branch": "main", "commit": "0b2fd861eee7595015b6561dade52fb060be10c4" },
|
||||||
"catppuccin": { "branch": "main", "commit": "ba5f4153a5dad99505baba936bd0373534400ac3" },
|
"catppuccin": { "branch": "main", "commit": "ba5f4153a5dad99505baba936bd0373534400ac3" },
|
||||||
|
"clangd_extensions.nvim": { "branch": "main", "commit": "a8500531c4ed3a207e744a374ea038744a0f93eb" },
|
||||||
"cmake-tools.nvim": { "branch": "master", "commit": "4be3c229fe932043fd83ad52fdf0ba9af7297789" },
|
"cmake-tools.nvim": { "branch": "master", "commit": "4be3c229fe932043fd83ad52fdf0ba9af7297789" },
|
||||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||||
"cmp-git": { "branch": "main", "commit": "3d83031c4b63f9b10703e32e070cda0700a81992" },
|
"cmp-git": { "branch": "main", "commit": "3d83031c4b63f9b10703e32e070cda0700a81992" },
|
||||||
|
|
@ -75,7 +76,6 @@
|
||||||
"vim-dadbod-completion": { "branch": "master", "commit": "c3ab458fb7c94c2fc4baae4e2cd5601eec9d27bc" },
|
"vim-dadbod-completion": { "branch": "master", "commit": "c3ab458fb7c94c2fc4baae4e2cd5601eec9d27bc" },
|
||||||
"vim-dadbod-ui": { "branch": "master", "commit": "0f51d8de368c8c6220973e8acd156d17da746f4c" },
|
"vim-dadbod-ui": { "branch": "master", "commit": "0f51d8de368c8c6220973e8acd156d17da746f4c" },
|
||||||
"vim-repeat": { "branch": "master", "commit": "65846025c15494983dafe5e3b46c8f88ab2e9635" },
|
"vim-repeat": { "branch": "master", "commit": "65846025c15494983dafe5e3b46c8f88ab2e9635" },
|
||||||
"wal.vim": { "branch": "master", "commit": "c72ba0d18946f29aab9c95eb6975d321c68b3681" },
|
|
||||||
"which-key.nvim": { "branch": "main", "commit": "6c1584eb76b55629702716995cca4ae2798a9cca" },
|
"which-key.nvim": { "branch": "main", "commit": "6c1584eb76b55629702716995cca4ae2798a9cca" },
|
||||||
"yanky.nvim": { "branch": "main", "commit": "73215b77d22ebb179cef98e7e1235825431d10e4" }
|
"yanky.nvim": { "branch": "main", "commit": "73215b77d22ebb179cef98e7e1235825431d10e4" }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
93
nvim/lua/plugins/clang.lua
Normal file
93
nvim/lua/plugins/clang.lua
Normal file
|
|
@ -0,0 +1,93 @@
|
||||||
|
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,
|
||||||
|
},
|
||||||
|
}
|
||||||
Loading…
Add table
Reference in a new issue