-
Notifications
You must be signed in to change notification settings - Fork 0
RoadMap
There are a lot of missing features that I would like to see implemented in ZeroSyntax. Features that make it feel more like a language server for a regular programming language.
- Support all .ini files for C&C Genv/ZH
- Generate symbol table from directory
- Goto Definition
- Semantic highlighting
- Currently the language server only supports .ini formats relevant for map.ini modification and not the other ones which might be useful when modding the game. As of writing this these are missing;
- AudioSettings
- Campaigns
- ChallengeMode
- ControlBarResizer
- ControlBarScheme
- CrateData
- Credits
- EvaEvents
- GameData
- GameLOD
- MiscAudio
- Mouse
- Multiplayer
- Music
- Roads
- ShellMenuScheme
- Terrain
- Video
- Water
- Webpages
- WindowTransitions
-
Currently the language server is shipped with lists of all relevant data in a Typscript file. It would be better and moral to have the user input the path to their extracted INI library from the game. Then when the extension is launched it will parse all files in the directory and create the relevant lists. This would also be beneficial for the "Goto Definition" task as it would be possible to store the placement of a value and its location and open that file in vscode when going to that definition.
-
Files can become rather large with 10s of thousands of lines. So when editing (specially) objects it can a great help if you could go to the object_value you just entered. With goto definition this is possible. By creating a symbol table of the document that stores the definition of a value, the user can navigate to it by ctrl clicking on the value.
-
Semantic highlighting is more of a nice to have. As it provides some visual aid based on the context of the document. An example would be a
TransitionKey
for aConditionState
. ConditionStates have a distinct blue color from ZeroSyntax-Highlighting, but by adding aTransitionKey
the user introduces a newConditionState
which should have the same color (only if theTransitionKey
exists).