Changeset 0.17.2 (#77)
This commit is contained in:
61
src/editor/index.mjs
Normal file
61
src/editor/index.mjs
Normal file
@@ -0,0 +1,61 @@
|
||||
// ==========================================
|
||||
// Chat Switchboard — CM6 Bundle Entrypoint
|
||||
// ==========================================
|
||||
// esbuild compiles this into an IIFE that sets
|
||||
// window.CM with factory functions and utilities.
|
||||
//
|
||||
// Consumers:
|
||||
// if (window.CM) {
|
||||
// const editor = CM.chatInput(el, opts);
|
||||
// const code = CM.codeEditor(el, opts);
|
||||
// }
|
||||
// ==========================================
|
||||
|
||||
import { EditorView } from '@codemirror/view';
|
||||
import { EditorState } from '@codemirror/state';
|
||||
|
||||
import { javascript } from '@codemirror/lang-javascript';
|
||||
import { json } from '@codemirror/lang-json';
|
||||
import { markdown } from '@codemirror/lang-markdown';
|
||||
import { sql } from '@codemirror/lang-sql';
|
||||
import { html } from '@codemirror/lang-html';
|
||||
import { css } from '@codemirror/lang-css';
|
||||
import { yaml } from '@codemirror/lang-yaml';
|
||||
import { go } from '@codemirror/lang-go';
|
||||
import { python } from '@codemirror/lang-python';
|
||||
import { rust } from '@codemirror/lang-rust';
|
||||
|
||||
import { vim } from '@replit/codemirror-vim';
|
||||
import { emacs } from '@replit/codemirror-emacs';
|
||||
|
||||
import { codeEditor } from './code-editor.mjs';
|
||||
import { chatInput } from './chat-input.mjs';
|
||||
|
||||
// ── Expose on window ────────────────────────
|
||||
|
||||
window.CM = {
|
||||
// Version (injected by the build script or matched to app version)
|
||||
version: '0.17.2',
|
||||
|
||||
// Low-level access (for advanced use / debug console)
|
||||
EditorView,
|
||||
EditorState,
|
||||
|
||||
// Factory: full-featured code editor
|
||||
// CM.codeEditor(container, { language, value, lineNumbers, darkMode, keymap, onChange })
|
||||
codeEditor,
|
||||
|
||||
// Factory: chat message input (markdown mode, minimal chrome)
|
||||
// CM.chatInput(container, { placeholder, onSubmit, onChange, maxHeight, darkMode })
|
||||
chatInput,
|
||||
|
||||
// Bundled language modes (for reference / dynamic use)
|
||||
languages: {
|
||||
javascript, json, markdown, sql, html, css, yaml, go, python, rust,
|
||||
},
|
||||
|
||||
// Keybinding modes (for reference / settings UI)
|
||||
keybindings: { vim, emacs },
|
||||
};
|
||||
|
||||
console.log('[CM6] CodeMirror bundle loaded (v' + window.CM.version + ')');
|
||||
Reference in New Issue
Block a user