Why multi-language

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

Why multi-language

Post by Magus »

At first sight, it might seem strange to combine languages used to mod different games, and not similar in the slightest into a single extension. However, it is not without reason.

Initially, the project was started as an alternative to Sfall Script Editor Extended, a tool for working with Fallout's Star-Trek Scripting Language files. Which is a great piece of software, but unfortunately not working too well under Wine, which is a hindrance to non-Windows users.

Once basic support for Fallout SSL was completed, I was thinking about mirroring it, throwing away everything SSL-related and adding WeiDU formats support instead, to make it a separate extension. But after consideration, I came to conclusion that it might be better to keep them together:
  • It will force better code quality by disallowing to mix language features with language server features.
  • On the other hand, languages themselves are not too complicated, so it shouldn't be very hard to avoid this mixing.
  • Separate extensions would still share a lot of core code, which would likely lead to a lot of manual copying back and forth as bugs are found and features added. Which is extra work and error prone.
  • It's easier and faster to implement new features for a language when you have a ready working example for another one.
  • Hopefully, it will allow to draw on a larger contributor base.
  • Finally, WeiDU uses multiple file formats, and thus its server is going to be multi-language anyway.

After adding basic support for WeiDU syntaxes, I can say that it wasn't very hard, and certainly easier than doing it from scratch - which proves some of these points. So, in the end, keeping the extension consolidated but modular is a practical decision.
Please do not PM or email me about my mods and projects. Use forums. Also, see our talk channels.
Post Reply