CoordiationCSS
Menu
Docs/Tooling/IntelliSense & LSP

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.

  1. 01

    Completion: indexes exact static utilities, documented dynamic examples, variants, and static CSS-first project utilities.

  2. 02

    Hover: compiles the selected literal candidate and shows the CSS the project configuration generates.

  3. 03

    Diagnostics: reports rejected literal candidates and dynamic string construction the scanner cannot prove.

  4. 04

    Inspection: exposes active counts, prefix, capabilities, and concrete candidate support as JSON-safe requests.

01

Install and launch over stdio

Terminal
npm install -D @coordiation/language-server

coordiation-language-server --stdio

Configure 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.

02

Point it at the project CSS source

Pass settings through LSP initializationOptions. The CSS file is resolved relative to the workspace root.

Language client configuration
{
  "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.

03

Complete literal classes and variants

Template
<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-.

Dynamic families stay honest

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.

04

Inspect generated CSS on hover

Hover calls the real compiler using the active prefix, theme, custom utility, and custom variant definitions.

Hover result
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.

05

Fix diagnostics at their source

Diagnostics
unsupported-candidate
  co-bg-not-a-token

dynamic-candidate
  `co-bg-${color}`

deprecated-candidate
  hover:co--mt-4 → hover:-co-mt-4

unsupported-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.

06

Inspect the live contract programmatically

Custom LSP requests
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/manifest before describing the active editor surface.
  • Use coordiation/inspectCandidate before 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.