chore(cursor): remove force install from vsix for Cursor override

Cursor can now install extensions via ID through it's `cursor` CLI command. So let's do that by default, and fallback to downloading vsix files if the extension ID approach fails, like we do with VSCode.
This commit is contained in:
2025-08-08 11:33:44 +01:00
parent d99db32180
commit a273954256
3 changed files with 43 additions and 47 deletions

View File

@@ -47,7 +47,7 @@ editor experience with custom keybindings, settings, and extensions.
- Config files are symlinked to appropriate editor directories based on OS
- Extensions are managed via lock files with version pinning
- Cursor uses .vsix installation due to signature verification issues
- Extensions install directly by ID with fallback to .vsix when needed
- Static symlinks for additional files like cspell dictionary and MCP config
### Key Features

View File

@@ -1,8 +1,8 @@
# cursor Extensions
# Generated on Fri Aug 8 10:16:32 BST 2025
# Generated on Fri Aug 8 11:21:01 BST 2025
alefragnani.project-manager@12.8.0
anthropic.claude-code@1.0.68
anthropic.claude-code@1.0.71
antiantisepticeye.vscode-color-picker@0.0.4
antyos.openscad@1.3.2
anysphere.cpptools@2.0.2
@@ -19,20 +19,20 @@ bierner.markdown-checkbox@0.4.0
bierner.markdown-emoji@0.3.1
bierner.markdown-footnotes@0.1.1
bierner.markdown-mermaid@1.28.0
bierner.markdown-preview-github-styles@2.2.0
bierner.markdown-preview-github-styles@0.1.6
bierner.markdown-yaml-preamble@0.1.0
bodil.file-browser@0.2.11
britesnow.vscode-toggle-quotes@0.3.6
bufbuild.vscode-buf@0.7.2
carlos-algms.make-task-provider@2.5.1
christian-kohler.path-intellisense@2.10.0
carlos-algms.make-task-provider@2.4.2
christian-kohler.path-intellisense@2.8.0
connor4312.esbuild-problem-matchers@0.0.3
connorshea.vscode-ruby-test-adapter@0.9.2
connorshea.vscode-ruby-test-adapter@0.9.0
ctf0.macros@1.1.1
davidanson.vscode-markdownlint@0.60.0
dbaeumer.vscode-eslint@3.0.16
dewski.simplecov@0.0.7
dnut.rewrap-revived@17.9.0
dnut.rewrap-revived@1.16.3
editorconfig.editorconfig@0.17.4
elijah-potter.harper@0.56.0
emeraldwalk.runonsave@0.3.2
@@ -42,12 +42,12 @@ fogio.inline-go-struct-tags-syntax-highlight@1.0.0
github.vscode-github-actions@0.27.2
github.vscode-pull-request-github@0.108.0
gofenix.go-lines@0.0.10
golang.go@0.49.0
gruntfuggly.todo-tree@0.0.226
hashicorp.terraform@2.34.2025012311
golang.go@0.48.0
gruntfuggly.todo-tree@0.0.215
hashicorp.terraform@2.34.5
hbenl.vscode-test-explorer@2.22.1
hoovercj.vscode-settings-cycler@1.0.1
humao.rest-client@0.25.1
humao.rest-client@0.25.0
hverlin.mise-vscode@0.53.0
jakearl.search-editor-apply-changes@0.1.1
jnoortheen.nix-ide@0.4.22
@@ -56,23 +56,22 @@ joshmu.periscope@1.13.1
kahole.magit@0.6.67
karunamurti.haml@1.4.1
kilocode.kilo-code@4.78.0
koichisasada.vscode-rdbg@0.2.2
koichisasada.vscode-rdbg@0.2.1
letrieu.expand-region@0.1.4
llvm-vs-code-extensions.vscode-clangd@0.2.0
m4ns0ur.base64@1.0.0
mads-hartmann.bash-ide-vscode@1.43.0
matthewpi.caddyfile-support@0.4.0
mattn.lisp@0.1.12
mermaidchart.vscode-mermaid-chart@2.5.0
mermaidchart.vscode-mermaid-chart@2.3.0
mhutchie.git-graph@1.30.0
mkhl.direnv@0.17.0
mrmlnc.vscode-duplicate@1.2.1
ms-azuretools.vscode-containers@2.1.0
ms-dotnettools.vscode-dotnet-runtime@2.3.6
ms-kubernetes-tools.vscode-kubernetes-tools@1.3.25
ms-python.debugpy@2025.11.2025072901
ms-python.debugpy@2025.6.0
ms-python.python@2025.6.1
ms-python.vscode-pylance@2024.8.1
ms-vscode.cmake-tools@1.21.36
ms-vscode.extension-test-runner@0.0.12
ms-vscode.hexeditor@1.11.1
@@ -85,12 +84,12 @@ redhat.vscode-xml@0.29.0
redhat.vscode-yaml@1.18.0
romanpeshkov.vscode-text-tables@0.1.5
rrudi.vscode-dired@0.0.9
rust-lang.rust-analyzer@0.4.2557
rust-lang.rust-analyzer@0.3.2563
shopify.ruby-extensions-pack@0.1.13
shopify.ruby-lsp@0.9.31
sidneys1.gitconfig@2.0.1
sorbet.sorbet-vscode-extension@0.3.45
streetsidesoftware.code-spell-checker@4.2.3
streetsidesoftware.code-spell-checker@4.0.47
stuart.unique-window-colors@1.0.51
sumneko.lua@3.15.0
svelte.svelte-vscode@109.10.1
@@ -99,7 +98,7 @@ swellaby.workspace-config-plus@0.2.5
tamasfe.even-better-toml@0.21.2
tootone.org-mode@0.5.0
tuttieee.emacs-mcx@0.88.10
tyriar.sort-lines@1.12.0
tyriar.sort-lines@1.9.1
vadimcn.vscode-lldb@1.11.5
viktorzetterstrom.non-breaking-space-highlighter@0.0.3
zhuangtongfa.material-theme@3.19.0

53
siren
View File

@@ -1020,53 +1020,50 @@ install_extension() {
local current_version
current_version="$(get_installed_version "${editor_cmd}" "${extension}")"
local target_version="${version}"
if [[ "${use_latest}" != "false" ]]; then
if [[ -n "${current_version}" && "${use_latest}" != "force" ]]; then
echo "Extension ${extension} is already installed" \
"(current: ${current_version}), skipping"
return 0
fi
info "Checking latest version for ${extension}..."
local latest_version
latest_version=$(query_latest_version "${extension}")
if [[ -n "${latest_version}" ]]; then
info " - Latest available version: ${latest_version}"
version="${latest_version}"
else
error "Could not determine latest version for ${extension}"
return 1
fi
target_version="latest"
fi
if [[ -z "${current_version}" ]]; then
# Extension not installed.
info "Installing ${extension}@${version}"
info "Installing ${extension}@${target_version}"
elif [[ "${current_version}" == "${version}" ]]; then
# Exact version already installed.
info "Extension ${extension}@${version} is already installed, skipping"
return 0
else
elif [[ "${target_version}" != "latest" ]]; then
# Wrong version installed, need to force install.
info "Extension ${extension} has wrong version installed" \
"(current: ${current_version}, wanted: ${version})," \
"force-installing ${version}"
force_install="true"
fi
# For Cursor we need to download and install from `*.vsix` file, as
# installation via ID fails with a signature verification error.
if [[ "${SETUP_EDITOR}" == "cursor" ]]; then
install_extension_via_vsix "${editor_cmd}" "${extension}" "${version}" \
"${extensions_cache_dir}"
else
info "Extension ${extension} is already installed" \
"(current: ${current_version}), skipping"
return 0
fi
# Try direct installation first; fall back to downloading `*.vsix` if needed.
if ! install_extension_direct "${editor_cmd}" "${extension}" \
"${version}" "${force_install}"; then
"${target_version}" "${force_install}"; then
if [[ "${use_latest}" != "false" ]]; then
info "Checking latest version for ${extension}..."
local latest_version
latest_version=$(query_latest_version "${extension}")
if [[ -n "${latest_version}" ]]; then
info " - Latest available version: ${latest_version}"
version="${latest_version}"
else
error "Could not determine latest version for ${extension}"
return 1
fi
fi
warn "Direct installation failed, trying .vsix download method..."
install_extension_via_vsix "${editor_cmd}" "${extension}" "${version}" \
"${extensions_cache_dir}"
install_extension_via_vsix "${editor_cmd}" "${extension}" \
"${version}" "${extensions_cache_dir}"
fi
# Clean up extensions directory if empty