nix-dots/user/modules/vscode.nix

69 lines
1.6 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
streetsidesoftware.code-spell-checker
# Git
mhutchie.git-graph
waderyan.gitblame
# Web Development
astro-build.astro-vscode
redwan-hossain.auto-rename-tag-clone
bradlc.vscode-tailwindcss
johnsoncodehk.volar
svelte.svelte-vscode
dbaeumer.vscode-eslint
esbenp.prettier-vscode
antfu.iconify
csstools.postcss
# Dart / Flutter
dart-code.dart-code
# Java
redhat.java
vscjava.vscode-java-debug
vscjava.vscode-java-test
vscjava.vscode-maven
vscjava.vscode-java-dependency
# Nix
jnoortheen.nix-ide
];
};
};
}