Releases: SpontanCombust/witcherscript-ide
v0.5.0-dev.1
Features
- Added the workspace-wide symbol search feature. The default shortcut for that in VS Code is
LCtrl + T
#53 - Added an ability to perform a symbol search in dependencies (including content0). This uses the workspace symbols feature described in the previous point and is enabled by default (
languageServer.extendedSearchForWorkspaceSymbols
setting) #54 - Added support for the array initializer syntax. Array type fields in WitcherScript can be default-initialized with the following syntax:
default myArray = {value1, value2, value3};
Fixes
- Fixed missing lookup for methods and fields added through annotations
Configuration
- Added a setting to extend the workspace symbol search feature beyond the workspace and into dependencies #54
Other changes
- Redesigned the implementation of annotated symbols, which now should allow for using annotations with symbols declared inside the same package. It should also allow for the simultaneous use of
@replaceMethod
and@wrapMethod
if that's useful. As a consequence, thesame-content-annotation
error code has been removed #49 - Rewrote syntax node traversal to prepare it for the implementation of autocompletion. Watch out for possible bugs in previously existing features and please report them!
Documentation
- Added information about script recompilation in editor features section
- Added information about symbol search in editor and workspace
v0.4.0
UI/UX Improvements and more
Features
- Added a welcome message that is shown when using the extension for the first time #47
- Added a message pointing to the changelog when the extension gets updated
- Added a short in-editor walkthrough for the extension #47
- Added a view container that houses all views added by the extension #45
- Added a "Dashboard" view that shows a list some of the main commands you can execute, so you don't have to look through the command palette #46
- Integrated the Rusty Witcher 3 Debugger CLI tool into the extension client #4
- Added "Vanilla Scripts" view. It displays the source tree of vanilla scripts (content0) and allows for peeking and importing vanilla scripts from the level of the view. #42
- Added "Contents" view. It displays script packages known to the content graph - its metadata and files it is associated with. When extension is active, but there are no script projects in the workspace it displays a welcome message with buttons for creating and initializing a project #22
- Added context menu items for comparing modded script with vanilla to file explorer and editor views
- Added context status bar item displaying name of the currently worked on script project. Clicking the item shows the command palette of all available WIDE commands #12
- Added work status bar item displaying the current background work being done on the language server. The item is hidden when there is no work being done currenly #12
- Added analysis for local var declaration placement
Fixes
- Fixed contextual syntax analysis not working for events
Commands
- Added "Open extension logs" command
- Added "Open extension settings" command
- Added commands to launch the game
- Added "Recompile game scripts" command
- Added "Execute console command" command
Configuration
- Added a setting to describe a prefered way of launching the game host for testing (standalone with debug args, REDkit, auto)
- Added a setting for the IP address of the game host
- Added a setting for the number of threads allocated to Rayon's parallel data processing
Other changes
- Error message after failing to import vanilla scripts now points to extension logs
Documentation
- Added "UI Elements" section to the "Editor" page
- Updated some videos on the "Editor" to better reflect modern way of doing things in WIDE
- Renamed "Editor" page to "Editor Features"
- Added a disclaimer for using "content0" as the dependency for projects on the "Project System" page
- Moved the REDkit section closer to the beginning on the "Project System" page
- Rewrote "Getting started" page to point to and present the new built-in tutorial
Full Changelog: v0.3.2...v0.4.0
v0.4.0-dev.2
More additions to UI/UX and an intergration of RW3D_CLI
Features
- Added a "Dashboard" view that shows a list some of the main commands you can execute, so you don't have to look through the command palette
- Added commands to launch the game
- Integrated the Rusty Witcher 3 Debugger CLI tool into the extension client
- Added a command to recompile game scripts on runtime thanks to RW3D_CLI
- Added a command to run an exec command thanks to RW3D_CLI
- Added a command to quickly see extension settings
- Added a welcome message that is shown when using the extension for the first time
- Added a short in-editor walkthrough for the extension
Fixes
- View container tab should now be visible regardless of whether the extension has been activated
Other changes
- Changed view container logo as suggested by @ElementaryLewis
Full Changelog: v0.4.0-dev.1...v0.4.0-dev.2
v0.4.0-dev.1
First development version for an upcoming update focused on front-end improvements.
Features
- Added a view container that will house all views added by the extension. For now it has a dummy logo #45
- Added context status bar item displaying name of the currently worked on script project. Clicking the item shows the command palette of all available WIDE commands #12
- Added work status bar item displaying the current background work being done on the language server. The item is hidden when there is no work being done currenly. For now it only displays "Parsing scripts" message #12
- Added "WitcherScript Vanilla Scripts" view. It displays the source tree of vanilla scripts (content0) and allows for peeking and importing vanilla scripts from the level of the view. #42
- Added "WitcherScript contents" view. It displays script contents known to the content graph - its metadata and files it is associated with. When extension is active, but there are no script projects in the workspace it displays a welcome message with buttons for creating and initializing a project #22
- Added context menu items for comparing modded script with vanilla to file explorer and editor views
- Added analysis for local var declaration placement
Fixes
- Fixed contextual syntax analysis not working for events
Commands
- Added "Open extension logs" command
Configuration
- Added a setting for setting the number of threads allocated to Rayon's parallel data processing
Other changes
- Error message after failing to import vanilla scripts now points to extension logs
Documentation
- Added a disclaimer for using "content0" as the dependency for projects on the "Project System" page
Full Changelog: v0.3.2...v0.4.0-dev.1
v0.3.2
Hotfix
Features
- Added support for XOR binary operator
- Added support for BITAND assignment operator
- Added support for BITOR assignment operator
- Removed support for modulo assignment operator as it is not recognized by the compiler
Full Changelog: v0.3.1...v0.3.2
v0.3.1
Annotation support
Features
- Added support for code annotations introduced Witcher 3 update
4.04a_REDkit_Update_2
on 06.06.2024 - Added more descriptive errors when adding improper specifiers in code (e.g. access modifier for struct fields)
Fixes
- Established a specific order in which configuration settings get shown. They should no longer be listed in seemingly random order
- New projects now should get automatically detected when they get created inside the workspace
- Improved syntax highlighting of tooltips involving primitive types, special variables (e.g.
this
) and global variables (e.g.thePlayer
) - Fixed not being able to use "Create/Initialize project" commands when not already being in a workspace with existing script project(s)
Commands
- Added a debug command to inspect Concrete Syntax Tree of a script
Other changes
- Message shown when trying to access language features from the level of a non-project script will now direct to the main "User manual" page instead of "Project System" subpage
- Reorganized LSP server and client code for readability
Full Changelog: v0.3.0...v0.3.1
v0.3.0
Code symbols update
With this release we also establish an acronym for the project, that being WIDE (WitcherScript Integrated Development Environment).
It is also finally getting some visual branding!
Features
- Added Go to definition/declaration feature #13
- Added Hover tooltips feature #7
- Added Document Symbols feature #26
- Added Selection Range feature #27
- Added
witcherscript.toml
schema, which can be used byEven Better TOML
extension if you have it installed #16 - Added multiple definition detection
- Added unique identifiers to diagnostics, which point to the documentation
Fixes
- Fixed code text not synchronizing properly when saving a file
- Fixed unusual line endings in some vanilla script files causing parsing errors #31
- Fixed diagnostic for invalid project dependency path not being displayed
- Fixed scripts not getting updated if their version was rolled back (modified date was made older than the previous date)
- Fixed change to the script root path in the manifest file not getting detected and handled
- Disallowed contents to specify themselves as their own dependency
- Lessened the chance of the server getting deadlocked
Commands
- Added debug command "Show script symbols" to get a view of all symbols coming from current script file
- Added "Clear global cache" debug command, which clears global persistant data saved by the VSCode extension. Useful for testing by developers
Configuration
- Added "Enable debug features" setting, which prevents debug features such as commands from being available if not enabled. By default this is disabled. #25
- Added a setting to enable or disable the language server, which allows you to disable everything except syntax highlighting if you want to #38
- Added a setting to enable or disable syntax analysis in the language server
Other changes
- Trying to access more than very basic features such as go to definition outside of a script project should now result in showing a warning message explaining as to why that can't be done. #33
- Added more possible automatic
scripts_root
subdirectory candidates for new projects #35 - Improved UX by explicitly displaying which window is vanilla and which is for the mod in script diff view
- Improved UX by automatically reacting to newly created, removed or renamed script files, some cases still require explicit file save to refresh though #39
- Added native content directory, which contains all symbols available in WitcherScript, but not explicitly declared. This directory is shipped together with the Language Server
- Improved AST traversal and text retrieval performance through better memory management
- Added issue templates to the repository
Documentation
- Added "Diagnostic Index" page detailing all diagnostics that can be appear in the editor #36
- Added FAQ page
- Added more demo media showing WIDE's capabilities
Full Changelog: v0.2.1...v0.3.0
v0.3.0-dev.3
Almost feature complete "go to definition" & hover tooltips
Features
- Expanded "Go to definition" to almost all code symbols including expressions (only missing handling of state base types) #13
- Added "Go to declaration" pointing to the first declaration of the function in the inheritance tree #13
- Added hover feature displaying code symbol information #7
- Made
{unknown}
the default text to display for unknown code symbols - Added native content directory, which contains all symbols available in WitcherScript, but not explicitly declared. This directory is shipped together with the Language Server.
- Diagnostics are now published together with an identifier, e.g.
symbol-name-taken
Fixes
- Fixed code text not synchronizing properly when saving a file
- Lessened the chance of deadlocking by freeing resources earlier
Full Changelog: v0.3.0-dev.2...v0.3.0-dev.3
v0.3.0-dev.2
Features
- Added go to definition feature, for now limited to type identifiers and special vars (
this
,super
in most cases,parent
,virtual_parent
). #13
Commands
- Added
witcherscript-ide.debug.clearGlobalState
debug command, which clears global persistent data saved by the VSCode extension. Useful for testing by developers.
Configuration
- Added "Enable debug features" setting, which prevents debug features such as commands from being available if not enabled. The default value is false. #25
Other
- Trying to access more than very basic features such as go to definition outside of a script project should now result in showing a warning message explaining as to why that can't be done. #33
Full Changelog: v0.3.0-dev.1...v0.3.0-dev.2
v0.3.0-dev.1
This is the first pre-release of the version that will finally bring "Go to" code features to the extension.
If you find any criticial bugs make sure to submit an issue. Thank you!
Features
- Added code symbol scanning. This enables the IDE to know about all the types, functions and data declared in workspace scripts. The use of it is limited for now #9
- Added Document Symbols feature #26
- Added Selection Range feature #27
- Added
witcherscript.toml
schema, which can be used byEven Better TOML
extension if you have it installed #16
Commands
- Added debug command "Show script symbols" to get a view of all symbols coming from current script file
Other
- Improved AST traversal and text retrieval performance through better memory management
- Lessened the chance of code deadlock for diagnostics by using HashMap behind a Mutex instead of DashMap