Loading ckeditor_codemirror.libraries.yml +36 −1 Original line number Diff line number Diff line Loading @@ -19,15 +19,48 @@ codemirror: /libraries/codemirror/mode/javascript/javascript.js: {} /libraries/codemirror/mode/css/css.js: {} /libraries/codemirror/mode/htmlmixed/htmlmixed.js: {} /libraries/codemirror/addon/fold/xml-fold.js: {} /libraries/codemirror/addon/edit/closebrackets.js: {} /libraries/codemirror/addon/edit/closetag.js: {} /libraries/codemirror/addon/edit/matchbrackets.js: {} /libraries/codemirror/addon/edit/matchtags.js: {} /libraries/codemirror/addon/fold/xml-fold.js: {} /libraries/codemirror/addon/selection/active-line.js: {} css: component: /libraries/codemirror/lib/codemirror.css: {} codemirror.dialog: js: /libraries/codemirror/addon/dialog/dialog.js: {} css: component: /libraries/codemirror/addon/dialog/dialog.css: {} dependencies: - ckeditor_codemirror/codemirror codemirror.fold: js: /libraries/codemirror/addon/fold/foldcode.js: {} /libraries/codemirror/addon/fold/foldgutter.js: {} /libraries/codemirror/addon/fold/brace-fold.js: {} /libraries/codemirror/addon/fold/indent-fold.js: {} /libraries/codemirror/addon/fold/markdown-fold.js: {} /libraries/codemirror/addon/fold/comment-fold.js: {} css: component: /libraries/codemirror/addon/fold/foldgutter.css: {} dependencies: - ckeditor_codemirror/codemirror codemirror.search: js: /libraries/codemirror/addon/search/search.js: {} /libraries/codemirror/addon/search/searchcursor.js: {} /libraries/codemirror/addon/search/jump-to-line.js: {} dependencies: - ckeditor_codemirror/codemirror - ckeditor_codemirror/codemirror.dialog source_editing_code_mirror: js: js/ckeditor5_plugins/ckeditor5-source-editing-codemirror/build/source-editing-codemirror.js: { preprocess: false, minified: true } Loading @@ -35,3 +68,5 @@ source_editing_code_mirror: - core/ckeditor5 - core/ckeditor5.sourceEditing - ckeditor_codemirror/codemirror - ckeditor_codemirror/codemirror.fold - ckeditor_codemirror/codemirror.search config/schema/ckeditor_codemirror.schema.yml +13 −22 Original line number Diff line number Diff line Loading @@ -12,6 +12,15 @@ ckeditor5.plugin.ckeditor_codemirror_source_editing: type: config_object label: 'CodeMirror options' mapping: autoCloseBrackets: type: boolean label: 'Close brackets automatically.' autoCloseTags: type: boolean label: 'Close tags automatically.' folding: type: boolean label: 'Enable code folding.' lineNumbers: type: boolean label: 'Show line numbers.' Loading @@ -24,27 +33,9 @@ ckeditor5.plugin.ckeditor_codemirror_source_editing: matchTags: type: boolean label: 'Highlight matching tags.' autoCloseTags: searchBottom: type: boolean label: 'Close tags automatically.' autoCloseBrackets: label: 'Display search bar at bottom.' styleActiveLine: type: boolean label: 'Close brackets automatically.' # enableSearchTools: # type: boolean # label: 'Enable search tools.' # enableCodeFolding: # type: boolean # label: 'Enable code folding.' # enableCodeFormatting: # type: boolean # label: 'Enable code formatting.' # autoFormatOnStart: # type: boolean # label: 'Format code on start.' # autoFormatOnModeChange: # type: boolean # label: 'Format code each time source is opened.' # autoFormatOnUncomment: # type: boolean # label: 'Format code when a line is uncommented.' label: 'Highlight active line.' src/Plugin/CKEditor5Plugin/CodeMirror.php +25 −13 Original line number Diff line number Diff line Loading @@ -38,18 +38,15 @@ class CodeMirror extends CKEditor5PluginDefault implements CKEditor5PluginConfig */ private function options(): array { return [ 'autoCloseBrackets' => $this->t('Close brackets automatically.'), 'autoCloseTags' => $this->t('Close tags automatically.'), 'folding' => $this->t('Enable code folding.'), 'lineNumbers' => $this->t('Show line numbers.'), 'lineWrapping' => $this->t('Enable line wrapping.'), 'matchBrackets' => $this->t('Highlight matching brackets.'), 'matchTags' => $this->t('Highlight matching tags.'), 'autoCloseTags' => $this->t('Close tags automatically.'), 'autoCloseBrackets' => $this->t('Close brackets automatically.'), // 'enableSearchTools' => $this->t('Enable search tools.'), // 'enableCodeFolding' => $this->t('Enable code folding.'), // 'enableCodeFormatting' => $this->t('Enable code formatting.'), // 'autoFormatOnStart' => $this->t('Format code on start.'), // 'autoFormatOnModeChange' => $this->t('Format code each time source is opened.'), // 'autoFormatOnUncomment' => $this->t('Format code when a line is uncommented.'), 'searchBottom' => $this->t('Display search bar at bottom.'), 'styleActiveLine' => $this->t('Highlight active line.'), ]; } Loading @@ -68,14 +65,29 @@ public function defaultConfiguration(): array { * {@inheritdoc} */ public function getDynamicPluginConfig(array $static_plugin_config, EditorInterface $editor): array { return [ 'sourceEditingCodeMirror' => [ 'options' => [ $options = [ 'mode' => $this->configuration['mode'], 'gutters' => [], 'extraKeys' => ['Alt-F' => 'findPersistent'], ...$this->configuration['options'], ], ], ]; if ($this->configuration['options']['lineNumbers']) { $options['gutters'][] = 'CodeMirror-linenumbers'; } if ($this->configuration['options']['folding']) { $options['foldGutter'] = TRUE; $options['gutters'][] = 'CodeMirror-foldgutter'; } unset($options['folding']); if ($this->configuration['options']['searchBottom']) { $options['search'] = ['bottom' => TRUE]; } unset($options['searchBottom']); return ['sourceEditingCodeMirror' => ['options' => $options]]; } /** Loading Loading
ckeditor_codemirror.libraries.yml +36 −1 Original line number Diff line number Diff line Loading @@ -19,15 +19,48 @@ codemirror: /libraries/codemirror/mode/javascript/javascript.js: {} /libraries/codemirror/mode/css/css.js: {} /libraries/codemirror/mode/htmlmixed/htmlmixed.js: {} /libraries/codemirror/addon/fold/xml-fold.js: {} /libraries/codemirror/addon/edit/closebrackets.js: {} /libraries/codemirror/addon/edit/closetag.js: {} /libraries/codemirror/addon/edit/matchbrackets.js: {} /libraries/codemirror/addon/edit/matchtags.js: {} /libraries/codemirror/addon/fold/xml-fold.js: {} /libraries/codemirror/addon/selection/active-line.js: {} css: component: /libraries/codemirror/lib/codemirror.css: {} codemirror.dialog: js: /libraries/codemirror/addon/dialog/dialog.js: {} css: component: /libraries/codemirror/addon/dialog/dialog.css: {} dependencies: - ckeditor_codemirror/codemirror codemirror.fold: js: /libraries/codemirror/addon/fold/foldcode.js: {} /libraries/codemirror/addon/fold/foldgutter.js: {} /libraries/codemirror/addon/fold/brace-fold.js: {} /libraries/codemirror/addon/fold/indent-fold.js: {} /libraries/codemirror/addon/fold/markdown-fold.js: {} /libraries/codemirror/addon/fold/comment-fold.js: {} css: component: /libraries/codemirror/addon/fold/foldgutter.css: {} dependencies: - ckeditor_codemirror/codemirror codemirror.search: js: /libraries/codemirror/addon/search/search.js: {} /libraries/codemirror/addon/search/searchcursor.js: {} /libraries/codemirror/addon/search/jump-to-line.js: {} dependencies: - ckeditor_codemirror/codemirror - ckeditor_codemirror/codemirror.dialog source_editing_code_mirror: js: js/ckeditor5_plugins/ckeditor5-source-editing-codemirror/build/source-editing-codemirror.js: { preprocess: false, minified: true } Loading @@ -35,3 +68,5 @@ source_editing_code_mirror: - core/ckeditor5 - core/ckeditor5.sourceEditing - ckeditor_codemirror/codemirror - ckeditor_codemirror/codemirror.fold - ckeditor_codemirror/codemirror.search
config/schema/ckeditor_codemirror.schema.yml +13 −22 Original line number Diff line number Diff line Loading @@ -12,6 +12,15 @@ ckeditor5.plugin.ckeditor_codemirror_source_editing: type: config_object label: 'CodeMirror options' mapping: autoCloseBrackets: type: boolean label: 'Close brackets automatically.' autoCloseTags: type: boolean label: 'Close tags automatically.' folding: type: boolean label: 'Enable code folding.' lineNumbers: type: boolean label: 'Show line numbers.' Loading @@ -24,27 +33,9 @@ ckeditor5.plugin.ckeditor_codemirror_source_editing: matchTags: type: boolean label: 'Highlight matching tags.' autoCloseTags: searchBottom: type: boolean label: 'Close tags automatically.' autoCloseBrackets: label: 'Display search bar at bottom.' styleActiveLine: type: boolean label: 'Close brackets automatically.' # enableSearchTools: # type: boolean # label: 'Enable search tools.' # enableCodeFolding: # type: boolean # label: 'Enable code folding.' # enableCodeFormatting: # type: boolean # label: 'Enable code formatting.' # autoFormatOnStart: # type: boolean # label: 'Format code on start.' # autoFormatOnModeChange: # type: boolean # label: 'Format code each time source is opened.' # autoFormatOnUncomment: # type: boolean # label: 'Format code when a line is uncommented.' label: 'Highlight active line.'
src/Plugin/CKEditor5Plugin/CodeMirror.php +25 −13 Original line number Diff line number Diff line Loading @@ -38,18 +38,15 @@ class CodeMirror extends CKEditor5PluginDefault implements CKEditor5PluginConfig */ private function options(): array { return [ 'autoCloseBrackets' => $this->t('Close brackets automatically.'), 'autoCloseTags' => $this->t('Close tags automatically.'), 'folding' => $this->t('Enable code folding.'), 'lineNumbers' => $this->t('Show line numbers.'), 'lineWrapping' => $this->t('Enable line wrapping.'), 'matchBrackets' => $this->t('Highlight matching brackets.'), 'matchTags' => $this->t('Highlight matching tags.'), 'autoCloseTags' => $this->t('Close tags automatically.'), 'autoCloseBrackets' => $this->t('Close brackets automatically.'), // 'enableSearchTools' => $this->t('Enable search tools.'), // 'enableCodeFolding' => $this->t('Enable code folding.'), // 'enableCodeFormatting' => $this->t('Enable code formatting.'), // 'autoFormatOnStart' => $this->t('Format code on start.'), // 'autoFormatOnModeChange' => $this->t('Format code each time source is opened.'), // 'autoFormatOnUncomment' => $this->t('Format code when a line is uncommented.'), 'searchBottom' => $this->t('Display search bar at bottom.'), 'styleActiveLine' => $this->t('Highlight active line.'), ]; } Loading @@ -68,14 +65,29 @@ public function defaultConfiguration(): array { * {@inheritdoc} */ public function getDynamicPluginConfig(array $static_plugin_config, EditorInterface $editor): array { return [ 'sourceEditingCodeMirror' => [ 'options' => [ $options = [ 'mode' => $this->configuration['mode'], 'gutters' => [], 'extraKeys' => ['Alt-F' => 'findPersistent'], ...$this->configuration['options'], ], ], ]; if ($this->configuration['options']['lineNumbers']) { $options['gutters'][] = 'CodeMirror-linenumbers'; } if ($this->configuration['options']['folding']) { $options['foldGutter'] = TRUE; $options['gutters'][] = 'CodeMirror-foldgutter'; } unset($options['folding']); if ($this->configuration['options']['searchBottom']) { $options['search'] = ['bottom' => TRUE]; } unset($options['searchBottom']); return ['sourceEditingCodeMirror' => ['options' => $options]]; } /** Loading