@invinite-org/chartlang-editor
v2.4.0
Published
CodeMirror 6 reference editor over @invinite-org/chartlang-language-service
Readme
@invinite-org/chartlang-editor
experimental
Framework-agnostic CodeMirror 6 reference editor over
@invinite-org/chartlang-language-service, plus React bindings at /react.
Install
pnpm add @invinite-org/chartlang-editorPublic surface
Bare entry — @invinite-org/chartlang-editor
| Export | Purpose |
|---|---|
| createChartlangEditor(opts) | Mounts the browser-safe CM6 editor shell. Accepts opts.service to inject a custom ChartlangLanguageService for hover, completions, and diagnostics. |
| ChartlangLanguageService (type) | Re-exported language-service shape; pass any conforming object to opts.service. |
| chartlangDark | Built-in dark CodeMirror theme (also available from /theme). |
| hoverExtension(getService) | Language-service hover integration. |
| completionExtension(getService) | Completion source, including intervals. |
| linterExtension(getService, onCompiled?, debounceMs?) | Async diagnostics with gutter. |
| peekPanelExtension(previewRunner?) | Preview-panel extension, mounted by createChartlangEditor only when previewPanel or previewRunner is supplied. |
Subpath entries
| Entry | Purpose |
|---|---|
| @invinite-org/chartlang-editor/theme | Browser-safe theme-only entry. Exports chartlangDark without pulling the editor factory or any language-service surface into the bundle. |
| @invinite-org/chartlang-editor/language-service | Opt-in createLanguageService(...) and language-service types. Browser hosts should pass compileToDiagnostics to keep compilation behind their server / worker boundary. |
| @invinite-org/chartlang-editor/react | React bindings — ChartlangEditor, InputsForm, renderInputsForm. |
Capability-aware editor intelligence is service-owned. To use
targetCapabilities, create a language service and inject it:
import { createChartlangEditor } from "@invinite-org/chartlang-editor";
import { createLanguageService } from "@invinite-org/chartlang-editor/language-service";
const editor = createChartlangEditor({
parent,
doc,
service: createLanguageService({ targetCapabilities }),
});Minimum-viable API call
import { createChartlangEditor } from "@invinite-org/chartlang-editor";
const editor = createChartlangEditor({
parent,
doc: "export default defineIndicator({ name: 'x', apiVersion: 1, compute: () => {} });",
});
editor.destroy();Docs
See docs/getting-started/embed-in-our-chart.md.
License
MIT
