Skip to content

v0.4.0 Context-Aware Editing and Semantic Highlighting

Choose a tag to compare

@bi3lu bi3lu released this 01 Jun 07:14
· 5 commits to main since this release
6ac9fc7

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 doctor for 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 .vsix release 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/scripts

The 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-game

Validation

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.vsix

Current 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.