- Increase FASTBuild support from v1.08 to v1.11 (FASTBuild Changelog). Previously the plugin worked for v1.11, but didn't support every features added after v1.08. Specifically support for the
_FASTBUILD_EXE_PATH_
builtin variable (added in FASTBuild v1.09).
- (#71) Fix the syntax highlighting when using a period in a variable name when using it in a string template.
-
(#13) Support auto-completion for function properties, including both inline documentation and a link to the official function's documentation.
- (#71) Fix the bug where a period in a variable name generates a syntax error when using it in a string template.
- (#70) Fix the bug where a
;
or//
(start-of-comment characters) in a string would cause the rest of the line to be treated as a comment and would create a parse error.
- (#69) Fix the
ForEach
loop variable to only be defined within the loop. Previously it was incorrectly defined in its parent scope, so it was still defined after theForEach
call.
- (#67) Fix the errors not updating when changing a file to introduce a parse error and then undoing that change.
- Add basic syntax highlighting for user function definitions. Note that this does not support syntax highlighting for user function calls.
- (#62) Error when missing a required function property.
- (#64) Support jumping to the existing definition for redefinition errors. Supports
#define
s, target aliases, and user-function names.
- (#59) Stop unnecessarily re-parsing and re-evaluating when holding
Ctrl
(the go-to-definition hotkey) and hovering over a variable/include whose definition is in an unopened file. This significantly improves performance in these scenarios.
- (#58) Fix "go to references" bug where it errored when there are no references. This bug was introduced in v0.10.0 in commit 8cfa091.
- (#54) "Go to definition" on a variable created by
Using
now also includes the definition from theUsing
's struct's field. This makes it easier to find the origin of the field's value. Note that this was already possible using "go to references", just not using "go to definition".
- (#52) Allow escaping all characters, not just
^
,$
,'
, and"
.
- (#50) Make "go to references" support multiple references with the same location but to different definitions.
- (#47) Fix variable hover value syntax highlighting for strings with
"
in them.
- Fix bug where the error message from duplicate target names said the existing target definition location was at "{Object}". Now it says the file and range.
- (#44) "Go to definition" now supports multiple definitions. This can be useful when a variable reference has multiple definitions, due to being in a loop or being in a file that is included multiple times. For example,
ForEach
looping over an array of structs, with aUsing
on that struct, referencing a variable in that struct in the loop has multiple definitions, one for each definition in the struct in the array.
- Support folding (collapsing code blocks) for
#if...#endif
.
- (#41) Add syntax highlighting to the functionality list in the README (the feature itself was added in the previous release, v0.7.0).
- (#41) Add syntax highlighting. Now it's no longer necessary to use a separate extension.
- The extension now defines the FASTBuild language, so that the extension works without requiring the
RoscoP.fastbuild
extension. That extension is still useful for syntax highlighting.
- (#36) Support "Go To Definition" and "Go to References" for
#include
s.
- Update README to clarify that the evaluated variable values shown on hover are deduplicated.
- Fix bug where hover values did not deduplicate complex values. It deduplicated boolean/number/string values, but not arrays or structs.
- (#38) Fix a bug where very long (>100,000 characters) evaluated variable hover values don't render correctly, because VS Code truncates them. Now the extension truncates them before hitting the limit, so it still renders correctly.
- (#31) Fix a bug where the
ForEach
loop variable did not appear on hover or on "go to document symbols".
- (#28) Stop returning duplicates for "get document/workspace symbols". This makes the results more usable. Additionally, in experiments on a large code base, this makes "get workspace symbols" twice as fast.
- (#27) Fix bug where the document symbols are missing data from the last change.
- Optimizations to speed up evaluation. From a small amount of experimenting, this cuts evaluation time to a third of what it was before.
- Add a new
inputDebounceDelay
setting to control the delay after changing a document before re-evaluating it.
- Add logging to measure performance. This is controlled by the new
logPerformanceMetrics
setting, which is disabled by default.
- Convert the demo videos from
.mov
to.gif
so that they can show in the Visual Studio Code Extension Marketplace.
- Added demo videos to the README
- (#23)
#if exists(...)
now correctly evaluates if the environment variable exists instead of always being false.
- Support "go to definition" and "find references" for
#define
s:
- Support environment variables.
- Fix bug where the partial evaluated data was discarded if there was an error. This prevented being able to access things like hover information on the successfully evaluated data prior to the error, which was previously working.
- You can now hover over the left-hand side of a variable assignment or modification to see the variable's new value.
- Distinguish between targets and variables in the symbol listing.
- Fix bug where document symbols are not available for documents already open at launch.
- (#4) Support listing document and workspace symbols.
- (#6) Support
ForEach
iterating over multiple arrays at a time (single array iterating already supported). This completes support for the full FASTBuild language.
- Rename repository from
fbuild-vscode-lsp
tofastbuild-vscode
.
- Fixed a bug where
ForEach
kept variable definitions across loop iterations. An example of how this bug manifested is that adding to a "current-scope non-existent, parent-scope existent, current-scope variable" in aForEach
loop added to the previous loop-iteration value instead of redefining it each time.
- (#7) Wait for a delay before updating (debounce), to improve performance.
- Clarified that it's compatible with FASTBuild 1.08 (no changes necessary - already compatible).
Initial release.