nixos/modules/home/editors/vscode.nix
Florian RICHER d3ad226556
All checks were successful
check / check (push) Successful in 50s
Update OS
2025-06-20 22:35:15 +02:00

103 lines
3 KiB
Nix

{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.modules.home.editors.vscode;
in
{
options.modules.home.editors.vscode = {
enable = mkEnableOption ''
Enable vscode with my custom configurations
'';
};
config = mkIf cfg.enable {
warnings = [ "home(editors.vscode): C# support disabled for now. Can be re-enabled when this issue is resolved https://github.com/NixOS/nixpkgs/issues/418521" ];
# Inspired by https://github.com/khaneliman/khanelinix/blob/1cc1ff0435671804666cdc732a0b792178441e2f/modules/home/programs/graphical/editors/vscode/default.nix
programs.vscode = {
enable = true;
profiles =
let
commonExtensions = with pkgs.vscode-extensions; [
# Direnv to automatically Load Dev Env
mkhl.direnv
# Nix
bbenoist.nix
# Improve error display
usernamehw.errorlens
];
commonSettings = {
"files.autoSave" = "onFocusChange";
"git.autofetch" = true;
};
in rec {
default = {
extensions = commonExtensions;
enableUpdateCheck = false;
enableExtensionUpdateCheck = false;
userSettings = commonSettings;
};
C_CPP = {
extensions =
with pkgs.vscode-extensions;
commonExtensions
++ [ ms-vscode.cpptools ms-vscode.cmake-tools ms-vscode.cpptools-extension-pack ];
};
# NOTE: Don't compile, missing libxml2 ? See https://github.com/NixOS/nixpkgs/issues/418521
# C_Sharp = {
# extensions =
# with pkgs.vscode-extensions;
# commonExtensions
# ++ [ ms-dotnettools.csdevkit ms-dotnettools.csharp ms-dotnettools.vscode-dotnet-runtime ];
# };
#
# UnrealEngine = {
# extensions =
# commonExtensions
# ++ C_CPP.extensions
# ++ C_Sharp.extensions;
# };
Phoenix = {
extensions =
with pkgs.vscode-extensions;
commonExtensions
++ [ phoenixframework.phoenix elixir-lsp.vscode-elixir-ls ];
userSettings = commonSettings // {
"emmet.includeLanguages" = {
"phoenix-heex" = "html";
};
};
};
Ruby = {
extensions =
with pkgs.vscode-extensions;
commonExtensions
++ [ shopify.ruby-lsp ];
};
Rust = {
extensions =
with pkgs.vscode-extensions;
commonExtensions
++ [ tamasfe.even-better-toml rust-lang.rust-analyzer ];
};
Typescript = {
extensions =
with pkgs.vscode-extensions;
commonExtensions
++ [ yoavbls.pretty-ts-errors ];
};
};
};
};
}