Tish — VS Code / Cursor extensionSyntax highlighting, snippets, tish-lsp (downloaded automatically), and build tasks for the Tish language. Features
End users
|
| Setting | Description |
|---|---|
tish.languageServerPath |
Path to tish-lsp (overrides everything) |
tish.languageServerDownload.enable |
Use GitHub download (default on) |
tish.languageServerDownload.repo / releaseTag / url |
Override download source |
tish.trace.server |
LSP trace |
tish.format.enable |
Format on save |
Documentation
Tasks (workspace)
Add to .vscode/tasks.json:
{
"version": "2.0.0",
"tasks": [
{
"label": "tish: run current file",
"type": "shell",
"command": "tish",
"args": ["run", "${file}"],
"group": "test",
"problemMatcher": []
},
{
"label": "tish: compile (native)",
"type": "shell",
"command": "tish",
"args": ["compile", "${file}", "--output", "${workspaceFolder}/tish_out", "--target", "native"],
"group": "build",
"problemMatcher": ["$tish-rustc"]
}
]
}
Development
npm install
npm run compile
Press F5 for Extension Development Host. For LSP during dev, either allow download or set tish.languageServerPath in settings.
CI / publishing
Same pattern as tish: semantic-release (conventional commits) + prerelease + Marketplace on promote.
| Piece | Behavior |
|---|---|
.releaserc.json |
commit-analyzer, release-notes-generator, @semantic-release/npm with npmPublish: false (no @semantic-release/github — we create the GitHub release in CI, like tish’s manual API step). |
Push to main / master |
release_check fails if there are no releasable commits (feat / fix / perf / BREAKING CHANGE, etc.). |
| Version | From semantic-release --dry-run (“Published release X.Y.Z”); VSIX is built with that version. |
| Prerelease | GitHub prerelease vX.Y.Z + tish.vsix asset (updated on each qualifying merge). |
| Promote to release | Uncheck “prerelease” → workflow publishes the attached VSIX to the Marketplace (VSCE_PAT). |
VSCE_PAT— Marketplace publish.GITHUB_TOKEN— default; used by semantic-release dry-run.- Keep
package.jsonversionin sync with the last release tag when possible; CI overwrites it for the VSIX from semantic-release’s next version. - Align
tishLsp.releaseTagwith Tish’s GitHub release that shipstish-lspbinaries.