A language service is a small service that derives a specific kind of semantic or editing information from a parser-produced abstract syntax tree for a particular purpose. section 15.1
Typical language services compute:
- Possible completions at a text location for content assist. section 15.1
- Constraints violated by the current text. section 15.1
- Syntax highlighting, regional type information, and tooltip contents. section 15.1
Editing a textual DSL
An IDE text editor invokes language services when a domain expert requests completions or other editing help. Services may call one another, such as a tooltip service requesting type information from another service. section 15.1
Figure 15.1 The basic architecture of a parsing-based DSL approach
Trace how parsed DSL content becomes an AST and feeds language services alongside compiler or code-generator tooling. section 15.1
