From bb5a44ced5032033a4f44905255bdfc4fb1ea7da Mon Sep 17 00:00:00 2001 From: Samuel Georges Date: Sun, 29 May 2016 08:54:22 +1000 Subject: [PATCH] Add get/set content to code editor plugin Fixes plain text / snippet editor issue Fixes #2059 --- modules/backend/formwidgets/CodeEditor.php | 14 +++++++++++++- .../formwidgets/codeeditor/assets/js/build-min.js | 2 ++ .../formwidgets/codeeditor/assets/js/codeeditor.js | 8 ++++++++ .../assets/vendor/ace/snippets/plain_text.js | 7 +++++++ 4 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 modules/backend/formwidgets/codeeditor/assets/vendor/ace/snippets/plain_text.js diff --git a/modules/backend/formwidgets/CodeEditor.php b/modules/backend/formwidgets/CodeEditor.php index be6434613..ecf8228ae 100644 --- a/modules/backend/formwidgets/CodeEditor.php +++ b/modules/backend/formwidgets/CodeEditor.php @@ -63,10 +63,20 @@ class CodeEditor extends FormWidgetBase public $margin = 0; /** - * @var $theme Ace Editor theme to use. + * @var string Ace Editor theme to use. */ public $theme = 'twilight'; + /** + * @var bool Show invisible characters. + */ + public $showInvisibles = false; + + /** + * @var bool Highlight the active line. + */ + public $highlightActiveLine = true; + /** * @var boolean If true, the editor is set to read-only mode */ @@ -119,6 +129,8 @@ class CodeEditor extends FormWidgetBase 'fontSize', 'margin', 'theme', + 'showInvisibles', + 'highlightActiveLine', 'readOnly', 'autocompletion', 'enableSnippets', diff --git a/modules/backend/formwidgets/codeeditor/assets/js/build-min.js b/modules/backend/formwidgets/codeeditor/assets/js/build-min.js index 2422d2049..e4a4dd365 100644 --- a/modules/backend/formwidgets/codeeditor/assets/js/build-min.js +++ b/modules/backend/formwidgets/codeeditor/assets/js/build-min.js @@ -4713,6 +4713,8 @@ renderer.setPrintMarginColumn(80) break}} CodeEditor.prototype.setTheme=function(theme){var self=this assetManager.load({js:[this.options.vendorPath+'/theme-'+theme+'.js']},function(){self.editor.setTheme('ace/theme/'+theme)})} +CodeEditor.prototype.getContent=function(){return this.editor.getSession().getValue()} +CodeEditor.prototype.setContent=function(html){this.editor.getSession().setValue(html)} CodeEditor.prototype.getEditorObject=function(){return this.editor} CodeEditor.prototype.getToolbar=function(){return this.$toolbar} CodeEditor.prototype.toggleFullscreen=function(){this.$el.toggleClass('editor-fullscreen') diff --git a/modules/backend/formwidgets/codeeditor/assets/js/codeeditor.js b/modules/backend/formwidgets/codeeditor/assets/js/codeeditor.js index 972298b14..62c8e1cdf 100644 --- a/modules/backend/formwidgets/codeeditor/assets/js/codeeditor.js +++ b/modules/backend/formwidgets/codeeditor/assets/js/codeeditor.js @@ -340,6 +340,14 @@ }) } + CodeEditor.prototype.getContent = function() { + return this.editor.getSession().getValue() + } + + CodeEditor.prototype.setContent = function(html) { + this.editor.getSession().setValue(html) + } + CodeEditor.prototype.getEditorObject = function() { return this.editor } diff --git a/modules/backend/formwidgets/codeeditor/assets/vendor/ace/snippets/plain_text.js b/modules/backend/formwidgets/codeeditor/assets/vendor/ace/snippets/plain_text.js new file mode 100644 index 000000000..24223a662 --- /dev/null +++ b/modules/backend/formwidgets/codeeditor/assets/vendor/ace/snippets/plain_text.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/plain_text",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "plain_text"; + +});