add nushell and vscodium configurations

This commit is contained in:
Jo 2025-02-09 23:52:24 +01:00
parent 124d6b7ede
commit 24fff4ee33
4 changed files with 161 additions and 71 deletions

View file

@ -0,0 +1,74 @@
{
lib,
pkgs,
config,
namespace,
...
}: let
inherit (lib) mkEnableOption mkIf;
cfg = config.${namespace}.apps.vscodium;
in {
options.${namespace}.apps.vscodium = {
enable = mkEnableOption "vscodium";
};
config = mkIf cfg.enable {
home.packages = with pkgs; [
alejandra
];
programs.vscode = {
enable = true;
package = pkgs.vscodium;
enableUpdateCheck = false;
enableExtensionUpdateCheck = false;
mutableExtensionsDir = false;
extensions = with pkgs; [
### Theming
vscode-extensions.pkief.material-icon-theme
vscode-extensions.catppuccin.catppuccin-vsc
### General
vscode-extensions.usernamehw.errorlens
vscode-extensions.leonardssh.vscord
vscode-extensions.davidlday.languagetool-linter
vscode-extensions.christian-kohler.path-intellisense
vscode-extensions.wakatime.vscode-wakatime
### Language specific
# Nushell
vscode-extensions.thenuprojectcontributors.vscode-nushell-lang
# Nix
vscode-extensions.kamadorueda.alejandra
vscode-extensions.jnoortheen.nix-ide
# Env
vscode-extensions.irongeek.vscode-env
# Deno (JavaScript)
vscode-extensions.denoland.vscode-deno
];
userSettings = {
"files.autoSave" = "on";
"workbench.colorTheme" = "Catppuccin Macchiato";
"[nix]" = {
"editor.tabSize" = 2;
"formatterPath" = "alejandra";
"enableLanguageServer" = true;
"serverPath" = "nixd";
"serverSettings" = {
"nixd" = {
"formatting.command" = ["alejandra"];
};
};
};
};
};
};
}

View file

@ -0,0 +1,69 @@
{
lib,
pkgs,
config,
namespace,
...
}: let
inherit (lib) mkEnableOption mkIf;
cfg = config.${namespace}.apps.nushell;
in {
options.${namespace}.apps.nushell = {
enable = mkEnableOption "Whether to enable nushell customization.";
};
config = mkIf cfg.enable {
programs = {
nushell = {
enable = true;
extraConfig = ''
let carapace_completer = {|spans|
carapace $spans.0 nushell ...$spans | from json
}
$env.config = {
completions: {
case_sensitive: false # case-sensitive completions
quick: true # set to false to prevent auto-selecting completions
partial: true # set to false to prevent partial filling of the prompt
algorithm: "fuzzy" # prefix or fuzzy
external: {
# set to false to prevent nushell looking into $env.PATH to find more suggestions
enable: true
# set to lower can improve completion performance at the cost of omitting some options
max_results: 200
completer: $carapace_completer # check 'carapace_completer'
}
}
}
$env.PATH = ($env.PATH |
split row (char esep) |
prepend /run/wrappers/bin |
prepend /home/jo/.nix-profile/bin |
append /usr/bin/env/run/wrappers/bin
)
'';
};
carapace.enable = true;
carapace.enableNushellIntegration = true;
starship = {
enable = true;
settings = {
add_newline = true;
character = {
success_symbol = "[](bold green)";
error_symbol = "[](bold red)";
};
};
};
};
home.packages = with pkgs; [
carapace
];
};
}