Core and common implementation for the semantic web language server.
Proivdes the backbone for the semantic web lsp binary and semantic web lsp wasm.
With the language server protocol, each different request is handled by an ECS schedule, combining different systems together. A system can generate new data and attach it to an entity, a document, or use this data to respond to requests.
Language specific implementations that handle things like tokenizing and parsing are
implemented in separate crates. The binary currently supports Turtle, JSON-LD and SPARQL.
The goal is that each language at least generates [Tokens], [Triples] and
[Prefixes].
These components are then used to derive properties for autcompletion but also derive
[TokenComponent] and [TripleComponent] enabling completion.
The different schedules can be found at [prelude::feature].
Example add completion for all subjects that start with a
use *;
use *;
# use Dataset;
# use Quad;
// Define the extra data struct
// Define the generating system
// Don't forget to add it to the ecs later
// Define a system that adds these completions to the completion request
Note that [Prefixes] can help expand and shorten iri's in a document.