VS Code extension installs via a hand-built .vsix (from dev 83e472a96e36)

Folder copies into ~/.vscode/extensions no longer load in modern VS Code;
make_vsix.sh packages the extension (bash + python3 only) and the README
installs it with `code --install-extension`.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-27 15:14:57 +02:00
parent f855c5ccae
commit 2eb16791d2
4 changed files with 125 additions and 8 deletions

View File

@@ -211,6 +211,28 @@ else
echo "(no Node runtime — the VS Code extension test is skipped; the language server is still tested)"
fi
# --- the VS Code .vsix package builds with the full payload ----------------
# (the no-marketplace install path; needs only bash + python3)
mkdir -p "$OUT/vsix"
cp -R "$EDIT_DIR/vscode" "$EDIT_DIR/shared" "$OUT/vsix/"
if ( cd "$OUT/vsix/vscode" && ./make_vsix.sh >/dev/null 2>&1 ) && \
PYTHONDONTWRITEBYTECODE=1 python3 -c "
import sys, zipfile
names = set(zipfile.ZipFile('$OUT/vsix/vscode/klammertext.vsix').namelist())
need = {'extension.vsixmanifest', '[Content_Types].xml',
'extension/package.json', 'extension/extension.js',
'extension/language-configuration.json', 'extension/README.md',
'extension/klammertext_edit.py', 'extension/klammertext_ls.py',
'extension/syntaxes/klammertext.tmLanguage.json'}
sys.exit(1 if need - names else 0)
"; then
echo "${green}PASS${reset} vscode .vsix package builds (make_vsix.sh)"
PASS=$((PASS + 1))
else
echo "${red}FAIL${reset} vscode .vsix package builds (make_vsix.sh)"
FAIL=$((FAIL + 1))
fi
# --- compare ---------------------------------------------------------------
for f in $INDENT_FIXTURES $ALIGN_FIXTURES; do
check "$f (python)" "$OUT/$f.py.out" "$FIX/${f}_expected.kt"