76 lines
1.7 KiB
Nix
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";
|
|
go.enable = mkEnableOption "Go";
|
|
java.enable = mkEnableOption "Java";
|
|
jinja.enable = mkEnableOption "Jinja";
|
|
lua.enable = mkEnableOption "Lua";
|
|
markdown.enable = mkEnableOption "Markdown";
|
|
nix.enable = mkEnableOption "Nix";
|
|
podman.enable = mkEnableOption "Podman";
|
|
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/go
|
|
./langs/java
|
|
./langs/jinja
|
|
./langs/lua
|
|
./langs/markdown
|
|
./langs/nix
|
|
./langs/podman
|
|
./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;
|
|
})
|
|
];
|
|
};
|
|
};
|
|
}
|