v0.4.0 Context-Aware Editing and Semantic Highlighting
This release expands WitcherScript REDkit Tools from structural language support into a richer daily editing experience. The language server now understands more source context, provides stronger semantic diagnostics, supports safer refactoring workflows, and delivers semantic syntax highlighting in VS Code.
Highlights
- Added context-aware completion for type positions,
extends, local scope, member access, keywords, and imports. - Added name resolution for globals, classes, functions, parameters, local variables, fields, methods, and inherited members.
- Added expression parsing for literals, identifiers, calls, member access, assignments, binary/unary expressions, and array access.
- Added type lookup and member access resolution for fields, methods, inherited members, return types, and chained access.
- Added signature help for function calls with active parameter tracking.
- Added expanded semantic diagnostics for unknown members, wrong argument count/type, assignment mismatch, return mismatch, duplicate classes, unresolved imports, and inheritance issues.
- Added conservative rename support for local variables and function parameters.
- Added code actions / quick fixes for common diagnostics.
- Added
witcherscript doctorfor project health checks. - Added implementation lookup and inheritance tree support.
- Added semantic highlighting for classes, functions, methods, fields, local variables, parameters, built-in types, events, native symbols, and deprecated symbols.
- Improved VS Code extension usability with status feedback, output commands, startup error handling, REDkit workflow commands, and packaged
.vsixrelease support. - Added LSP integration tests for editor-facing behavior.
- Added contributor documentation, changelog, roadmap, security policy, and issue templates.
VS Code
The VS Code extension now provides a more complete editing loop for .ws files:
- semantic highlighting is enabled by default,
- autocomplete reacts to cursor context,
- signature help appears during function calls,
- hover/definition/references use the resolver and symbol index,
- rename works for scoped local symbols,
- REDkit commands can be triggered from the Command Palette,
- release builds now include a packaged
.vsix.
Install the extension from the .vsix attached to GitHub Releases.
CLI
The Python developer CLI now includes:
uv run witcherscript doctor
uv run witcherscript parse path/to/file.ws
uv run witcherscript diagnostics path/to/file.ws
uv run witcherscript corpus path/to/scriptsThe REDkit CLI continues to support project configuration and workflow commands:
dotnet run --project src/dotnet/src/WitcherScript.RedkitTooling.Cli -- init
dotnet run --project src/dotnet/src/WitcherScript.RedkitTooling.Cli -- validate
dotnet run --project src/dotnet/src/WitcherScript.RedkitTooling.Cli -- recompile
dotnet run --project src/dotnet/src/WitcherScript.RedkitTooling.Cli -- launch-gameValidation
The release has been verified with:
uv run ruff check .
uv run ruff format --check .
uv run mypy src/py
uv run pytest
npm --prefix src/vscode run smoke
dotnet test src/dotnet/WitcherScript.RedkitTooling.sln
uv run python scripts/sync_version.py --check
git diff --check
npm --prefix src/vscode run package:vsix -- --out ../../dist/witcherscript-redkit-tools.vsixCurrent test result:
83 Python tests passed
11 .NET tests passed
VS Code extension lint/typecheck/compile passed
VSIX package builds successfully
Notes
This release makes the language server substantially more useful inside VS Code. The project now has context-aware IntelliSense-style behavior, semantic diagnostics, signature help, scoped rename, and semantic highlighting, while keeping the REDkit workflow available through CLI and editor commands.