OpenRA's MiniYAML.LanguageServer is developed to help people working with OpenRA .yaml files, making modding OpenRA a less daunting task.
The project consists of a server application and a VSCode extension communicating via the Language Server Protocol (LSP) to provide the following features inside VS Code:
- Great MiniYAML editing support, including Syntax Highlighting, IntelliSense, Go to Definition, Find All References, etc.
- Navigating inside MiniYAML and to C# (if available).
- Hover information.
The server is written in C# and provides LSP features for MiniYAML, which is now defined as a custom language.
Syntax highlighting for the custom language is provided by our own MiniYAML TextMate Grammar file.
Parsing:
- For MiniYAML parsing the server currently uses a copy of OpenRA's own internal parser, but the plan is to package that as a NuGet package for simpler use here.
- For C# parsing the server uses Roslyn's Syntax Trees.
This is a rough list of features and some of them may get dropped as inapplicable.
- Hover
- Goto/Peek/Find Definition/Declaration/Implementations
- Find All References
- Auto Completion
- Document Symbols
- Workspace Symbols
- Syntax Highlight
- Rename
- Diagnostics
- Syntax Check
- Code Action
In order to run the language server you need .NET 6.