|
From: <luc...@us...> - 2013-09-30 17:22:22
|
Revision: 12111
http://sourceforge.net/p/xoops/svn/12111
Author: luciorota
Date: 2013-09-30 17:22:19 +0000 (Mon, 30 Sep 2013)
Log Message:
-----------
now codemirror3 runs well, tested/improved support to $mode parameter for better syntax highlight
Modified Paths:
--------------
ThirdParty/xoopseditor/trunk/htdocs/class/xoopseditor/codemirror3/codemirror/addon/display/fullscreen.css
ThirdParty/xoopseditor/trunk/htdocs/class/xoopseditor/codemirror3/editor_registry.php
ThirdParty/xoopseditor/trunk/htdocs/class/xoopseditor/codemirror3/formcodemirror3.php
ThirdParty/xoopseditor/trunk/htdocs/class/xoopseditor/codemirror3/language/english.php
Modified: ThirdParty/xoopseditor/trunk/htdocs/class/xoopseditor/codemirror3/codemirror/addon/display/fullscreen.css
===================================================================
--- ThirdParty/xoopseditor/trunk/htdocs/class/xoopseditor/codemirror3/codemirror/addon/display/fullscreen.css 2013-09-30 17:18:17 UTC (rev 12110)
+++ ThirdParty/xoopseditor/trunk/htdocs/class/xoopseditor/codemirror3/codemirror/addon/display/fullscreen.css 2013-09-30 17:22:19 UTC (rev 12111)
@@ -2,5 +2,5 @@
position: fixed;
top: 0; left: 0; right: 0; bottom: 0;
height: auto;
- z-index: 9;
+ z-index: 255;
}
Modified: ThirdParty/xoopseditor/trunk/htdocs/class/xoopseditor/codemirror3/editor_registry.php
===================================================================
--- ThirdParty/xoopseditor/trunk/htdocs/class/xoopseditor/codemirror3/editor_registry.php 2013-09-30 17:18:17 UTC (rev 12110)
+++ ThirdParty/xoopseditor/trunk/htdocs/class/xoopseditor/codemirror3/editor_registry.php 2013-09-30 17:22:19 UTC (rev 12111)
@@ -32,4 +32,3 @@
'csv', 'text/csv'
)
);
-?>
Modified: ThirdParty/xoopseditor/trunk/htdocs/class/xoopseditor/codemirror3/formcodemirror3.php
===================================================================
--- ThirdParty/xoopseditor/trunk/htdocs/class/xoopseditor/codemirror3/formcodemirror3.php 2013-09-30 17:18:17 UTC (rev 12110)
+++ ThirdParty/xoopseditor/trunk/htdocs/class/xoopseditor/codemirror3/formcodemirror3.php 2013-09-30 17:22:19 UTC (rev 12111)
@@ -30,7 +30,7 @@
var $setting = array();
var $language = _LANGCODE;
var $width = '100%';
- var $height = '500px';
+ var $height = '300px';
var $syntax = 'txt'; // default
var $mode = null; // default
@@ -41,7 +41,7 @@
*/
function __construct($configs, $mode)
{
- $this->rootPath = "/class/xoopseditor/codemirror2";
+ $this->rootPath = "/class/xoopseditor/codemirror3";
parent::__construct($configs);
$this->width = isset($this->configs["width"]) ? $this->configs["width"] : $this->width;
$this->height = isset($this->configs["height"]) ? $this->configs["height"] : $this->height;
@@ -160,17 +160,35 @@
static $isCodemirror3JsLoaded;
$ret = '';
- if ( is_object($GLOBALS['xoopsModule']) )
+ if ( is_object($GLOBALS['xoopsModule']) )
$dirname = $GLOBALS['xoopsModule']->getVar('dirname');
else
$dirname = 'system';
- if ( is_object($GLOBALS['xoTheme']) ) {
- // uses $GLOBALS['xoTheme']
- if ( !$isCodemirror3JsLoaded ) {
+
+ // Load common stuff only once
+ if ( !$isCodemirror3JsLoaded ) {
+ // CodeMirror custom css
+ $css = ".CodeMirror {border: none;}\n";
+ $css.= ".CodeMirror {height: 100%;}\n";
+ $css.= ".CodeMirror {width: 100%;}\n";
+ $css.= ".CodeMirror-gutters {background-color: #F0F0EE;}\n";
+ $css.= ".CodeMirror-scroll {overflow-y: hidden; overflow-x: auto;}\n";
+ $css.= ".CodeMirror-activeline-background {background: #e8f2ff !important;}\n"; // Highlighting the current line
+ $css.= ".cm-tab {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=); background-position: right; background-repeat: no-repeat;}\n"; // Visible tabs
+ $css.= ".CodeMirror-foldmarker {color: blue; text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px; font-family: arial;}\n";
+ // Get available codemirror themes
+ function codemirror_filesList($d, $x){
+ foreach(array_diff(scandir($d), array('.', '..')) as $f) if (is_file($d . '/' . $f) && (($x) ? preg_match('/' . $x . '$/' , $f) : 1)) $l[] = $f;
+ return $l;
+ }
+ $themes = codemirror_filesList(XOOPS_ROOT_PATH . '/class/xoopseditor/codemirror3/codemirror/theme', '.css');
+ // Generate no common html/javascript/stylesheet
+ if ( is_object($GLOBALS['xoTheme']) ) {
+ // uses $GLOBALS['xoTheme']
// CodeMirror stuff
$GLOBALS['xoTheme']->addStylesheet(XOOPS_URL . '/class/xoopseditor/codemirror3/codemirror/lib/codemirror.css');
- //$GLOBALS['xoTheme']->addStylesheet(XOOPS_URL . '/class/xoopseditor/codemirror3/codemirror/doc/docs.css');
$GLOBALS['xoTheme']->addScript(XOOPS_URL . '/class/xoopseditor/codemirror3/codemirror/lib/codemirror.js');
+ $GLOBALS['xoTheme']->addStylesheet(null, null, $css);
// CodeMirror addons
$GLOBALS['xoTheme']->addScript(XOOPS_URL . '/class/xoopseditor/codemirror3/codemirror/addon/selection/active-line.js');
$GLOBALS['xoTheme']->addScript(XOOPS_URL . '/class/xoopseditor/codemirror3/codemirror/addon/fold/foldcode.js');
@@ -179,91 +197,79 @@
$GLOBALS['xoTheme']->addScript(XOOPS_URL . '/class/xoopseditor/codemirror3/codemirror/addon/display/fullscreen.js');
// Automatic xml tag closing
$GLOBALS['xoTheme']->addScript(XOOPS_URL . '/class/xoopseditor/codemirror3/codemirror/addon/edit/closetag.js');
+ // Automatic match brakets
+ $GLOBALS['xoTheme']->addScript(XOOPS_URL . '/class/xoopseditor/codemirror3/codemirror/addon/edit/matchbrackets.js');
// CodeMirror themes
- function codemirror_filesList($d, $x){
- foreach(array_diff(scandir($d), array('.', '..')) as $f) if (is_file($d . '/' . $f) && (($x) ? preg_match('/' . $x . '$/' , $f) : 1)) $l[] = $f;
- return $l;
- }
- $themes = codemirror_filesList(XOOPS_ROOT_PATH . '/class/xoopseditor/codemirror3/codemirror/theme', '.css');
foreach($themes as $theme)
$GLOBALS['xoTheme']->addStylesheet(XOOPS_URL . '/class/xoopseditor/codemirror3/codemirror/theme/' . $theme);
-
- // CodeMirror mode: htmlmixed
+ // CodeMirror modes
$GLOBALS['xoTheme']->addScript(XOOPS_URL . '/class/xoopseditor/codemirror3/codemirror/mode/xml/xml.js');
$GLOBALS['xoTheme']->addScript(XOOPS_URL . '/class/xoopseditor/codemirror3/codemirror/mode/javascript/javascript.js');
$GLOBALS['xoTheme']->addScript(XOOPS_URL . '/class/xoopseditor/codemirror3/codemirror/mode/css/css.js');
+ $GLOBALS['xoTheme']->addScript(XOOPS_URL . '/class/xoopseditor/codemirror3/codemirror/mode/less/less.js');
$GLOBALS['xoTheme']->addScript(XOOPS_URL . '/class/xoopseditor/codemirror3/codemirror/mode/vbscript/vbscript.js');
$GLOBALS['xoTheme']->addScript(XOOPS_URL . '/class/xoopseditor/codemirror3/codemirror/mode/htmlmixed/htmlmixed.js');
- // Define an extended mixed-mode that understands vbscript and leaves mustache/handlebars embedded templates in html mode
- $GLOBALS['xoTheme']->addScript(null, null, "var mixedMode = {name: 'htmlmixed', scriptTypes: [{matches: /\/x-handlebars-template|\/x-mustache/i, mode: null}, {matches: /(text|application)\/(x-)?vb(a|script)/i, mode: 'vbscript'}]};");
-
+ $GLOBALS['xoTheme']->addScript(null, null, "var mixedMode = {name: 'htmlmixed', scriptTypes: [{matches: /\/x-handlebars-template|\/x-mustache/i, mode: null}, {matches: /(text|application)\/(x-)?vb(a|script)/i, mode: 'vbscript'}]};"); // Define an extended mixed-mode that understands vbscript and leaves mustache/handlebars embedded templates in html mode
$GLOBALS['xoTheme']->addScript(XOOPS_URL . '/class/xoopseditor/codemirror3/codemirror/mode/smarty/smarty.js');
$GLOBALS['xoTheme']->addScript(XOOPS_URL . '/class/xoopseditor/codemirror3/codemirror/mode/smartymixed/smartymixed.js');
$GLOBALS['xoTheme']->addScript(XOOPS_URL . '/class/xoopseditor/codemirror3/codemirror/mode/clike/clike.js');
$GLOBALS['xoTheme']->addScript(XOOPS_URL . '/class/xoopseditor/codemirror3/codemirror/mode/plsql/plsql.js');
$GLOBALS['xoTheme']->addScript(XOOPS_URL . '/class/xoopseditor/codemirror3/codemirror/mode/php/php.js');
-
+ // Initialize arrays for multiple CodeMirror istances
$GLOBALS['xoTheme']->addScript(null, null, 'var codemirror3_editor = new Array();');
$GLOBALS['xoTheme']->addScript(null, null, 'var codemirror3_textarea = new Array();');
$GLOBALS['xoTheme']->addScript(null, null, 'var codemirror3_uiOptions = new Array();');
$GLOBALS['xoTheme']->addScript(null, null, 'var codemirror3_codeMirrorOptions = new Array();');
-
- /*
- if ( file_exists( XOOPS_ROOT_PATH . $this->rootPath . '/module/config. '. $dirname . '.js' ) )
- $GLOBALS['xoTheme']->addScript( XOOPS_URL . $this->rootPath . '/module/config.' . $dirname . '.js' );
- else
- $GLOBALS['xoTheme']->addScript( XOOPS_URL . $this->rootPath . '/codemirror3/config.js' );
- */
- $isCodemirror3JsLoaded = true;
- }
- } else {
- // does not use $GLOBALS['xoTheme']
- if ( !$isCodemirror3JsLoaded ) {
+ } else {
+ // does not use $GLOBALS['xoTheme']
// CodeMirror stuff
$ret.= "<style type='text/css'>@import url(" . XOOPS_URL . "/class/xoopseditor/codemirror3/codemirror/lib/codemirror.css);</style>\n";
$ret.= "<script src='" . XOOPS_URL . "/class/xoopseditor/codemirror3/codemirror/lib/codemirror.js' type='text/javascript'></script>\n";
+ $ret.= "<style type='text/css'>\n" . $css . "</style>\n";
+ // CodeMirror addons
+ $ret.= "<script src='" . XOOPS_URL . "/class/xoopseditor/codemirror3/codemirror/addon/selection/active-line.js' type='text/javascript'></script>\n";
+ $ret.= "<script src='" . XOOPS_URL . "/class/xoopseditor/codemirror3/codemirror/addon/fold/foldcode.js' type='text/javascript'></script>\n";
+ $ret.= "<script type='text/javascript'>var foldFunc = CodeMirror.newFoldFunction(CodeMirror.braceRangeFinder);</script>\n";
+ $ret.= "<style type='text/css'>@import url(" . XOOPS_URL . "/class/xoopseditor/codemirror3/codemirror/addon/display/fullscreen.css);</style>\n";
+ $ret.= "<script src='" . XOOPS_URL . "/class/xoopseditor/codemirror3/codemirror/addon/display/fullscreen.js' type='text/javascript'></script>\n";
+ // Automatic xml tag closing
+ $ret .= "<script src='" . XOOPS_URL . "/class/xoopseditor/codemirror3/codemirror/addon/edit/closetag.js' type='text/javascript'></script>\n";
+ // Automatic match brakets
+ $ret .= "<script src='" . XOOPS_URL . "/class/xoopseditor/codemirror3/codemirror/addon/edit/matchbrackets.js' type='text/javascript'></script>\n";
// CodeMirror themes
- //$ret .= "<style type='text/css'>@import url(" . XOOPS_URL . "/class/xoopseditor/codemirror2/CodeMirror/theme/default.css);</style>\n";
- //$ret .= "<style type='text/css'>@import url(" . XOOPS_URL . "/class/xoopseditor/codemirror2/CodeMirror/theme/neat.css);</style>\n";
- //$ret .= "<style type='text/css'>@import url(" . XOOPS_URL . "/class/xoopseditor/codemirror2/CodeMirror/theme/elegant.css);</style>\n";
- //$ret .= "<style type='text/css'>@import url(" . XOOPS_URL . "/class/xoopseditor/codemirror2/CodeMirror/theme/night.css);</style>\n";
- //$ret .= "<style type='text/css'>@import url(" . XOOPS_URL . "/class/xoopseditor/codemirror2/CodeMirror/theme/cobalt.css);</style>\n";
- //$ret .= "<style type='text/css'>@import url(" . XOOPS_URL . "/class/xoopseditor/codemirror2/CodeMirror/theme/eclipse.css);</style>\n";
+ foreach($themes as $theme)
+ $ret .= "<style type='text/css'>@import url(" . XOOPS_URL . '/class/xoopseditor/codemirror3/codemirror/theme/' . $theme . ");</style>\n";
// CodeMirror modes
- $ret.= "<script src='" . XOOPS_URL . "/class/xoopseditor/codemirror3/codemirror/mode/http/http.js' type='text/javascript'></script>\n";
- //$ret .= "<script src='" . XOOPS_URL . "/class/xoopseditor/codemirror2/CodeMirror/mode/javascript/javascript.js' type='text/javascript'></script>\n";
- //$ret .= "<script src='" . XOOPS_URL . "/class/xoopseditor/codemirror2/CodeMirror/mode/css/css.js' type='text/javascript'></script>\n";
- //$ret .= "<script src='" . XOOPS_URL . "/class/xoopseditor/codemirror2/CodeMirror/mode/htmlmixed/htmlmixed.js' type='text/javascript'></script>\n";
- //$ret .= "<script src='" . XOOPS_URL . "/class/xoopseditor/codemirror2/CodeMirror/mode/clike/clike.js' type='text/javascript'></script>\n";
- //$ret .= "<script src='" . XOOPS_URL . "/class/xoopseditor/codemirror2/CodeMirror/mode/plsql/plsql.js' type='text/javascript'></script>\n";
- //$ret .= "<script src='" . XOOPS_URL . "/class/xoopseditor/codemirror2/CodeMirror/mode/php/php.js' type='text/javascript'></script>\n";
- // CodeMirrorUI stuff
- //$ret .= "<script src='" . XOOPS_URL . "/class/xoopseditor/codemirror2/codemirror-ui/js/codemirror-ui.js' type='text/javascript'></script>\n";
- //$ret .= "<style type='text/css'>@import url(" . XOOPS_URL . "/class/xoopseditor/codemirror2/codemirror-ui/css/codemirror-ui.css);</style>\n";
-
+ $ret.= "<script src='" . XOOPS_URL . "/class/xoopseditor/codemirror3/codemirror/mode/xml/xml.js' type='text/javascript'></script>\n";
+ $ret.= "<script src='" . XOOPS_URL . "/class/xoopseditor/codemirror3/codemirror/mode/javascript/javascript.js' type='text/javascript'></script>\n";
+ $ret.= "<script src='" . XOOPS_URL . "/class/xoopseditor/codemirror3/codemirror/mode/css/css.js' type='text/javascript'></script>\n";
+ $ret.= "<script src='" . XOOPS_URL . "/class/xoopseditor/codemirror3/codemirror/mode/less/less.js' type='text/javascript'></script>\n";
+ $ret.= "<script src='" . XOOPS_URL . "/class/xoopseditor/codemirror3/codemirror/mode/vbscript/vbscript.js' type='text/javascript'></script>\n";
+ $ret.= "<script src='" . XOOPS_URL . "/class/xoopseditor/codemirror3/codemirror/mode/htmlmixed/htmlmixed.js' type='text/javascript'></script>\n";
+ $ret.= "<script type='text/javascript'>var mixedMode = {name: 'htmlmixed', scriptTypes: [{matches: /\/x-handlebars-template|\/x-mustache/i, mode: null}, {matches: /(text|application)\/(x-)?vb(a|script)/i, mode: 'vbscript'}]};</script>\n"; // Define an extended mixed-mode that understands vbscript and leaves mustache/handlebars embedded templates in html mode
+ $ret.= "<script src='" . XOOPS_URL . "/class/xoopseditor/codemirror3/codemirror/mode/smarty/smarty.js' type='text/javascript'></script>\n";
+ $ret.= "<script src='" . XOOPS_URL . "/class/xoopseditor/codemirror3/codemirror/mode/smartymixed/smartymixed.js' type='text/javascript'></script>\n";
+ $ret.= "<script src='" . XOOPS_URL . "/class/xoopseditor/codemirror3/codemirror/mode/clike/clike.js' type='text/javascript'></script>\n";
+ $ret.= "<script src='" . XOOPS_URL . "/class/xoopseditor/codemirror3/codemirror/mode/plsql/plsql.js' type='text/javascript'></script>\n";
+ $ret.= "<script src='" . XOOPS_URL . "/class/xoopseditor/codemirror3/codemirror/mode/php/php.js' type='text/javascript'></script>\n";
+ // Initialize arrays for multiple CodeMirror istances
$ret.= "<script type='text/javascript'>\n";
$ret.= "var codemirror3_editor = new Array();\n";
$ret.= "var codemirror3_textarea = new Array();\n";
$ret.= "var codemirror3_uiOptions = new Array();\n";
$ret.= "var codemirror3_codeMirrorOptions = new Array();\n";
$ret.= "</script>\n";
- /*
- if ( file_exists( XOOPS_ROOT_PATH . $this->rootPath . '/module/config.' . $dirname . '.js' ) )
- $ret .= '<script src="' . XOOPS_URL . $this->rootPath . '/module/config .'. $dirname . '.js' . '" type="text/javascript"></script>';
- else
- $ret .= '<script src="' . XOOPS_URL . $this->rootPath . '/codemirror2/config.js' . '" type="text/javascript"></script>';
- */
- $isCodemirror3JsLoaded = true;
}
+ $isCodemirror3JsLoaded = true;
}
+ // Set no common settings
if ($decode) {
$ts =& MyTextSanitizer::getInstance();
$value = $ts->undoHtmlSpecialChars( $this->getValue() );
} else {
$value = $this->getValue();
}
-
$mode = (isset($this->mode) ? $this->mode : $this->syntax);
switch ($mode) {
case 'txt' :
@@ -341,6 +347,8 @@
$this->setting['theme'] = 'eclipse';//'default';
$this->setting['lineNumbers'] = true;
$this->setting['firstLineNumber'] = (int)1;
+ $this->setting['lineNumbers'] = true;
+ $this->setting['lineWrapping'] = true;
$this->setting['matchBrackets'] = true;
// ??? $this->setting['autoMatchParens'] = true;
$this->setting['indentUnit'] = (int)4;
@@ -356,33 +364,21 @@
$this->setting['styleActiveLine'] = true;
// Automatic xml tag closing
$this->setting['autoCloseTags'] = true;
-
- $this->setting['lineNumbers'] = true;
- $this->setting['lineWrapping'] = true;
+ // Extrakeys
$this->setting['extraKeys'] = array(
'"Ctrl-Q": function(cm){foldFunc(cm, cm.getCursor().line);}',
'"F11": function(cm) {cm.setOption("fullScreen", !cm.getOption("fullScreen"));}',
'"Esc": function(cm) {if (cm.getOption("fullScreen")) cm.setOption("fullScreen", false);}'
);
- $ret.= "<style type='text/css'>\n";
- $ret.= ".CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}\n";
- // Auto-resizing editor
- $ret.= ".CodeMirror-scroll {overflow-y: hidden; overflow-x: auto;}\n";
- $ret.= ".CodeMirror {height: auto;}\n";
- // Highlighting the current line
- $ret.= ".CodeMirror-activeline-background {background: #e8f2ff !important;}\n";
- // Visible tabs
- $ret.= ".cm-tab {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=); background-position: right; background-repeat: no-repeat;}\n";
-
- $ret.= ".CodeMirror-foldmarker {color: blue; text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px; font-family: arial;}\n";
- $ret.= "</style>\n";
- $ret.= "<p>" . $this->mode . "</p>";
+ // Generate no common editor html/javascript
+ $ret.= "<div style='height:{$this->getHeight()};width:{$this->getWidth()};border:1px solid #CCCCCC;'>";
$ret.= "<textarea name='" . $this->getName() . "' id='" . $this->getName() . "' rows='" . $this->getRows() . "' cols='" . $this->getCols() . "' " . $this->getExtra() . " style='width:" . $this->getWidth() . ";height:" . $this->getHeight() . ";'>" . $this->getValue() . "</textarea>\n";
-
+ $ret.= "</div>";
+ $ret.= "<small>" . _XOOPS_EDITOR_CODEMIRROR3_MODE. " " . $this->setting['mode'] . "</small>";
+ $ret.= "<br />";
+ $ret.= "<small>" . _XOOPS_EDITOR_CODEMIRROR3_FULLSCREEN . "</small>";
$ret.= "<script type='text/javascript'>\n";
-
- //then create the editor
$ret.= "window.codemirror3_editor['" . $this->getName() . "'] = CodeMirror.fromTextArea(document.getElementById('" . $this->getName() . "'), {";
$ret.= "\n";
foreach ($this->setting as $key => $val) {
Modified: ThirdParty/xoopseditor/trunk/htdocs/class/xoopseditor/codemirror3/language/english.php
===================================================================
--- ThirdParty/xoopseditor/trunk/htdocs/class/xoopseditor/codemirror3/language/english.php 2013-09-30 17:18:17 UTC (rev 12110)
+++ ThirdParty/xoopseditor/trunk/htdocs/class/xoopseditor/codemirror3/language/english.php 2013-09-30 17:22:19 UTC (rev 12111)
@@ -6,7 +6,7 @@
* @license http://www.fsf.org/copyleft/gpl.html GNU public license
* @package core
* @subpackage xoopseditor
- * @since 2.4.x
+ * @since 2.5.7
* @author Rota Lucio <luc...@gm...>
* @version $Id$
*/
@@ -14,6 +14,7 @@
* Assocated with editor_registry.php
*/
// Name of the editor
-define("_XOOPS_EDITOR_CODEMIRROR3", "CodeMirror3 v3.18");
-define("_XOOPS_EDITOR_CODEMIRROR3_LANGUAGE", "en");
-?>
+define("_XOOPS_EDITOR_CODEMIRROR3","CodeMirror3 v3.18");
+define("_XOOPS_EDITOR_CODEMIRROR3_LANGUAGE","en");
+define("_XOOPS_EDITOR_CODEMIRROR3_MODE","Syntax highlight mode:");
+define("_XOOPS_EDITOR_CODEMIRROR3_FULLSCREEN","Press F11 when cursor is in the editor to toggle full screen editing. Esc can also be used to exit full screen editing.");
|