前提・実現したいこと
codemirrorのreactラッパーを使っています。
自作modeを指定して自分が指定した正規表現と一致した時にハイライトを付けたいと思っているのですが、以下のようなエラーが出てうまく行きません。nodemodulesでエラーになっているというのは、自力で直せないということでしょうか。
わかる方、経験者がいればコメントお願いします。
参考
https://codemirror.net/demo/simplemode.html
https://github.com/scniro/react-codemirror2
発生している問題・エラーメッセージ
TypeError: mfactory is not a function
getMode
node_modules/codemirror/lib/codemirror.js:751
748 | spec = resolveMode(spec);
749 | var mfactory = modes[spec.name];
750 | if (!mfactory) { return getMode(options, "text/plain") }
751 | var modeObj = mfactory(options, spec);
| ^ 752 | if (modeExtensions.hasOwnProperty(spec.name)) {
753 | var exts = modeExtensions[spec.name];
754 | for (var prop in exts) {
該当のソースコード
import React from "react"; import { UnControlled as CodeMirror } from "react-codemirror2"; import "codemirror/lib/codemirror.css"; import "codemirror/theme/material.css"; const CodemirrorArea = () => { return ( <CodeMirror value="<h1>I ♥ react-codemirror2 @ </h1>" options={{ theme: "material", lineNumbers: true, }} defineMode: { name: "simplemode", fn: { start: [ { regex: /@/, //例えば@をハイライトさせたい場合 }, ], }, }, onChange={(editor, data, value) => { }} /> ); }; export default CodemirrorArea;
あなたの回答
tips
プレビュー