2025-02-18 20:17:57 +01:00
|
|
|
{
|
|
|
|
|
pkgsUnstable,
|
|
|
|
|
pkgs,
|
|
|
|
|
inputs,
|
|
|
|
|
lib,
|
|
|
|
|
...
|
|
|
|
|
}: let
|
|
|
|
|
# stable = inputs.nix-vscode-extensions.extensions.${pkgs.system}.vscode-marketplace-release;
|
2025-03-04 10:43:43 +01:00
|
|
|
nix-vscode-extensions = (inputs.nix-vscode-extensions.overlays.default pkgs pkgsUnstable);
|
|
|
|
|
# vscode-extensions = nix-vscode-extensions.extensions.${pkgs.system};
|
2025-02-18 20:17:57 +01:00
|
|
|
vscodePackage = pkgsUnstable.vscode;
|
2025-03-04 10:43:43 +01:00
|
|
|
vscodeMarketplace = nix-vscode-extensions.vscode-marketplace;
|
|
|
|
|
vscodeMarketplaceRelease = nix-vscode-extensions.vscode-marketplace-release;
|
2025-02-18 20:17:57 +01:00
|
|
|
vscodePkgs = vscodeMarketplace // vscodeMarketplaceRelease; # Prefer release over pre-release
|
|
|
|
|
|
|
|
|
|
mkFormatter = formatter: languages: {
|
|
|
|
|
"[${lib.concatStringsSep "][" languages}]" = {
|
2025-02-19 23:42:24 +01:00
|
|
|
"editor.defaultFormatter" = formatter;
|
|
|
|
|
"editor.formatOnSave" = true;
|
2025-02-18 20:17:57 +01:00
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
in {
|
|
|
|
|
fireproof.home-manager = {
|
|
|
|
|
programs.vscode = {
|
|
|
|
|
enable = true;
|
|
|
|
|
package = vscodePackage;
|
|
|
|
|
enableUpdateCheck = true;
|
|
|
|
|
enableExtensionUpdateCheck = true;
|
|
|
|
|
userSettings = lib.mkMerge [
|
|
|
|
|
{
|
|
|
|
|
# General
|
2025-02-19 23:42:24 +01:00
|
|
|
"extensions.ignoreRecommendations" = true;
|
2025-02-18 20:17:57 +01:00
|
|
|
|
|
|
|
|
# Remote
|
2025-02-19 23:42:24 +01:00
|
|
|
"remote.SSH.useLocalServer" = false;
|
2025-03-04 10:43:43 +01:00
|
|
|
"remote.SSH.remotePlatform" = {"*" = "linux";};
|
2025-02-18 20:17:57 +01:00
|
|
|
|
|
|
|
|
# AI
|
2025-02-19 23:42:24 +01:00
|
|
|
"github.copilot.editor.enableAutoCompletions" = true;
|
|
|
|
|
"github.copilot.enable" = {"*" = true;};
|
2025-02-18 20:17:57 +01:00
|
|
|
|
|
|
|
|
# Theme
|
2025-02-19 23:42:24 +01:00
|
|
|
"workbench.colorTheme" = "Darcula Theme from IntelliJ";
|
2025-02-20 22:50:06 +01:00
|
|
|
"window.titleBarStyle" = "custom";
|
2025-02-18 20:17:57 +01:00
|
|
|
|
|
|
|
|
# Keybindings
|
2025-02-19 23:42:24 +01:00
|
|
|
"workbench.commandPalette.experimental.suggestCommands" = true; # Emulates IntelliJ's "Search Everywhere"
|
|
|
|
|
|
|
|
|
|
# nix-ide
|
|
|
|
|
"nix.enableLanguageServer" = true;
|
|
|
|
|
"nix.serverPath" = lib.getExe pkgs.nil;
|
|
|
|
|
|
|
|
|
|
"nix.serverSettings" = {
|
|
|
|
|
nil.formatting.command = ["nix" "fmt" "--" "--"];
|
|
|
|
|
};
|
2025-02-18 20:17:57 +01:00
|
|
|
}
|
|
|
|
|
(mkFormatter "esbenp.prettier-vscode" ["json" "jsonc" "markdown" "css" "scss" "typescript" "typescriptreact" "html" "yaml"])
|
|
|
|
|
(mkFormatter "charliermarsh.ruff" ["python"])
|
|
|
|
|
];
|
|
|
|
|
extensions = with vscodePkgs; [
|
|
|
|
|
# Remote
|
|
|
|
|
ms-vscode-remote.remote-ssh
|
|
|
|
|
|
|
|
|
|
# AI
|
|
|
|
|
github.copilot
|
|
|
|
|
github.copilot-chat
|
|
|
|
|
|
|
|
|
|
# Python
|
|
|
|
|
ms-pyright.pyright
|
|
|
|
|
ms-python.python
|
|
|
|
|
charliermarsh.ruff
|
|
|
|
|
|
|
|
|
|
# JavaScript
|
|
|
|
|
dbaeumer.vscode-eslint
|
|
|
|
|
esbenp.prettier-vscode
|
|
|
|
|
|
|
|
|
|
# Nix
|
|
|
|
|
jnoortheen.nix-ide
|
|
|
|
|
|
|
|
|
|
# Other languages
|
|
|
|
|
nefrob.vscode-just-syntax
|
|
|
|
|
redhat.vscode-yaml
|
|
|
|
|
|
|
|
|
|
# Theme
|
|
|
|
|
trinm1709.dracula-theme-from-intellij
|
|
|
|
|
|
|
|
|
|
# Keybindings
|
|
|
|
|
k--kato.intellij-idea-keybindings
|
|
|
|
|
];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
}
|