Files
nixos/home-manager/development/vscode.nix
2025-01-17 23:18:49 +00:00

81 lines
2.3 KiB
Nix

{ inputs, pkgs, ... }:
let
vs-extensions = inputs.nix-vscode-extensions.extensions.x86_64-linux.open-vsx;
in
{
home.packages = with pkgs;[
(nerdfonts.override { fonts = [ "SpaceMono" ]; })
];
programs = {
vscode = {
enable = true;
package = pkgs.vscodium;
mutableExtensionsDir = false;
extensions = with vs-extensions;[
biomejs.biome
mkhl.direnv
dracula-theme.theme-dracula
dbaeumer.vscode-eslint
eamodio.gitlens
pkief.material-icon-theme
jnoortheen.nix-ide
esbenp.prettier-vscode
bradlc.vscode-tailwindcss
humao.rest-client
loriscro.super
mads-hartmann.bash-ide-vscode
foxundermoon.shell-format
dart-code.flutter
ms-vscode.wasm-wasi-core
];
userSettings = with pkgs;{
"workbench.iconTheme" = "material-icon-theme";
"window.titleBarStyle" = "custom";
"workbench.colorTheme" = "Dracula Theme";
"explorer.compactFolders" = false;
"chat.commandCenter.enabled" = false;
"editor.fontFamily" = "'SpaceMono Nerd Font', 'monospace', monospace";
"editor.fontSize" = 16;
"editor.formatOnSave" = true;
"editor.codeActionsOnSave" = {
"source.organizeImports" = "always";
};
"files.autoSave" = "onWindowChange";
"[typescript]" = {
"editor.defaultFormatter" = "biomejs.biome";
};
"[javascript]" = {
"editor.defaultFormatter" = "biomejs.biome";
};
"[javascriptreact]" = {
"editor.defaultFormatter" = "biomejs.biome";
};
"[typescriptreact]" = {
"editor.defaultFormatter" = "biomejs.biome";
};
"typescript.preferences.preferTypeOnlyAutoImports" = true;
"nix.enableLanguageServer" = true; # Enable LSP.
"nix.serverPath" = "${nixd}/bin/nixd"; # The path to the LSP server executable.
"nix.serverSettings" = {
nixd = {
formatting.command = [ "${nixpkgs-fmt}/bin/nixpkgs-fmt" ];
};
};
"biome.lsp.bin" = "${biome}/bin/biome";
"bashIde.shellcheckPath" = "${shellcheck}/bin/shellcheck";
"shellformat.path" = "${shfmt}/bin/shfmt";
};
};
};
}