Version 2

Multi-language server and extension for vscode-based editors. Supports various Infinity Engine and Fallout syntaxes.
User avatar
Site Admin
Posts: 500
Joined: Mon Nov 21, 2016 9:13 am

Version 2

Post by Magus »

When it was first released, MLS was just a proof on concept, barely enough to be useful. It received some extra features later, but mostly the development was limited to minor bug fixes.
Now it's finally getting some meat on its bare bones. It's not super smart yet, but version 2 does introduce some proper intellisense features, and other changes:

1. Docstrings.

2. Settings reworked, now with pretty names and sfall compile path is separate from options.

3. RPU defines are dropped from static intellisense, instead all headers are searched at runtime. Highlighting is dumbed down for RPU-based mods, but should be better for independent ones.

4. WeiDU TPH headers are supported: search for user-defined functions, macros.
weidu-docstring-completion.png (96.39 KiB) Viewed 31557 times

5. Completion and hover items show their source file.
fallout-completion-source-details.png (74.59 KiB) Viewed 31557 times
weidu-docstring-hover.png (38.18 KiB) Viewed 31557 times

6. Go to definition.
weidu-go-to-definition.gif (67.2 KiB) Viewed 31557 times
fallout-go-to-definition.gif (108.89 KiB) Viewed 31557 times

7. Functions can be marked as deprecated.
weidu-deprecated.png (65.97 KiB) Viewed 31557 times
fallout-deprecated.png (63.93 KiB) Viewed 31557 times

8. Validate on save, validate on change.

9. As you may have noticed, completion items are prettier (less plaintext, more markdown), as well as TP2 tooltips in general.
Captura desde 2023-01-23 17-01-29.png
Captura desde 2023-01-23 17-01-29.png (55.04 KiB) Viewed 31557 times

10. Completion and hovers for WeiDU `D` format.
weidu-d-hover.png (54.48 KiB) Viewed 31557 times

11. File icons for TRA, MSG, SSL files.
Captura desde 2023-01-23 16-58-42.png
Captura desde 2023-01-23 16-58-42.png (11.64 KiB) Viewed 31557 times

12. Hovers and inlay hints for TRA/MSG references.

13. Basic callgraph for SSL.

14. For TP2, READ_* and WRITE_* patch highlight style aligned with corresponding IElib types style.
weidu-highlight-type-match.png (25.17 KiB) Viewed 31557 times
Note how WRITE_LONG and ITM_enchantment are both bold. WRITE_LONG writes a dword, and ITM_enchantment is a dword offset. It's a correct invocation.
However, on the next line READ_BYTE is italic, while ITM_description_icon it straight, underlined. It's a mismatch, a clue to re-check this. ITM_description_icon is a resref and READ_BYTE shouldn't be used with it.
(This has limited scope, only for certain constant types which are described in IESDP in machine readable format).
Please do not PM or email me about my mods and projects. Use forums. Also, see our talk channels.