mirror of
https://github.com/claudehohl/Stikked.git
synced 2025-04-26 13:01:08 -05:00
codemirror/ace switcher
This commit is contained in:
parent
8531d66b8a
commit
d010a828d6
@ -54,6 +54,19 @@ $config['db_prefix'] = '';
|
|||||||
*/
|
*/
|
||||||
$config['theme'] = 'default';
|
$config['theme'] = 'default';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JavaScript-Editor
|
||||||
|
*
|
||||||
|
* Which editor to use
|
||||||
|
* CodeMirror, ACE or none
|
||||||
|
*
|
||||||
|
* none: ~130kb JS
|
||||||
|
* CodeMirror: ~300kb JS
|
||||||
|
* ACE: >800kb JS
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
$config['js_editor'] = ''; // codemirror, ace, ''
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Language
|
* Language
|
||||||
*
|
*
|
||||||
|
@ -1,65 +0,0 @@
|
|||||||
var CM = window.CM || {}
|
|
||||||
|
|
||||||
CM.enabled = false;
|
|
||||||
|
|
||||||
CM.init = function() {
|
|
||||||
var $enable_codemirror = $('#enable_codemirror');
|
|
||||||
var lang_enablesynhl = $enable_codemirror.data('lang-enablesynhl');
|
|
||||||
$enable_codemirror.text(lang_enablesynhl);
|
|
||||||
CM.modes = $.parseJSON($('#codemirror_modes').text());
|
|
||||||
$enable_codemirror.click(function() {
|
|
||||||
$('#lang').change(function() {
|
|
||||||
CM.set_language();
|
|
||||||
});
|
|
||||||
CM.toggle();
|
|
||||||
CM.set_language();
|
|
||||||
return false;
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
CM.toggle = function() {
|
|
||||||
var $enable_codemirror = $('#enable_codemirror');
|
|
||||||
var lang_enablesynhl = $enable_codemirror.data('lang-enablesynhl');
|
|
||||||
var lang_disablesynhl = $enable_codemirror.data('lang-disablesynhl');
|
|
||||||
if (CM.enabled) {
|
|
||||||
CM.editor.toTextArea();
|
|
||||||
CM.editor = undefined;
|
|
||||||
$('#lang').unbind();
|
|
||||||
$enable_codemirror.text(lang_enablesynhl);
|
|
||||||
CM.enabled = false;
|
|
||||||
} else {
|
|
||||||
if (typeof CM.editor == 'undefined') {
|
|
||||||
CM.editor = CodeMirror.fromTextArea(document.getElementById('code'), {
|
|
||||||
lineNumbers: true,
|
|
||||||
lineWrapping: true,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
$enable_codemirror.text(lang_disablesynhl);
|
|
||||||
CM.enabled = true;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
CM.set_language = function() {
|
|
||||||
if (CM.enabled) {
|
|
||||||
var lang = $('#lang').val();
|
|
||||||
mode = CM.modes[lang];
|
|
||||||
|
|
||||||
$.get(base_url + 'main/get_cm_js/' + lang,
|
|
||||||
function(data) {
|
|
||||||
if (data != '') {
|
|
||||||
CM.set_syntax(mode);
|
|
||||||
} else {
|
|
||||||
CM.set_syntax(null);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
'script');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
CM.set_syntax = function(mode) {
|
|
||||||
CM.editor.setOption('mode', mode);
|
|
||||||
};
|
|
||||||
|
|
||||||
$(document).ready(function() {
|
|
||||||
CM.init();
|
|
||||||
});
|
|
@ -239,15 +239,19 @@ ST.filereader = function() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
ST.ace = function() {
|
ST.ace_init = function() {
|
||||||
// prepare the editor, needs to be a div
|
// prepare the editor, needs to be a div
|
||||||
var $code = $('#code');
|
var $code = $('#code');
|
||||||
|
|
||||||
// exit if there is no code textarea
|
// exit if there is no #code textarea
|
||||||
if ($code.length < 1) {
|
if ($code.length < 1) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (typeof ace == 'undefined') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// replace textarea
|
// replace textarea
|
||||||
$code.after('<div id="editor" style="left: 10px; width: 703px; height: 312px;"></div>');
|
$code.after('<div id="editor" style="left: 10px; width: 703px; height: 312px;"></div>');
|
||||||
$code.hide();
|
$code.hide();
|
||||||
@ -263,6 +267,38 @@ ST.ace = function() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ST.codemirror_init = function() {
|
||||||
|
if (typeof CodeMirror == 'undefined') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
ST.cm_modes = $.parseJSON($('#codemirror_modes').text());
|
||||||
|
$('#lang').change(function() {
|
||||||
|
ST.codemirror_setlang();
|
||||||
|
});
|
||||||
|
if (typeof ST.cm_editor == 'undefined') {
|
||||||
|
ST.cm_editor = CodeMirror.fromTextArea(document.getElementById('code'), {
|
||||||
|
lineNumbers: true,
|
||||||
|
lineWrapping: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
ST.codemirror_setlang();
|
||||||
|
}
|
||||||
|
|
||||||
|
ST.codemirror_setlang = function() {
|
||||||
|
var lang = $('#lang').val();
|
||||||
|
mode = ST.cm_modes[lang];
|
||||||
|
|
||||||
|
$.get(base_url + 'main/get_cm_js/' + lang,
|
||||||
|
function(data) {
|
||||||
|
if (data != '') {
|
||||||
|
ST.cm_editor.setOption('mode', mode);
|
||||||
|
} else {
|
||||||
|
ST.cm_editor.setOption('mode', null);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'script');
|
||||||
|
}
|
||||||
|
|
||||||
ST.init = function() {
|
ST.init = function() {
|
||||||
ST.expand();
|
ST.expand();
|
||||||
ST.show_embed();
|
ST.show_embed();
|
||||||
@ -270,7 +306,8 @@ ST.init = function() {
|
|||||||
ST.line_highlighter();
|
ST.line_highlighter();
|
||||||
ST.crypto();
|
ST.crypto();
|
||||||
ST.filereader();
|
ST.filereader();
|
||||||
ST.ace();
|
ST.codemirror_init();
|
||||||
|
ST.ace_init();
|
||||||
};
|
};
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
|
@ -16,7 +16,12 @@ $this->carabiner->js('jquery.timers.js');
|
|||||||
$this->carabiner->js('crypto-js/rollups/aes.js');
|
$this->carabiner->js('crypto-js/rollups/aes.js');
|
||||||
$this->carabiner->js('lz-string-1.3.3-min.js');
|
$this->carabiner->js('lz-string-1.3.3-min.js');
|
||||||
$this->carabiner->js('filereader.js');
|
$this->carabiner->js('filereader.js');
|
||||||
$this->carabiner->js('ace/ace.js');
|
if(config_item('js_editor') == 'codemirror') {
|
||||||
|
$this->carabiner->js('codemirror/codemirror.js');
|
||||||
|
}
|
||||||
|
if(config_item('js_editor') == 'ace') {
|
||||||
|
$this->carabiner->js('ace/ace.js');
|
||||||
|
}
|
||||||
$this->carabiner->js('stikked.js');
|
$this->carabiner->js('stikked.js');
|
||||||
|
|
||||||
$this->carabiner->display('js');
|
$this->carabiner->display('js');
|
||||||
|
@ -10,7 +10,12 @@ $this->carabiner->js('jquery.timers.js');
|
|||||||
$this->carabiner->js('crypto-js/rollups/aes.js');
|
$this->carabiner->js('crypto-js/rollups/aes.js');
|
||||||
$this->carabiner->js('lz-string-1.3.3-min.js');
|
$this->carabiner->js('lz-string-1.3.3-min.js');
|
||||||
$this->carabiner->js('filereader.js');
|
$this->carabiner->js('filereader.js');
|
||||||
$this->carabiner->js('ace/ace.js');
|
if(config_item('js_editor') == 'codemirror') {
|
||||||
|
$this->carabiner->js('codemirror/codemirror.js');
|
||||||
|
}
|
||||||
|
if(config_item('js_editor') == 'ace') {
|
||||||
|
$this->carabiner->js('ace/ace.js');
|
||||||
|
}
|
||||||
$this->carabiner->js('stikked.js');
|
$this->carabiner->js('stikked.js');
|
||||||
|
|
||||||
$this->carabiner->display('js');
|
$this->carabiner->display('js');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user