Merge remote-tracking branch 'remotes/upstream/master'

Conflicts:
	demo/kitchen-sink/demo.js
This commit is contained in:
nightwing 2012-03-31 00:06:11 +04:00
commit b546875c1d
288 changed files with 56230 additions and 22271 deletions

View file

@ -41,9 +41,9 @@
define(function(require, exports, module) {
require("ace/lib/fixoldbrowsers");
require("ace/config").init();
var env = {};
var net = require("ace/lib/net");
var event = require("ace/lib/event");
var theme = require("ace/theme/textmate");
var EditSession = require("ace/edit_session").EditSession;
@ -65,6 +65,7 @@ var Doc = function(name, desc, file) {
this.desc = desc;
this.doc = new EditSession(file);
this.doc.setMode(modesByName[name].mode);
this.doc.modeName = name;
this.doc.setUndoManager(new UndoManager());
};
@ -75,13 +76,10 @@ var WrappedDoc = function(name, desc, file) {
this.doc.setWrapLimitRange(80, 80);
};
var Mode = function(name, desc, clazz, extensions) {
var Mode = function(name, desc, extensions) {
this.name = name;
this.desc = desc;
this.clazz = clazz;
this.mode = new clazz();
this.mode.name = name;
this.mode = "ace/mode/" + name;
this.extRe = new RegExp("^.*\\.(" + extensions.join("|") + ")$", "g");
};
@ -89,48 +87,38 @@ Mode.prototype.supportsFile = function(filename) {
return filename.match(this.extRe);
};
var themes = {};
function loadTheme(name, callback) {
if (themes[name])
return callback();
themes[name] = 1;
var base = name.split("/").pop();
var fileName = "demo/kitchen-sink/theme-" + base + "-uncompressed.js";
net.loadScript(fileName, callback);
}
//{
var modes = [
new Mode("c_cpp", "C/C++", require("ace/mode/c_cpp").Mode, ["c", "cpp", "cxx", "h", "hpp"]),
new Mode("clojure", "Clojure", require("ace/mode/clojure").Mode, ["clj"]),
new Mode("coffee", "CoffeeScript", require("ace/mode/coffee").Mode, ["coffee"]),
new Mode("coldfusion", "ColdFusion", require("ace/mode/coldfusion").Mode, ["cfm"]),
new Mode("csharp", "C#", require("ace/mode/csharp").Mode, ["cs"]),
new Mode("css", "CSS", require("ace/mode/css").Mode, ["css"]),
new Mode("groovy", "Groovy", require("ace/mode/groovy").Mode, ["groovy"]),
new Mode("haxe", "haXe", require("ace/mode/haxe").Mode, ["hx"]),
new Mode("html", "HTML", require("ace/mode/html").Mode, ["html", "htm"]),
new Mode("java", "Java", require("ace/mode/java").Mode, ["java"]),
new Mode("javascript", "JavaScript", require("ace/mode/javascript").Mode, ["js"]),
new Mode("json", "JSON", require("ace/mode/json").Mode, ["json"]),
new Mode("latex", "LaTeX", require("ace/mode/latex").Mode, ["tex"]),
new Mode("lua", "Lua", require("ace/mode/lua").Mode, ["lua"]),
new Mode("markdown", "Markdown", require("ace/mode/markdown").Mode, ["md", "markdown"]),
new Mode("ocaml", "OCaml", require("ace/mode/ocaml").Mode, ["ml", "mli"]),
new Mode("perl", "Perl", require("ace/mode/perl").Mode, ["pl", "pm"]),
new Mode("pgsql", "pgSQL",require("ace/mode/pgsql").Mode, ["pgsql", "sql"]),
new Mode("php", "PHP",require("ace/mode/php").Mode, ["php"]),
new Mode("powershell", "Powershell", require("ace/mode/powershell").Mode, ["ps1"]),
new Mode("python", "Python", require("ace/mode/python").Mode, ["py"]),
new Mode("scala", "Scala", require("ace/mode/scala").Mode, ["scala"]),
new Mode("scss", "SCSS", require("ace/mode/scss").Mode, ["scss"]),
new Mode("ruby", "Ruby", require("ace/mode/ruby").Mode, ["rb"]),
new Mode("sql", "SQL", require("ace/mode/sql").Mode, ["sql"]),
new Mode("svg", "SVG", require("ace/mode/SVG").Mode, ["svg"]),
new Mode("text", "Text", require("ace/mode/text").Mode, ["txt"]),
new Mode("textile", "Textile", require("ace/mode/textile").Mode, ["textile"]),
new Mode("xml", "XML", require("ace/mode/xml").Mode, ["xml"])
new Mode("c_cpp", "C/C++", ["c", "cpp", "cxx", "h", "hpp"]),
new Mode("clojure", "Clojure", ["clj"]),
new Mode("coffee", "CoffeeScript", ["coffee"]),
new Mode("coldfusion", "ColdFusion", ["cfm"]),
new Mode("csharp", "C#", ["cs"]),
new Mode("css", "CSS", ["css"]),
new Mode("groovy", "Groovy", ["groovy"]),
new Mode("haxe", "haXe", ["hx"]),
new Mode("html", "HTML", ["html", "htm"]),
new Mode("java", "Java", ["java"]),
new Mode("javascript", "JavaScript", ["js"]),
new Mode("json", "JSON", ["json"]),
new Mode("latex", "LaTeX", ["tex"]),
new Mode("lua", "Lua", ["lua"]),
new Mode("markdown", "Markdown", ["md", "markdown"]),
new Mode("ocaml", "OCaml", ["ml", "mli"]),
new Mode("perl", "Perl", ["pl", "pm"]),
new Mode("pgsql", "pgSQL", ["pgsql", "sql"]),
new Mode("php", "PHP", ["php"]),
new Mode("powershell", "Powershell", ["ps1"]),
new Mode("python", "Python", ["py"]),
new Mode("scala", "Scala", ["scala"]),
new Mode("scss", "SCSS", ["scss"]),
new Mode("ruby", "Ruby", ["rb"]),
new Mode("sql", "SQL", ["sql"]),
new Mode("svg", "SVG", ["svg"]),
new Mode("text", "Text", ["txt"]),
new Mode("textile", "Textile", ["textile"]),
new Mode("xml", "XML", ["xml"]),
new Mode("sh", "SH", ["sh"])
];
modesByName = {};
@ -237,6 +225,10 @@ var docs = [
"haxe", "haXe",
require("ace/requirejs/text!./docs/Haxe.hx")
),
new Doc(
"sh", "SH",
require("ace/requirejs/text!./docs/sh.sh")
),
new WrappedDoc(
"markdown", "Markdown",
require("ace/requirejs/text!./docs/markdown.md")
@ -325,6 +317,11 @@ modes.forEach(function(mode) {
modeEl.appendChild(option);
});
bindDropdown("mode", function(value) {
env.editor.getSession().setMode(modesByName[value].mode || modesByName.text.mode);
env.editor.getSession().modeName = value;
});
bindDropdown("doc", function(value) {
var doc = docsByName[value].doc;
var session = env.split.setSession(doc);
@ -335,11 +332,6 @@ bindDropdown("doc", function(value) {
env.editor.focus();
});
bindDropdown("mode", function(value) {
env.editor.getSession().setMode(modesByName[value].mode || modesByName.text.mode);
});
function updateUIEditorOptions() {
var editor = env.editor;
var session = editor.session;
@ -347,7 +339,7 @@ function updateUIEditorOptions() {
session.setFoldStyle(foldingEl.value);
saveOption(docEl, session.name);
saveOption(modeEl, session.getMode().name || "text");
saveOption(modeEl, session.modeName || "text");
saveOption(wrapModeEl, session.getUseWrapMode() ? session.getWrapLimitRange().min || "free" : "off");
saveOption(selectStyleEl, editor.getSelectionStyle() == "line");
@ -376,19 +368,10 @@ function saveOption(el, val) {
};
}
bindDropdown("theme", function(value) {
if (!value)
return;
if (module.packaged) {
loadTheme(value, function() {
env.editor.setTheme(value);
});
}
else {
env.editor.setTheme(value);
}
env.editor.setTheme(value);
});
bindDropdown("keybinding", function(value) {
@ -560,6 +543,7 @@ event.addListener(container, "drop", function(e) {
modeEl.value = mode.name;
env.editor.getSession().setMode(mode.mode);
env.editor.getSession().modeName = mode.name;
};
reader.readAsText(file);
}