1
0
Fork 0
mirror of https://github.com/nix-community/home-manager.git synced 2025-03-31 04:04:32 +00:00

vscode: Fix version checks when using Cursor (#6680)

The version check for VSCode fails when using Cursor.
Cursor has its own versioning and is currently at
0.45.14 (based on VSCode version 1.96.2).
The version checks for generating the `extensions.json` in the
module look at the package version,
which causes them not to be generated for Cursor.
This commit is contained in:
Tim Steinbach 2025-03-26 09:44:18 -04:00 committed by GitHub
parent ce287a5cd3
commit 693840c01b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -389,25 +389,26 @@ in {
mkMerge (concatMap toPaths mkMerge (concatMap toPaths
(flatten (mapAttrsToList (n: v: v.extensions) cfg.profiles)) (flatten (mapAttrsToList (n: v: v.extensions) cfg.profiles))
++ optional ++ optional
(versionAtLeast vscodeVersion "1.74.0" && defaultProfile != { }) { ((versionAtLeast vscodeVersion "1.74.0" || vscodePname == "cursor")
# Whenever our immutable extensions.json changes, force VSCode to regenerate && defaultProfile != { }) {
# extensions.json with both mutable and immutable extensions. # Whenever our immutable extensions.json changes, force VSCode to regenerate
"${extensionPath}/.extensions-immutable.json" = { # extensions.json with both mutable and immutable extensions.
text = extensionJson defaultProfile.extensions; "${extensionPath}/.extensions-immutable.json" = {
onChange = '' text = extensionJson defaultProfile.extensions;
run rm $VERBOSE_ARG -f ${extensionPath}/{extensions.json,.init-default-profile-extensions} onChange = ''
verboseEcho "Regenerating VSCode extensions.json" run rm $VERBOSE_ARG -f ${extensionPath}/{extensions.json,.init-default-profile-extensions}
run ${getExe cfg.package} --list-extensions > /dev/null verboseEcho "Regenerating VSCode extensions.json"
''; run ${getExe cfg.package} --list-extensions > /dev/null
}; '';
}) };
})
else { else {
"${extensionPath}".source = let "${extensionPath}".source = let
combinedExtensionsDrv = pkgs.buildEnv { combinedExtensionsDrv = pkgs.buildEnv {
name = "vscode-extensions"; name = "vscode-extensions";
paths = (flatten (mapAttrsToList (n: v: v.extensions) cfg.profiles)) paths = (flatten (mapAttrsToList (n: v: v.extensions) cfg.profiles))
++ optional ++ optional ((versionAtLeast vscodeVersion "1.74.0" || vscodePname
(versionAtLeast vscodeVersion "1.74.0" && defaultProfile != { }) == "cursor") && defaultProfile != { })
(extensionJsonFile "default" (extensionJsonFile "default"
(extensionJson defaultProfile.extensions)); (extensionJson defaultProfile.extensions));
}; };