はじめかた
インストール
コンポーネントと codemirror をあわせてインストールします。
言語サポート、リンター、テーマはそれぞれ別のパッケージです。必要なものをインストールしてください。
最小構成の例
この状態では、行番号やキーバインドのないシンプルなエディタが表示されます。basic を付けると CodeMirror の basicSetup(行番号、履歴、括弧の対応表示、検索など)が有効になります。
Tip
basic の代わりに minimal を指定すると minimalSetup になります。両方を指定した場合は basic が優先されます。
言語を追加する
lang に LanguageSupport オブジェクトを渡すとシンタックスハイライトが有効になります。
グローバル登録
パッケージが書き出している install 関数を使うと、コンポーネントを CodeMirror という名前で登録できます。
登録後は、import しなくてもすべてのテンプレートで <code-mirror> を使えます。
パッケージの export
CDN(jsDelivr)から使う
vue-codemirror6 1.8.0 以降は、バンドラーなしでも使えます(Vue 3 のみ)。jsDelivr の ESM ファイルを import map で読み込み、アプリにコンポーネントを登録します。
依存パッケージは 1 つずつだけ読み込む
@codemirror/state などの @codemirror/* が 2 つ読み込まれると CodeMirror が動かなくなり、Vue が 2 つ読み込まれるとリアクティビティが壊れます。上の例のように各パッケージを 1 つの URL に対応させてください。jsDelivr の /+esm の URL は使わないでください。パッケージごとに依存のバージョンが別々に固定されるため、重複が起きやすくなります。
vue.esm-browser.prod.jsにはテンプレートコンパイラが含まれているので、上の例のような DOM 内テンプレートが使えます。- import map の最後の 2 行は
@codemirror/lang-javascript用です。使う言語パッケージと、その@lezer/*パーサーも同じように追加してください。 - Vue アプリを使わずにカスタム要素として使う場合は Web Component を参照してください。
次のステップ
- 使い方 —
v-model、スロット、読み取り専用、キーバインド - 言語・リンター・テーマ