版本:Typo3 v11,CodeMirror v5,浏览器:Firefox
总结: 我有一个 Typo3 扩展,我想为其添加自定义语法突出显示。这应该可以使用内置 t3editor 实现,如文档中所述。
但是,就我而言,我只能通过指定已经使用typo3交付的模式来使其工作。
我的设置:
/Resources/Public/JavaScript/cm
目录中/Configuration/Backend/T3editor/Modes.php
我回来了: return [
'turtle' => [
'module' => 'TYPO3/CMS/MyExtension/cm/mode/turtle/turtle',
],
];
/Configuration/TCA/tt_content.php
我正在设置 $GLOBALS['TCA']['tt_content']['types']['my_extension']['columnsOverrides']['bodytext']['config']['format'] = 'turtle';
结果: 它显示了一个 CodeMirror 编辑器,没有任何突出显示(黑色文本)。控制台显示没有错误。在浏览器中调试turtle.js 文件时,我注意到执行了海龟模式(CodeMirror.defineMode)的注册,但从未使用注册的函数(即未应用语法突出显示)。
有效的变体
看来我不能离得太远,因为当我更改以下任何一项时,它都会按预期工作:
'cm/mode/turtle/turtle'
(从而直接从 t3editor 加载文件,其中包括所有模式)时,它会正确地突出显示海龟。 (我不想要这个的原因是我正在编写自己的模式,我需要从自己的扩展中添加)有人能发现我错过了什么吗?
弄清楚如何让它工作,但不确定我明白为什么。欢迎补充解释。 如果在turtle.js文件中我更改了require的参数并定义从
"../../lib/codemirror"
到"codemirror"
->一切都按预期工作。