Files
nix/hosts/common/configs/user/gui/vscode/options.nix
Nikolaos Karaolidis 0ae8128304 Refactor packages
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2025-02-23 23:52:29 +00:00

76 lines
1.7 KiB
Nix

{
config,
lib,
pkgs,
...
}:
let
cfg = config.programs.vscode;
in
{
options.programs.vscode = with lib; {
languages = {
c.enable = mkEnableOption "C";
docker.enable = mkEnableOption "Docker";
go.enable = mkEnableOption "Go";
java.enable = mkEnableOption "Java";
jinja.enable = mkEnableOption "Jinja";
lua.enable = mkEnableOption "Lua";
markdown.enable = mkEnableOption "Markdown";
nix.enable = mkEnableOption "Nix";
python.enable = mkEnableOption "Python";
rest.enable = mkEnableOption "REST";
rust.enable = mkEnableOption "Rust";
sas.enable = mkEnableOption "SAS";
sops.enable = mkEnableOption "SOPS";
svelte.enable = mkEnableOption "Svelte";
typescript.enable = mkEnableOption "TypeScript";
yaml.enable = mkEnableOption "YAML";
};
copilot.enable = mkEnableOption "GitHub Copilot";
};
imports = [
./langs/c
./langs/docker
./langs/go
./langs/java
./langs/jinja
./langs/lua
./langs/markdown
./langs/nix
./langs/python
./langs/rest
./langs/rust
./langs/sas
./langs/sops
./langs/svelte
./langs/typescript
./langs/yaml
];
config = {
programs.vscode.profiles.default = {
extensions =
with pkgs.vscode-extensions;
[ ]
++ lib.lists.optionals cfg.copilot.enable [
github.copilot
github.copilot-chat
];
userSettings = lib.mkMerge [
(lib.mkIf cfg.copilot.enable {
"github.copilot.enable" = {
"*" = true;
"plaintext" = true;
"markdown" = true;
};
"chat.editing.alwaysSaveWithGeneratedChanges" = true;
})
];
};
};
}