Extend T3editor¶
Custom modes (used for syntax highlighting) and addons can be registered.
CodeMirror delivers a lot more modes and addons than registered in T3editor by default.
More supported addons and modes are available at:
Prerequisites¶
To do this, extensions may have these two files to feed T3editor:
Configuration/Backend/T3editor/Addons.php
Configuration/Backend/T3editor/Modes.php
Both files return an array, as known as in TCA and Backend Routes, for example.
Register an addon¶
To register an addon, the following code may be used:
<?php
return [
'my/addon' => [
'module' => JavaScriptModuleInstruction::create('@codemirror/addon', 'addon')->invoke()
'cssFiles' => [
'EXT:my_extension/Resources/Public/Css/MyAddon.css',
],
'options' [
'foobar' => 'baz',
],
'modes' => ['htmlmixed', 'xml'],
],
];
- <identifier>¶
- Type
string
- Required
true
Represents the unique identifier of the module (
my/addon
in this example).
- module¶
- Type
string
- Required
true
Holds the JavaScriptModuleInstruction of the CodeMirror module.
- cssFiles¶
- Type
array
Holds all CSS files that must be loaded for the module.
- options¶
- Type
array
Options that are used by the addon.
- modes¶
- Type
array
If set the addon is only loaded if any of the modes supplied here is used.
Register a mode¶
To register a mode, the following code may be used:
<?php
return [
'css' => [
'module' => 'cm/mode/css/css',
'extensions' => ['css'],
],
];
- <identifier>¶
- Type
string
- Required
true
Represents the unique identifier and format code of the mode (
css
in this example). The format code is used in TCA to define the CodeMirror mode to be used.Example:
$GLOBALS['TCA']['tt_content']['types']['css']['columnsOverrides']['bodytext']['config']['format'] = 'css';
- module¶
- Type
string
- Required
true
Holds the JavaScriptModuleInstruction of the CodeMirror module.
- extensions¶
- Type
array
Binds the mode to specific file extensions. This is important for using T3editor in the module Filelist.
- default¶
- Type
bool
If set, the mode is used as fallback if no sufficient mode is available. By factory default, the default mode is
html
.