1
0
mirror of https://github.com/chinchang/web-maker.git synced 2025-07-27 08:40:10 +02:00

add language support for manaco

This commit is contained in:
Kushagra Gour
2018-03-26 00:00:08 +05:30
parent ed59c6c418
commit 848db7b8d3
2 changed files with 13 additions and 4 deletions

View File

@@ -91,6 +91,8 @@ class Editor {
setOption(optionName, optionValue) { setOption(optionName, optionValue) {
if (this.mode === 'cm') { if (this.mode === 'cm') {
this.instance.setOption(optionName, optionValue); this.instance.setOption(optionName, optionValue);
} else {
this.instance.updateOptions(optionName, optionValue);
} }
} }
clearGutter(gutter) { clearGutter(gutter) {
@@ -113,6 +115,13 @@ class Editor {
this.instance.updateOptions({ fontSize: size }); this.instance.updateOptions({ fontSize: size });
} }
} }
setLanguage(language) {
if (this.mode === 'cm') {
this.instance.setOption('mode', language);
} else {
this.instance.updateOptions({ language: language });
}
}
} }
window.editor = { window.editor = {
init(mode, el, options, onChange) { init(mode, el, options, onChange) {

View File

@@ -767,7 +767,7 @@ loginModal, profileModal, profileAvatarImg, profileUserName, openItemsBtn, askTo
htmlModelLabel.textContent = modes[value].label; htmlModelLabel.textContent = modes[value].label;
// FIXME - use a better selector for the mode selectbox // FIXME - use a better selector for the mode selectbox
htmlModelLabel.parentElement.querySelector('select').value = value; htmlModelLabel.parentElement.querySelector('select').value = value;
scope.cm.html.setOption('mode', modes[value].cmMode); scope.cm.html.setLanguage(modes[value].cmMode);
CodeMirror.autoLoadMode( CodeMirror.autoLoadMode(
scope.cm.html, scope.cm.html,
modes[value].cmPath || modes[value].cmMode modes[value].cmPath || modes[value].cmMode
@@ -779,7 +779,7 @@ loginModal, profileModal, profileAvatarImg, profileUserName, openItemsBtn, askTo
cssModelLabel.textContent = modes[value].label; cssModelLabel.textContent = modes[value].label;
// FIXME - use a better selector for the mode selectbox // FIXME - use a better selector for the mode selectbox
cssModelLabel.parentElement.querySelector('select').value = value; cssModelLabel.parentElement.querySelector('select').value = value;
scope.cm.css.setOption('mode', modes[value].cmMode); scope.cm.css.setLanguage(modes[value].cmMode);
scope.cm.css.setOption('readOnly', modes[value].cmDisable); scope.cm.css.setOption('readOnly', modes[value].cmDisable);
cssSettingsBtn.classList[modes[value].hasSettings ? 'remove' : 'add']( cssSettingsBtn.classList[modes[value].hasSettings ? 'remove' : 'add'](
'hide' 'hide'
@@ -795,7 +795,7 @@ loginModal, profileModal, profileAvatarImg, profileUserName, openItemsBtn, askTo
jsModelLabel.textContent = modes[value].label; jsModelLabel.textContent = modes[value].label;
// FIXME - use a better selector for the mode selectbox // FIXME - use a better selector for the mode selectbox
jsModelLabel.parentElement.querySelector('select').value = value; jsModelLabel.parentElement.querySelector('select').value = value;
scope.cm.js.setOption('mode', modes[value].cmMode); scope.cm.js.setLanguage(modes[value].cmMode);
CodeMirror.autoLoadMode( CodeMirror.autoLoadMode(
scope.cm.js, scope.cm.js,
modes[value].cmPath || modes[value].cmMode modes[value].cmPath || modes[value].cmMode
@@ -1362,7 +1362,7 @@ loginModal, profileModal, profileAvatarImg, profileUserName, openItemsBtn, askTo
'', '',
jsCode, jsCode,
{ {
language: 'coffeescript' language: 'javascript'
}, },
scope.onChange scope.onChange
); );