dotfiles/user-modules/development/language/cpp.nix

56 lines
1.1 KiB
Nix
Raw Normal View History

2024-12-01 23:52:31 +00:00
{
lib,
config,
pkgs,
...
}:
with lib;
let
2025-02-15 15:28:59 +00:00
cfg = config.modules.cpp;
2024-12-01 23:52:31 +00:00
in
{
options.modules.cpp = {
enable = mkEnableOption "cpp";
};
config = mkIf cfg.enable {
# Allow unfree
modules.unfree.allowedPackages = [
"vscode-extension-ms-vscode-cpptools"
];
# Gitignore additions
modules.git.ignores = [
".ccls-cache"
];
# Development packages
home.packages = with pkgs; [
gnumake
2025-02-15 15:28:59 +00:00
gcc
2024-12-01 23:52:31 +00:00
];
# VSCode configuration
programs.vscode = {
2025-04-16 11:03:45 +00:00
profiles.default = {
extensions = with pkgs.vscode-extensions; [
ms-vscode.cpptools
ms-vscode.cmake-tools
ms-vscode.cpptools-extension-pack
];
2024-12-01 23:52:31 +00:00
2025-04-16 11:03:45 +00:00
userSettings = {
# TODO: Add setting to set the compiler, it currently needs to be set for each workspace individually
# "C_Cpp.clang_format_fallbackStyle" = "{ BasedOnStyle: Google, IndentWidth: 4 }";
};
2024-12-01 23:52:31 +00:00
};
};
# Neovim configuration
programs.nixvim = {
plugins.lsp.servers.ccls.enable = true;
};
};
}