pull/85/head
Ruben Daniels 2015-04-03 01:24:25 +00:00 zatwierdzone przez Ruben Daniels
rodzic a16ebf85cf
commit 46b1e9d862
2 zmienionych plików z 40 dodań i 11 usunięć

Wyświetl plik

@ -1168,6 +1168,13 @@ define(function(require, exports, module) {
ui.insertCss(exports.cssText, plugin);
addThemeMenu(theme.name, theme, null, plugin);
handleEmit("addTheme");
plugin.addOther(function(){
delete themes[theme.name];
handleEmit("removeTheme");
});
}
function rebuildSyntaxMenu() {
@ -1218,15 +1225,18 @@ define(function(require, exports, module) {
function defineSyntax(opts) {
if (!opts.name || !opts.caption)
throw new Error("malformed syntax definition");
var name = opts.name;
modes.byCaption[opts.caption] = opts;
modes.byName[name] = opts;
if (!opts.extensions)
opts.extensions = "";
opts.extensions.split("|").forEach(function(ext) {
modes.extensions[ext] = name;
});
updateSyntaxMenu.schedule();
}
@ -1235,9 +1245,11 @@ define(function(require, exports, module) {
var extPos = fileName.lastIndexOf(".") + 1;
if (extPos)
return fileName.substr(extPos).toLowerCase();
// special case for new files
if (/^Untitled\d+$/.test(fileName))
fileName = fileName.replace(/\d+/, "");
return "^" + fileName;
}

Wyświetl plik

@ -31,6 +31,18 @@ define(function(require, exports, module) {
if (loaded) return false;
loaded = true;
function update(){
if (!drawn) return;
var list = getThemes();
plugin.form.update({
id: "syntax",
items: list
});
}
ace.on("addTheme", update);
ace.on("removeTheme", update);
}
var drawn;
@ -38,17 +50,7 @@ define(function(require, exports, module) {
if (drawn) return;
drawn = true;
var list = [];
var themes = ace.themes
for (var base in themes) {
if (themes[base] instanceof Array)
themes[base].forEach(function (n) {
var themeprop = Object.keys(n)[0];
list.push({ caption: themeprop, value: n[themeprop] });
});
else
list.push({ caption: base, value: themes[base] });
}
var list = getThemes();
var rb1, rb2, rb3, rb4, rb5;
plugin.form.add([
@ -138,6 +140,7 @@ define(function(require, exports, module) {
title: "Syntax Theme",
type: "dropdown",
path: "user/ace/@theme",
name: "syntax",
width: 165,
onchange: function(e) {
ace.setTheme(e.value);
@ -175,6 +178,20 @@ define(function(require, exports, module) {
/***** Methods *****/
function getThemes(){
var list = [];
var themes = ace.themes
for (var base in themes) {
if (themes[base] instanceof Array)
themes[base].forEach(function (n) {
var themeprop = Object.keys(n)[0];
list.push({ caption: themeprop, value: n[themeprop] });
});
else
list.push({ caption: base, value: themes[base] });
}
return list;
}
/***** Lifecycle *****/