Files
TheaninovOS/modules/home-manager/programs/nixvim/presets/languages/c.nix
2025-02-24 21:28:41 +01:00

48 lines
944 B
Nix

{
lib,
config,
...
}:
let
cfg = config.presets.languages.c;
in
{
options.presets.languages.c = {
enable = lib.mkEnableOption "C/C++";
cppcheck = lib.mkEnableOption "cppcheck";
};
config = lib.mkIf cfg.enable {
plugins = {
conform-nvim.settings.formatters_by_ft = {
c = [ "clang-format" ];
cpp = [ "clang-format" ];
};
none-ls = {
enable = true;
sources.diagnostics = {
cppcheck = lib.mkIf cfg.cppcheck {
enable = true;
};
};
};
lsp.servers = {
clangd = {
enable = true;
cmd = [
"clangd"
"--offset-encoding=utf-16"
"--clang-tidy"
];
settings.InlayHints = {
Designators = true;
Enabled = true;
ParameterNames = true;
DeducedTypes = true;
};
};
};
};
};
}