Skip to content

Releases: Kinal-Lang/Kinal-VSCode

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 02 May 17:07

Kinal VSCode Extension 0.5.0

Kinal VSCode Extension 0.5.0 focuses on project-file support, safer editor run behavior, and a cleaner release pipeline for publishing VSIX and Marketplace builds.

Highlights

First-class .knproj recognition

This release adds dedicated VS Code language support for Kinal project files.

.knproj files are now recognized separately from normal Kinal source files, with their own language id, file association, grammar, and editor configuration. This makes project manifests easier to read and edit without accidentally treating them as .kn / .kinal source files.

Supported project-file editor features include:

  • syntax highlighting for Project, Profile, Packages, Source, Build, Link, and Lsp sections
  • highlighting for common fields such as DefaultProfile, Entry, Backend, Environment, Output, Linker, LinkArgs, and package roots
  • string, number, boolean, comment, bracket, and punctuation highlighting
  • bracket matching and auto-closing pairs for {}, [], (), and strings

Fixed .knproj run dispatch

Previously, if a .knproj file was opened or associated as a Kinal document, the extension could pass it directly to the compiler as if it were a normal source file. That caused confusing parser errors such as:

Unexpected Top-Level Token: expected top-level declaration, found token 'Project'

The extension now detects .knproj files before the normal source-file run path.

When a project file is active, the run command now uses:

kinal run --project <project-dir>

Normal source files remain restricted to:

.kn
.kinal

This prevents project manifests from being sent through the normal source parser.

Updated compile command for the current CLI

The editor compile/run path now uses the subcommand-style compiler invocation:

kinal build <file> -o <output>

instead of the older direct-file form.

This keeps the VS Code extension aligned with the current Kinal CLI.

Safer GitHub release flow

The release workflow now creates GitHub Releases as drafts.

Manual release workflow runs still build and upload the VSIX artifact and checksum files, but the GitHub Release is left in draft state so it can be reviewed before being published.

Prerelease support is still preserved. If the workflow input marks the release as a prerelease, the draft release is also marked as prerelease.

Marketplace publishing after release publication

Marketplace publishing has been moved into a separate workflow that runs only after a GitHub Release is published.

The publish workflow:

  • checks out the published release tag
  • rebuilds the VSIX from that tag
  • verifies that package.json version matches the release tag
  • publishes the extension to Visual Studio Marketplace using the VSCE_PAT repository secret

This keeps draft release creation and public Marketplace publishing separate, reducing the chance of accidentally publishing an unreviewed build.

Changed

  • Added .knproj as a dedicated Kinal Project language.
  • Added .knproj TextMate grammar.
  • Added .knproj language configuration for comments, brackets, and auto-closing pairs.
  • Updated Kinal: Compile and Run to distinguish project files from source files.
  • Updated source-file builds to use kinal build.
  • Changed GitHub release workflow to create draft releases.
  • Added a Marketplace publish workflow triggered by release.published.
  • Updated extension metadata for version 0.5.0.

Notes

For source files, use Kinal: Compile and Run on .kn or .kinal.

For project-based builds, open or target a project directory containing kinal.knproj; project files are now handled through the project-aware compiler path instead of being parsed as normal source files.

v0.2.11 - Initial Release

Choose a tag to compare

@github-actions github-actions released this 03 Apr 19:40

First public release of the Kinal VS Code extension.

Included in this release:

  • Basic Kinal language support for VS Code
  • Initial syntax highlighting
  • Initial extension structure for future tooling integration

This is the first public version and the extension will continue to improve over time.