Compare commits

..

2 commits

Author SHA1 Message Date
fff5b682ba
vscode: refactor with new profile support
All checks were successful
check / check (push) Successful in 30s
Inspired by 1cc1ff0435/modules/home/programs/graphical/editors/vscode/default.nix
2025-02-22 23:37:30 +01:00
863fc04e17
Update OS 2025-02-22 23:36:39 +01:00
2 changed files with 79 additions and 51 deletions

24
flake.lock generated
View file

@ -71,11 +71,11 @@
]
},
"locked": {
"lastModified": 1739634831,
"narHash": "sha256-xFnU+uUl48Icas2wPQ+ZzlL2O3n8f6J2LrzNK9f2nng=",
"lastModified": 1739841949,
"narHash": "sha256-lSOXdgW/1zi/SSu7xp71v+55D5Egz8ACv0STkj7fhbs=",
"owner": "nix-community",
"repo": "disko",
"rev": "fa5746ecea1772cf59b3f34c5816ab3531478142",
"rev": "15dbf8cebd8e2655a883b74547108e089f051bf0",
"type": "github"
},
"original": {
@ -406,11 +406,11 @@
]
},
"locked": {
"lastModified": 1739676861,
"narHash": "sha256-X86ptHMNVuu1Z9leL0YV2E/oxD2IgPYrYANPcvFYpNo=",
"lastModified": 1740254115,
"narHash": "sha256-MwxDtYB/MSGZlr/xS+ExGYH2QgHk73ShD40shxjad/Y=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "eb44c1601ed99896525e983bc9b15eb8b4d5879e",
"rev": "cb3f6e9b59d3a5e51ef9f7da2b8418d5c72aaef8",
"type": "github"
},
"original": {
@ -614,11 +614,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1739446958,
"narHash": "sha256-+/bYK3DbPxMIvSL4zArkMX0LQvS7rzBKXnDXLfKyRVc=",
"lastModified": 1739866667,
"narHash": "sha256-EO1ygNKZlsAC9avfcwHkKGMsmipUk1Uc0TbrEZpkn64=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "2ff53fe64443980e139eaa286017f53f88336dd0",
"rev": "73cf49b8ad837ade2de76f87eb53fc85ed5d4680",
"type": "github"
},
"original": {
@ -713,11 +713,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1739711065,
"narHash": "sha256-SE/1miuM4tho8ktGceEER7rbWeRs/ySU47eC6ymcB5k=",
"lastModified": 1740253674,
"narHash": "sha256-5uORHfjmbFBOcPLdpqk5sRUoeg1Hl2lSs1qDUlQ1P0Y=",
"owner": "nix-community",
"repo": "NUR",
"rev": "57a7d7b18e9a9a9727f06ed0130b3c5f54c1cc04",
"rev": "730b78756948a6fffbdc6045fd71c47f87ff340f",
"type": "github"
},
"original": {

View file

@ -11,49 +11,77 @@ in
'';
};
config = mkIf cfg.enable {
# Inspired by https://github.com/khaneliman/khanelinix/blob/1cc1ff0435671804666cdc732a0b792178441e2f/modules/home/programs/graphical/editors/vscode/default.nix
programs.vscode = {
enable = true;
enableUpdateCheck = false;
enableExtensionUpdateCheck = false;
userSettings = {
"files.autoSave" = "onFocusChange";
"emmet.includeLanguages" = {
"phoenix-heex" = "html";
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
{
default = {
extensions = commonExtensions;
enableUpdateCheck = false;
enableExtensionUpdateCheck = false;
userSettings = commonSettings;
};
C_CPP = {
extensions =
with pkgs.vscode-extensions;
commonExtensions
++ [ ms-vscode.cpptools ];
};
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 not compile for now
};
Typescript = {
extensions =
with pkgs.vscode-extensions;
commonExtensions
++ [ yoavbls.pretty-ts-errors ];
};
};
"git.autofetch" = true;
};
userTasks = {};
# Waiting https://github.com/nix-community/home-manager/pull/5640 to support multi-profiles support
extensions = with pkgs; with vscode-extensions; [
# Direnv to automatically Load Dev Env
mkhl.direnv
# Nix
bbenoist.nix
# Rust
rust-lang.rust-analyzer
tamasfe.even-better-toml
# Phoenix
phoenixframework.phoenix
elixir-lsp.vscode-elixir-ls
# Ruby
shopify.ruby-lsp
# C/C++ Support
ms-vscode.cpptools
# Improve error display
usernamehw.errorlens
# TS Error
yoavbls.pretty-ts-errors
];
};
};
}