CoffeeScript mode

This commit is contained in:
satyr 2011-02-08 13:04:14 +08:00 • committed by Fabian Jakobs
commit 589418a83e
4 changed files with 310 additions and 2 deletions

View file

@ -46,6 +46,7 @@ exports.launch = function(env) {
var Renderer = require("ace/virtual_renderer").VirtualRenderer;
var theme = require("ace/theme/textmate");
var EditSession = require("ace/edit_session").EditSession;
var JavaScriptMode = require("ace/mode/javascript").Mode;
var CssMode = require("ace/mode/css").Mode;
var HtmlMode = require("ace/mode/html").Mode;
@ -55,6 +56,7 @@ exports.launch = function(env) {
var JavaMode = require("ace/mode/java").Mode;
var RubyMode = require("ace/mode/ruby").Mode;
var CCPPMode = require("ace/mode/c_cpp").Mode;
var CoffeeMode = require("ace/mode/coffee").Mode;
var TextMode = require("ace/mode/text").Mode;
var UndoManager = require("ace/undomanager").UndoManager;
@ -117,6 +119,10 @@ exports.launch = function(env) {
docs.c_cpp.setMode(new CCPPMode());
docs.c_cpp.setUndoManager(new UndoManager());
docs.coffee = new EditSession(document.getElementById("coffeetext").innerHTML);
docs.coffee.setMode(new CoffeeMode());
docs.coffee.setUndoManager(new UndoManager());
var container = document.getElementById("editor");
env.editor = new Editor(new Renderer(container, theme));
@ -130,7 +136,8 @@ exports.launch = function(env) {
php: new PhpMode(),
java: new JavaMode(),
ruby: new RubyMode(),
c_cpp: new CCPPMode()
c_cpp: new CCPPMode(),
coffee: new CoffeeMode()
};
function getMode() {
@ -172,6 +179,9 @@ exports.launch = function(env) {
else if (mode instanceof CCPPMode) {
modeEl.value = "c_cpp";
}
else if (mode instanceof CoffeeMode) {
modeEl.value = "coffee";
}
else {
modeEl.value = "text";
}
@ -303,6 +313,8 @@ exports.launch = function(env) {
mode = "ruby";
} else if (/^.*\.(c|cpp|h|hpp|cxx)$/i.test(file.name)) {
mode = "c_cpp";
} else if (/^.*\.coffee$/i.test(file.name)) {
mode = "coffee";
}
env.editor.onTextInput(reader.result);