Skip to content

chore(vscode): prepare extension for first Marketplace publish - #99

Open
assapir wants to merge 9 commits into
mainfrom
chore/vscode-publish-prep
Open

chore(vscode): prepare extension for first Marketplace publish#99
assapir wants to merge 9 commits into
mainfrom
chore/vscode-publish-prep

Conversation

@assapir

@assapir assapir commented Aug 10, 2026

Copy link
Copy Markdown
Owner

Prepares the Quilon VS Code extension (editors/vscode/) for its first VS Marketplace publish. Closes #58.

Scope is everything that does not require maintainer-only inputs. Decisions are locked: ship as-is, VS Marketplace only (first release), extension version 0.9.1 (matches the compiler).

Changes (all under editors/vscode/)

  • package.json: version 0.1.00.9.1; added activationEvents: ["onLanguage:quilon"] (explicit, belt-and-suspenders for engines.vscode ^1.75). Confirmed the other publish-required fields are already present: displayName, description, engines.vscode, categories, repository (with directory), main, license: "GPL-2.0-only".
  • LICENSE.md (new): GPL-2.0-only text copied verbatim from the repo root, so the Marketplace license tab is populated and vsce package has a license to bundle.
  • CHANGELOG.md (new): 0.9.1 initial-release entry describing the current feature set — syntax highlighting, inline diagnostics via quilon check, and Run/Check CodeLens above each ^ entry point.

Verification

  • pnpm install — OK
  • pnpm run lint (oxlint) — clean
  • pnpm run fmt:check (oxfmt) — clean
  • pnpm test (tsc compile + node --test) — 54 pass, 0 fail
  • vsce package (into a temp dir, not the repo) — succeeds, produces a .vsix of 12 files / 27.58 KB, exit 0, no warnings (LICENSE.md and CHANGELOG.md are both included in the package).

Root Rust workspace is untouched (only editors/vscode/ changed), so no cargo run was needed.

⚠️ Remaining pre-publish steps (require the maintainer — intentionally NOT done here)

  1. publisher — currently the placeholder "quilon". Set it to the real registered VS Marketplace publisher id before publishing. (Not invented here.)
  2. icon — no icon field or asset added. Provide a 128×128 PNG and add the icon field to package.json.
  3. VSCE_PAT — must be set as a repo secret for the publish CI to authenticate to the Marketplace.
  4. Publish trigger — pushing a vscode-v0.9.1 tag triggers the publish CI. (This PR does not tag, merge, or publish.)

assapir and others added 9 commits August 10, 2026 12:05
Ready the VS Code extension for its initial VS Marketplace release:

- Bump version 0.1.0 -> 0.9.1 to match the compiler.
- Add activationEvents ["onLanguage:quilon"] (explicit for engines ^1.75).
- Add LICENSE.md (GPL-2.0-only, copied from the repo root) so the
  Marketplace license tab is populated and vsce stops warning.
- Add CHANGELOG.md with a 0.9.1 initial-release entry describing the
  current feature set (syntax highlighting, inline diagnostics via
  `quilon check`, Run/Check CodeLens above `^` entry points).

Publisher id and icon are intentionally left for the maintainer.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contribute light/dark file icons for .ql files through the
contributes.languages icon field, so icon themes that defer to
language-contributed icons show a Quilon glyph in the explorer.

Also simplify the entry-point CodeLens to Run only; type-checking
stays available via on-save diagnostics and the check command.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Replace the SVG .ql file icons (which drew the "Q" with an embedded
Nerd Font users won't have) with pre-rendered 64x64 RGBA PNGs, and point
the language icon contribution at them. The entry-point CodeLens is
Run-only; type-checking remains via on-save diagnostics and the check
command.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…coloring

Remove issue-number references from the TextMate grammar comment and grammar
tests. Make the block `< >` line-final heuristic's deferral to semantic
tokens / an LSP explicit, and document in the CHANGELOG that every
multi-character operator tokenizes as a single scope and that block-delimiter
coloring is best-effort.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ens (#114)

Delegate source-level debugging to CodeLLDB (declared as an extension
dependency). A new `quilon` debug type builds the active `.ql` with
`quilon build --debug <file> -o <tmpbin>` and resolves into a CodeLLDB
`type: "lldb"` launch of that binary, so breakpoints set in the `.ql`
source and single-stepping resolve through the compiler's DWARF line
table.

- DebugConfigurationProvider rewrites `quilon` -> `lldb` after building.
- `contributes.breakpoints` for the `quilon` language enables `.ql`
  breakpoints; `contributes.debuggers` adds the type + default config.
- Re-add the ▶ Debug CodeLens above `^` next to ▶ Run, plus a
  "Quilon: Debug Current File" command.
- Scaffold an lldb Python formatter (formatters/quilon.py) for Quilon
  values; its type bindings are pending the compiler's distinct DWARF
  types and stay inert until those land.
- Factor pure helpers into debugConfig.ts with unit tests; share
  splitCommand / quilonCommand / firstNonEmptyLine with diagnostics.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
…l reuse, live value formatters (#118)

Follow-up fixes to the CodeLLDB debug integration from user testing:

- Build progress: wrap `quilon build --debug` in a Notification-location
  progress indicator so the otherwise-silent build shows it's working.
- Re-entrancy guard (InFlightBuilds): refuse a second ▶ Debug for the same
  file while its build is in flight, so an impatient re-click can't kick off
  a duplicate build. Always released in a finally.
- Terminal reuse: route debuggee I/O to the shared Debug Console
  (terminal: "console") so integrated terminals don't accumulate per run.
- Temp-binary cleanup: delete each session's built binary when the session
  ends, so builds don't pile up in the temp dir either.
- Live lldb value formatters: render Text as its string (no {data,byte_len}
  staircase) and []T as an indexed list whose elements keep their own type,
  so [][]Text nests; size-aware summary, capped default expansion with the
  overflow count, and explicit out-of-cap indexing still resolves. Bound to
  the compiler's distinct DWARF type names (Text / []… ).

Docs (README + CHANGELOG) updated; guard + config-resolution logic unit-tested.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Publish the VS Code extension to the Marketplace + Open VSX

1 participant