136 lines
4.4 KiB
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"
|
|
];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|