{ lib, config, pkgs, ... }: with lib; let cfg = config.modules.rust; in { options.modules.cpp = { enable = mkEnableOption "cpp"; }; config = mkIf cfg.enable { # Allow unfree modules.unfree.allowedPackages = [ "vscode-extension-ms-vscode-cpptools" # TODO: Remove, it should not be here # "android-studio-stable" # "android-sdk-cmdline-tools" # "android-sdk-tools" ]; # Gitignore additions modules.git.ignores = [ ".ccls-cache" ]; # Development packages home.packages = with pkgs; [ gnumake ]; # VSCode configuration programs.vscode = { extensions = with pkgs.vscode-extensions; [ ms-vscode.cpptools ms-vscode.cmake-tools ]; userSettings = { # "C_Cpp.clang_format_fallbackStyle" = "{ BasedOnStyle: Google, IndentWidth: 4 }"; }; }; # Neovim configuration programs.nixvim = { plugins.lsp.servers.ccls.enable = true; }; }; }