|
1 | 1 | # Changelog |
2 | 2 |
|
3 | | -## Unreleased |
| 3 | +## 3.10.0 |
4 | 4 |
|
5 | 5 | ### Dialog editor |
6 | 6 |
|
7 | 7 | - New interactive Dialog Editor for D, TD, SSL, TSSL dialogue. |
8 | | -- The Dialog Editor now follows the active VS Code color theme, including light themes. |
| 8 | + |
| 9 | +### Diagnostics |
| 10 | + |
| 11 | +- New `bgforge.diagnostics` setting (on by default): instant syntax-error reporting for all parsed languages (Fallout SSL and MSG, WeiDU BAF, D, TP2, TRA), alongside compiler diagnostics. |
| 12 | + |
| 13 | +### Binary editor |
| 14 | + |
| 15 | +- Read-only fields are now enforced on save, not only disabled in the interface, and show a tooltip explaining why. |
| 16 | +- Fixed: a size-shrinking CRE edit could corrupt an empty section's offset, producing a file that failed to reopen. |
9 | 17 |
|
10 | 18 | ### Translations |
11 | 19 |
|
12 | 20 | - `.tra`/`.msg` files are now read as UTF-8 first, falling back to windows-1252 for older files that predate UTF-8 - accented and other special characters in `@N` text now display correctly instead of being mangled. |
13 | | -- Saving `@N` edits now preserves a file's original encoding: a windows-1252 file round-trips its untouched text byte-for-byte instead of being silently rewritten as UTF-8. An edit that adds a character the file's encoding can't represent is refused with an error instead of corrupting the file. |
14 | | -- Saving `@N` edits is now crash-safe: the file is written to a temporary file and swapped in, so an interruption mid-save can no longer leave a `.tra`/`.msg` truncated. |
15 | 21 | - Editing an open `.tra`/`.msg` file now refreshes the `@N` inlay hint previews in other open files immediately, instead of waiting for their own next edit. |
| 22 | +- `.msg` comments must now be marked (`#`, `//`, or `/* */`); unmarked trailing text is a syntax error. |
16 | 23 |
|
17 | 24 | ### Requirements |
18 | 25 |
|
19 | 26 | - Minimum supported VS Code is now 1.91 (was 1.73). |
20 | 27 |
|
21 | 28 | ### WeiDU |
22 | 29 |
|
23 | | -- Added parsing and highlighting for more WeiDU constructs: TP2 `REQUIRE_FILE` / `FORBID_FILE` / `FORBID_PREDICATE` component flags, `EXTEND_TOP` / `EXTEND_BOTTOM ... USING`, and `REMOVE_CRE_ITEMS`; D `CHAIN3` and `%var%`-interpolated names. |
| 30 | +- Added parsing and highlighting for more WeiDU constructs: TP2 `REQUIRE_FILE` / `FORBID_FILE` / `FORBID_PREDICATE` component flags, `EXTEND_TOP` / `EXTEND_BOTTOM ... USING`, and `REMOVE_CRE_ITEMS`; D `CHAIN3`, `%var%`-interpolated names, hyphenated state labels, `ALTER_TRANS` bareword `ACTION`, and trailing `IF`/`UNLESS` after `ADD_TRANS_ACTION`. |
24 | 31 | - Fixed: in TP2 hover tooltips, `buffString` and `ascString` parameter names were not highlighted because of an unreachable pattern branch. |
25 | 32 | - Fixed: dropped several phantom TP2 keywords the grammar never matched, and corrected highlighting of the real ones. |
26 | 33 | - Fixed: the WeiDU D formatter was not idempotent when a `~string~` immediately followed a keyword. |
27 | 34 |
|
28 | 35 | ### Transpilers |
29 | 36 |
|
30 | | -- Fixed: transpiling a multi-file TSSL/TBAF/TD source (one that uses `import`) relied on the system `PATH` `node`, so it broke on editors that ship their own runtime instead of a `node` binary AND in environments with a broken `node` shim (stale nvm/mise/asdf). The bundler now always uses the editor's own runtime, the same way the built-in SSL compiler does, so a missing or broken `PATH` `node` no longer affects it. |
| 37 | +- Built-in transpiler no longer relies on system Node. |
| 38 | +- Fixed: the TD loop unroller silently dropped all but the first variable of a multi-variable `for` initializer; it now reports an error. |
31 | 39 |
|
32 | 40 | ### Performance |
33 | 41 |
|
|
0 commit comments