XRAPH/Fields/Languages & Tooling

Languages & Tooling

Two small languages meant to be embedded in a host that supplies its own vocabulary, and the language-server adapter that gives both of them completion and diagnostics in an editor.

Projects
3
Stars
0
Languages
Go
01

The through-line

A language is only half of it

The Data Transformation Language and the Data Query Language are both deliberately small, and both stop at the same boundary: they describe the shape of the work and leave the vocabulary to the host that embeds them. That is what makes them embeddable, and it is also what makes them hard to write against, because an editor cannot infer what it was never told. Langserver is the other half. It carries the protocol so a language module can ship an editor experience without also shipping a JSON-RPC implementation.

  1. 01SpecifyDTL has a written specification covering syntax, the type system, evaluation and the pure standard library. It is the document, not the implementation, that defines the language.
  2. 02EmbedNeither language reaches outside the interpreter on its own. Datastores, HTTP and message buses arrive as builtins the host registers under its own namespaces.
  3. 03ServeLangserver supplies JSON-RPC framing, sessions and LSP position mapping, and knows nothing about any particular language. You supply functions.
  4. 04EditDQL ships a TextMate grammar and an LSP binary built on that adapter, so an editor needs no bespoke client code.