Releases: MillenniumDawn/cwtools-vscode
Release list
v3.5.33-pre.1
Automated pre-release build 3.5.33 from commit fb4e3f7.
Pick the VSIX for your platform, or use the universal VSIX. The same build is published to the VS Code Marketplace and Open VSX on the pre-release channel, so installing from there gets you this build.
v3.5.31-pre.1
Automated pre-release build 3.5.31 from commit 6080860.
Pick the VSIX for your platform, or use the universal VSIX. The same build is published to the VS Code Marketplace and Open VSX on the pre-release channel, so installing from there gets you this build.
v3.5.29-pre.1
Automated pre-release build 3.5.29 from commit 04829c5.
Pick the VSIX for your platform, or use the universal VSIX. The same build is published to the VS Code Marketplace and Open VSX on the pre-release channel, so installing from there gets you this build.
v3.5.28-pre.1
Automated pre-release build 3.5.28 from commit fcabea1.
Pick the VSIX for your platform, or use the universal VSIX. The same build is published to the VS Code Marketplace and Open VSX on the pre-release channel, so installing from there gets you this build.
v3.5.27-pre.1
Automated pre-release build 3.5.27 from commit ec9ed5a.
Pick the VSIX for your platform, or use the universal VSIX. The same build is published to the VS Code Marketplace and Open VSX on the pre-release channel, so installing from there gets you this build.
v3.5.26-pre.1
Automated pre-release build 3.5.26 from commit b94427c.
Pick the VSIX for your platform, or use the universal VSIX. The same build is published to the VS Code Marketplace and Open VSX on the pre-release channel, so installing from there gets you this build.
v3.5.25-pre.1
Automated pre-release build 3.5.25 from commit 55fc0f0.
Pick the VSIX for your platform, or use the universal VSIX. The same build is published to the VS Code Marketplace and Open VSX on the pre-release channel, so installing from there gets you this build.
v3.5.24-pre.1
Automated pre-release build 3.5.24 from commit 14cb9f2.
Pick the VSIX for your platform, or use the universal VSIX. The same build is published to the VS Code Marketplace and Open VSX on the pre-release channel, so installing from there gets you this build.
v3.5.23-pre.1
Automated pre-release build 3.5.23 from commit 2018a3c.
Pick the VSIX for your platform, or use the universal VSIX. The same build is published to the VS Code Marketplace and Open VSX on the pre-release channel, so installing from there gets you this build.
v3.4.5
Extension
- The CWTools log channel is created only for enabled workspaces and now uses
VS Code log levels. (#507) - Graph restoration no longer overwrites a newer graph request after a delayed
response. (#695)
Tooling
- Add the
/fix-issueClaude Code skill (.claude/skills/fix-issue): it
fetches a GitHub issue, gathers the context it touches, plans the fix,
then implements, verifies, and opens the PR after approval. - Host tests use the extension-host runner's TDD
suite/testglobals
throughout; importingdescribe/itfrom the top-level mocha package broke
the smoke suite because those helpers are not bound to the Mocha instance
@vscode/test-cli runs. (#754) - Client hot-path benchmarks now use Vitest 5's test-context benchmark API.
(#737) - Cargo-deny now allows BSD-3-Clause for the existing zstd dependency graph.
(#743) validatenow treats equivalent vanilla-cache game aliases as the same game
while still warning for different and unknown identifiers. (#738)- Restoring a graph panel now disposes the existing panel and its command
handlers before wiring the replacement, so window reloads do not leave
duplicate save commands behind. (#599) - Marketplace publishing now passes the VSCE token through the child environment
instead of command arguments. (#513)
Engine
-
Hover, inlay titles and graph labels keep their localisation text per
file, so renaming or deleting a key in an open loc file drops the old text
on that edit instead of at the next full scan, editing one file no longer
drops another file's (or the base game's) translation of the same key, a
deleted loc file takes its text with it, and an edited file keeps its place
among the other files' translations of a shared key, so an inlay or graph
label does not flip to another file's text while typing. (#476) -
Parser source positions now account for a leading BOM, so line-1 fixes and
formatting edits preserve the original file text. (#555) -
Vanilla cache instances are now accepted only from files inside the configured
base-game directory. (#591) -
Bare values now keep their source range tight to the value, so comments and
blank lines are preserved by formatting. (#546) -
Live vanilla indexing now preserves the real source URI for each base-game
instance, matching cache-backed sessions. (#580) -
Modifier key validation now lazily lowercases ASCII keys while preserving Unicode matching. (#598)
-
Watched-file batches, open-document revalidation and
didClosenow take a
validation slot per file instead of per batch, so an edit made while a
large batch runs (agit checkouttouching many files) no longer waits for
the whole batch before its diagnostics appear. (#477) -
Find-references and rename on a localisation key no longer read and parse
the whole localisation tree, then every script file, on the pump task for
each request (289 MB / 2 944 files per request on Millennium Dawn). The loc
index now keeps every definition site per key, so references answer the
definition half from memory, and usages come from a streamed scan on the
blocking pool that holds only the files in flight. Rename still visits every
loc file for$key$references and unconfigured languages, but streams
them the same way. Listed definitions followlocalisation.languages, the
scope goto and hover already use, also for a file the watcher brings in
between scans; a key the base game also defines falls back to that
definition when the mod's file is deleted; and a definition whose file
changed without a watcher event is found where it is now rather than
dropped. Removing a file from the index is O(1). (#474)
Tooling
- The CLI now distinguishes usage, discovery, and empty-input failures from
validation findings with their documented exit codes. (#493) - Package input copying now removes stale files from
dist/extensionwithout
deleting generated build artifacts. (#561) fixnow warns when a supplied vanilla cache was built for another game.
(#499)
Engine
- Ctrl+Click on
localization_keyin scripted localisation jumps to the loc
entry even when the ruleset does not type that folder. HOI4 still points
type[scripted_loc]at Stellaris'scommon/scripted_loc, so those files
never matched and the key was not a loc ref. (#725) - CodeLens reference counts for scripted effects (and other type-pattern aliases
such as scripted triggers) now includemy_se = yescall sites. Those uses are
keys, notfield = <type>values, so the reverse index never saw them and the
lens stayed at 0. Call sites are cached as non-schema leaf keys and reclassified
when the instance set changes or after a workspace scan, without walking ASTs
or reading files on each lens resolve.
Extension
- Graph labels now repaint when the VS Code webview theme changes. (#585)
Extension
- Changing settings that require startup now prompts to reload the window (#504).