dotfiles/hosts/strix/configs/vscode.nix

136 lines
4.4 KiB
Nix

{ pkgs, user, ... }:
{
home-manager.users.${user} = {
programs.vscode = {
enable = true;
package = pkgs.vscodium;
#package = pkgs.vscode;
extensions =
with pkgs.vscode-extensions;
[
# language suports
pkgs.unstable.vscode-extensions.rust-lang.rust-analyzer
pkgs.vscode-extensions.jnoortheen.nix-ide
pkgs.vscode-extensions.redhat.java
pkgs.vscode-extensions.zxh404.vscode-proto3
pkgs.vscode-extensions.redhat.vscode-yaml
pkgs.vscode-extensions.ms-azuretools.vscode-docker
pkgs.vscode-extensions.octref.vetur
pkgs.vscode-extensions.bungcip.better-toml
pkgs.vscode-extensions.mikestead.dotenv
# linters
pkgs.vscode-extensions.esbenp.prettier-vscode
pkgs.vscode-extensions.naumovs.color-highlight
# essentials, other
pkgs.vscode-extensions.streetsidesoftware.code-spell-checker
pkgs.vscode-extensions.vscodevim.vim
pkgs.vscode-extensions.oderwat.indent-rainbow
pkgs.vscode-extensions.usernamehw.errorlens
pkgs.vscode-extensions.christian-kohler.path-intellisense
pkgs.vscode-extensions.vscjava.vscode-spring-initializr
pkgs.vscode-extensions.gruntfuggly.todo-tree
pkgs.vscode-extensions.eamodio.gitlens
#themes, icons
pkgs.vscode-extensions.vscode-icons-team.vscode-icons
pkgs.vscode-extensions.mechatroner.rainbow-csv
# local ai
pkgs.vscode-extensions.continue.continue
]
++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
{
name = "shades-of-purple";
publisher = "ahmadawais";
version = "7.3.2";
sha256 = "10q5w9g7ghn2qvdc7h2b79x1vy8nzpnwz8dbg1h03074ikhvjx4v";
}
{
name = "aw-watcher-vscode";
publisher = "activitywatch";
version = "0.5.0";
sha256 = "0nvw8pp6xaqs6w2zz3dr0vlrrpd6wcgh6jc5bp5ld92p0f34idrs";
}
];
userSettings = {
"terminal.integrated.defaultProfile.linux" = "zsh";
"editor.formatOnSave" = true;
"editor.lineNumbers" = "relative";
"workbench.colorTheme" = "Shades of Purple (Super Dark)";
"editor.minimap.enabled" = false;
"workbench.iconTheme" = "vscode-icons";
"vim.smartRelativeLine" = true;
"redhat.telemetry.enabled" = false;
"rust-analyzer.cargo.sysroot" = "discover";
"[typescriptreact]" = {
"editor.defaultFormatter" = "esbenp.prettier-vscode";
};
# load build.rs from checks
"rust-analyzer.cargo.loadOutDirsFromCheck" = true;
"rust-analyzer.experimental.procAttrMacros" = false;
"rust-analyzer.cargo.buildScripts.enable" = true;
};
languageSnippets = {
nix = {
"Include RustSrc for vscode" = {
body = [
"LIBCLANG_PATH = \"\${pkgs.llvmPackages_17.libclang.lib}/lib\";"
"RUST_SRC_PATH = \"\${pkgs.rust.packages.stable.rustPlatform.rustLibSrc}\";"
];
description = "Include RUST_SRC_PATH and LIBCLANG_PATH for devshells";
prefix = [
"rust-src"
];
scope = "nix";
};
"Crane.dev workspace package into container" = {
body = [
"$1-container = pkgs.dockerTools.buildLayeredImage"
"{"
" name = \"$1\";"
" tag = \"latest\";"
" contents = with pkgs; ["
" cacert"
" openssl"
" pkg-config"
" libiconv"
" ];"
""
" config = {"
" WorkingDir = \"/app\";"
" Volumes = {"
" \"/app\" = { };"
" };"
" Entrypoint = [ \"\${$1}/bin/$2\" ];"
" };"
"}; "
];
prefix = [
"nix container"
];
scope = "nix";
};
pkginit = {
body = [
"{pkgs, ...}: {"
"$1"
"}"
];
description = "Insert a nix pkg config";
prefix = [
"nix"
];
};
};
};
};
};
}