nix-dots/user/modules/vscode.nix

85 lines
2.0 KiB
Nix

{
config,
pkgs,
...
}: let
package = pkgs.vscodium;
vscodePname = package.pname;
configDir =
{
"vscode" = "Code";
"vscode-insiders" = "Code - Insiders";
"vscodium" = "VSCodium";
}
.${vscodePname};
userDir =
if pkgs.stdenv.hostPlatform.isDarwin
then "Library/Application Support/${configDir}/User"
else "${config.xdg.configHome}/${configDir}/User";
configFilePath = "${userDir}/settings.json";
keybindingsFilePath = "${userDir}/keybindings.json";
in {
xdg.configFile."${config.home.homeDirectory}/${configFilePath}".source =
config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/Projects/nix-dots/user/modules/vscode/settings.json";
xdg.configFile."${config.home.homeDirectory}/${keybindingsFilePath}".source =
config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/Projects/nix-dots/user/modules/vscode/keybindings.json";
programs = {
vscode = {
enable = true;
inherit package;
extensions = with pkgs.open-vsx; [
# Editor
vscodevim.vim
pkgs.vscode-marketplace.miguelsolorio.min-theme
pkgs.vscode-extensions.streetsidesoftware.code-spell-checker
mkhl.direnv
# Git
mhutchie.git-graph
waderyan.gitblame
# SQL
qwtel.sqlite-viewer
# Web Development
astro-build.astro-vscode
redwan-hossain.auto-rename-tag-clone
bradlc.vscode-tailwindcss
vue.volar
svelte.svelte-vscode
dbaeumer.vscode-eslint
esbenp.prettier-vscode
antfu.iconify
csstools.postcss
ms-playwright.playwright
# Dart / Flutter
dart-code.dart-code
# Go
golang.go
# Java
redhat.java
vscjava.vscode-java-debug
vscjava.vscode-java-test
vscjava.vscode-maven
vscjava.vscode-java-dependency
# Nix
jnoortheen.nix-ide
kamadorueda.alejandra
# Rust
rust-lang.rust-analyzer
];
};
};
}