Skip to content

penev92/Oraide.LanguageServer

Repository files navigation

MiniYAML LanguageServer

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.

How it works

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.

Features

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

Using the language server

In order to run the language server you need .NET 6.