This is the single English checklist for manifest-facing Sage VS Code features. It stays concise so command and setting coverage remains testable without maintaining parallel manuals.
- Languages:
sagemathandsagemath-cythonmust have generated grammar, snippets, and language configuration assets. - Activation: Sage files, Sage Cython files, Sage-named Python files, startup command registration, and Sage commands must be covered by manifest activation events.
- Commands: every contributed
sage.*command must appear in this document,README.md, ordocs/install-and-configure.md. - Settings: every contributed
sage.*setting must appear in this document,README.md, ordocs/install-and-configure.md. - Safety: runtime features require trusted local workspaces; syntax browsing remains available in restricted contexts.
- Packaging: VSIX contents must include the compiled extension entrypoint, generated syntax assets, icon, walkthrough resources, package README, changelog, license, and the staged Rust language-server binary.
sage.openGettingStarted: open the first-run walkthrough.sage.selectInterpreter: select a Sage runtime profile or custom runtime path.sage.configureWorkspace: write a conservative workspace profile.sage.restartLanguageServer: restartsage-ls.sage.runCurrentFile: run the active Sage file.sage.runSelection: run the current selection.sage.runCurrentCell: run the current# %%or# regioncell.sage.startRepl: start or reveal the managed Sage REPL.sage.showDocumentation: open documentation for the active symbol.sage.findReferences: show Sage-aware references for the active symbol.sage.showEnvironmentDetails: show interpreter, source-root, runtime, and language-server details.sage.showIndexStatus: show Rust index file, symbol, docs, cache, and pending-job status.sage.showDocsStatus: show static and runtime documentation worker status.sage.copySupportBundle: copy a support JSON bundle without source contents or environment variables.sage.runUxSelfCheck: run hover, docs, navigation, references, rename, completion, and diagnostics checks.sage.rebuildIndex: rebuild the Rust index for the current roots.
sage.interpreter.pathsage.interpreter.argssage.languageServer.pythonPathsage.languageServer.rustPathsage.languageServer.pythonArgssage.analysis.modesage.analysis.extraPathssage.analysis.sourceRootssage.analysis.enableDiagnosticssage.analysis.enableRuntimeIntrospectionsage.analysis.enablePyxParsingsage.analysis.enablePythonFilessage.indexing.excludesage.docs.preferredSourcesage.docs.showOnHoversage.logging.levelsage.run.targetsage.run.showCellCodeLenssage.run.cleanupGeneratedPythonsage.experimental.notebookSupport
npm run test --workspace sage-vscode-extensionnpm run test:debug-webnpm run test:debug-web:sage(requires a Sage source checkout)npm run test:product-readinessnpm run test:lsp-latencynpm run test:real-file-smokenpm run test:extension-host
Use Pyright and rust-analyzer as the comparison bar for user experience:
- Interaction: commands should be discoverable, iconed, context-aware, and backed by a first-run walkthrough.
- Visual polish: icon, gallery banner, command icons, walkthrough media, and visible status surfaces should feel coherent and consistent with modern VS Code language extensions.
- Latency: warm hover, definition, completion, references, and documentation queries should stay inside the release budgets tracked by the latency and real-file smoke tests.
- Status: startup, indexing, cache hydration, source roots, docs runtime state, and degraded modes should be visible through the status bar, index/docs status commands, and support bundle.
- Workspace: ordinary Python projects should not be forced into Sage analysis; Sage-heavy Python and Cython projects should opt in predictably.
- Diagnostics: syntax diagnostics, UX self-check output, support bundles, and performance issue templates should make failures reproducible without exposing private source contents.