TOOLING · COMPLETE
IntelliSense and language server
Give any LSP-capable editor the same Coordiation knowledge used by production builds: canonical completions, generated CSS on hover, and diagnostics backed by scanner and compiler behavior.
The server implements Language Server Protocol 3.17 over stdio. It is editor-agnostic, uses no Tailwind runtime or extension, and exposes an inspectable machine contract for coding agents.
ONE SUPPORT CONTRACT
Editor feedback follows the build
Intelligence is derived instead of maintained as a second handwritten class list.
- 01
Completion: indexes exact static utilities, documented dynamic examples, variants, and static CSS-first project utilities.
- 02
Hover: compiles the selected literal candidate and shows the CSS the project configuration generates.
- 03
Diagnostics: reports rejected literal candidates and dynamic string construction the scanner cannot prove.
- 04
Inspection: exposes active counts, prefix, capabilities, and concrete candidate support as JSON-safe requests.
Install and launch over stdio
npm install -D @coordiation/language-server
coordiation-language-server --stdioConfigure your editor's LSP client to launch that command for HTML, JSX/TSX, Vue, Svelte, Astro, Markdown/MDX, PHP, and .coord files. The server uses standard Content-Length JSON-RPC framing and writes protocol data only to stdout.
Point it at the project CSS source
Pass settings through LSP initializationOptions. The CSS file is resolved relative to the workspace root.
{
"initializationOptions": {
"coordiation": {
"prefix": "co-",
"cssFile": "src/coordiation.css"
}
}
}The server reads @co-theme, @co-utility, and @co-variant from that entry. Send workspace/didChangeConfiguration after changing settings and workspace/didChangeWatchedFiles when the configured CSS file changes.
Complete literal classes and variants
<article class="co-grid md:co-grid-cols-3 co-gap-6">
<!-- completion triggers after :, -, [, and ( -->
</article>Completion items carry replacement ranges, family details, and registry documentation. Variants can be stacked, important syntax such as !co-hidden is preserved, and a configured custom prefix replaces co-.
The registry provides representative valid values, not an imaginary finite list for every arbitrary or theme-driven class. Use hover, diagnostics, or candidate inspection to verify a concrete value.
Inspect generated CSS on hover
Hover calls the real compiler using the active prefix, theme, custom utility, and custom variant definitions.
hover:co-bg-black
.hover\:co-bg-black:hover {
background-color: var(--co-color-black);
}Unsupported candidates return no hover result instead of a guessed declaration.
Fix diagnostics at their source
unsupported-candidate
co-bg-not-a-token
dynamic-candidate
`co-bg-${color}`
deprecated-candidate
hover:co--mt-4 → hover:-co-mt-4unsupported-candidate means the active compiler rejected a literal class. deprecated-candidate carries the registered replacement. dynamic-candidate means the source scanner cannot see every runtime result. Replace interpolation with a literal lookup table or add deliberate literal entries to the build safelist.
Inspect the live contract programmatically
coordiation/manifest
→ { prefix, candidateCount, variantCount, capabilities }
coordiation/inspectCandidate
← { "candidate": "md:co-grid-cols-3" }
→ { candidate, supported, css }Run coordiation-language-server --capabilities when a client needs the static protocol surface without opening a session. These endpoints are additive Coordiation requests; standard editors can ignore them.
BOUNDARIES
Know what the language server proves
Editor assistance complements the build; it does not evaluate application code.
- Only literal class attributes are validated; runtime expressions are not executed.
- Full-document synchronization is used for deterministic cross-editor behavior.
- Functional custom utilities are validated when concrete, while only static custom utilities can be enumerated exactly.
- A completion item is discovery; compiler inspection is the final answer for a concrete dynamic value.
- The package provides the LSP server, not a vendor-specific editor extension.
AI GENERATION CONTRACT
Let the project configuration decide
Agents should connect editor suggestions to verifiable compiler behavior.
- Configure the same literal CSS entry and prefix used by the build.
- Query
coordiation/manifestbefore describing the active editor surface. - Use
coordiation/inspectCandidatebefore claiming a project-specific class is supported. - Keep generated class strings literal so diagnostics and the build scanner agree.
- Never hide a dynamic-candidate warning by inventing a likely runtime value.
