This commit is contained in:
Fabian Jakobs 2011-12-19 15:15:17 +01:00
commit 65c0bd1213
28 changed files with 78 additions and 136 deletions

View file

@ -36,40 +36,42 @@
* ***** END LICENSE BLOCK ***** */
define(function(require, exports, module) {
"use strict";
require("./lib/fixoldbrowsers");
require("./lib/fixoldbrowsers");
var Dom = require("./lib/dom");
var Event = require("./lib/event");
var Dom = require("./lib/dom");
var Event = require("./lib/event");
var Editor = require("./editor").Editor;
var EditSession = require("./edit_session").EditSession;
var UndoManager = require("./undomanager").UndoManager;
var Renderer = require("./virtual_renderer").VirtualRenderer;
var Editor = require("./editor").Editor;
var EditSession = require("./edit_session").EditSession;
var UndoManager = require("./undomanager").UndoManager;
var Renderer = require("./virtual_renderer").VirtualRenderer;
exports.edit = function(el) {
if (typeof(el) == "string") {
el = document.getElementById(el);
}
exports.edit = function(el) {
if (typeof(el) == "string") {
el = document.getElementById(el);
}
var doc = new EditSession(Dom.getInnerText(el));
doc.setUndoManager(new UndoManager());
el.innerHTML = '';
var doc = new EditSession(Dom.getInnerText(el));
doc.setUndoManager(new UndoManager());
el.innerHTML = '';
var editor = new Editor(new Renderer(el, require("./theme/textmate")));
editor.setSession(doc);
var editor = new Editor(new Renderer(el, require("./theme/textmate")));
editor.setSession(doc);
var env = {};
env.document = doc;
env.editor = editor;
var env = {};
env.document = doc;
env.editor = editor;
editor.resize();
Event.addListener(window, "resize", function() {
editor.resize();
Event.addListener(window, "resize", function() {
editor.resize();
});
el.env = env;
// Store env on editor such that it can be accessed later on from
// the returned object.
editor.env = env;
return editor;
};
});
el.env = env;
// Store env on editor such that it can be accessed later on from
// the returned object.
editor.env = env;
return editor;
};
});

View file

@ -285,8 +285,7 @@ module.exports = {
},
"test: documentToScreen with soft wrap and multibyte characters": function() {
session = new EditSession(["ぁぁa"]);
var session = new EditSession(["ぁぁa"]);
session.setUseWrapMode(true);
session.setWrapLimitRange(2, 2);
session.adjustWrapLimit(80);
@ -342,7 +341,7 @@ module.exports = {
},
"test: screenToDocument with soft wrap and multi byte characters": function() {
session = new EditSession(["ぁ a"]);
var session = new EditSession(["ぁ a"]);
session.setUseWrapMode(true);
session.adjustWrapLimit(80);
@ -374,9 +373,6 @@ module.exports = {
},
"test: wrapLine split function" : function() {
var splits;
var c = 0;
function computeAndAssert(line, assertEqual, wrapLimit, tabSize) {
wrapLimit = wrapLimit || 12;
tabSize = tabSize || 4;
@ -618,9 +614,9 @@ module.exports = {
},
"test getFoldsInRange()": function() {
var session = createFoldTestSession(),
foldLines = session.$foldData;
folds = foldLines[0].folds.concat(foldLines[1].folds);
var session = createFoldTestSession();
var foldLines = session.$foldData;
var folds = foldLines[0].folds.concat(foldLines[1].folds);
function test(startRow, startColumn, endColumn, endRow, folds) {
var r = new Range(startRow, startColumn, endColumn, endRow);

View file

@ -46,7 +46,6 @@ define(function(require, exports, module) {
var EditSession = require("./edit_session").EditSession;
var Editor = require("./editor").Editor;
var MockRenderer = require("./test/mockrenderer").MockRenderer;
var TextMode = require("./mode/text").Mode;
var assert = require("./test/assertions");
var lipsum = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. " +

View file

@ -44,7 +44,7 @@ exports.inherits = (function() {
ctor.super_ = superCtor.prototype;
ctor.prototype = new tempCtor();
ctor.prototype.constructor = ctor;
}
};
}());
exports.mixin = function(obj, mixin) {

View file

@ -1,14 +1,16 @@
/**
* Based on code from:
*
* XRegExp 1.5.0
* (c) 2007-2010 Steven Levithan
* MIT License
* <http://xregexp.com>
* Provides an augmented, extensible, cross-browser implementation of regular expressions,
* including support for additional syntax, flags, and methods
*/
define(function(require, exports, module) {
// Based on code from:
//
// XRegExp 1.5.0
// (c) 2007-2010 Steven Levithan
// MIT License
// <http://xregexp.com>
// Provides an augmented, extensible, cross-browser implementation of regular expressions,
// including support for additional syntax, flags, and methods
//---------------------------------
// Private variables
//---------------------------------

View file

@ -39,7 +39,6 @@ define(function(require, exports, module) {
var os = (navigator.platform.match(/mac|win|linux/i) || ["other"])[0].toLowerCase();
var ua = navigator.userAgent;
var av = navigator.appVersion;
/** Is the user using a browser that identifies itself as Windows */
exports.isWin = (os == "win");
@ -60,7 +59,7 @@ exports.isOldIE = exports.isIE && exports.isIE < 9;
exports.isGecko = exports.isMozilla = window.controllers && window.navigator.product === "Gecko";
/** oldGecko == rev < 2.0 **/
exports.isOldGecko = exports.isGecko && parseInt((navigator.userAgent.match(/rv\:(\d+)/)||[])[1]) < 4;
exports.isOldGecko = exports.isGecko && parseInt((navigator.userAgent.match(/rv\:(\d+)/)||[])[1], 10) < 4;
/** Is this Opera */
exports.isOpera = window.opera && Object.prototype.toString.call(window.opera) == "[object Opera]";
@ -84,9 +83,9 @@ exports.isTouchPad = ua.indexOf("TouchPad") >= 0;
* Windows folks expect to use CTRL + C
*/
exports.OS = {
LINUX: 'LINUX',
MAC: 'MAC',
WINDOWS: 'WINDOWS'
LINUX: "LINUX",
MAC: "MAC",
WINDOWS: "WINDOWS"
};
/**
@ -94,11 +93,11 @@ exports.OS = {
*/
exports.getOS = function() {
if (exports.isMac) {
return exports.OS['MAC'];
return exports.OS.MAC;
} else if (exports.isLinux) {
return exports.OS['LINUX'];
return exports.OS.LINUX;
} else {
return exports.OS['WINDOWS'];
return exports.OS.WINDOWS;
}
};

View file

@ -53,7 +53,7 @@ oop.inherits(Worker, Mirror);
this.onUpdate = function() {
var value = this.doc.getValue();
result = CSSLint.verify(value);
var result = CSSLint.verify(value);
this.sender.emit("csslint", result.messages.map(function(msg) {
delete msg.rule;
return msg;

View file

@ -39,7 +39,6 @@
define(function(require, exports, module) {
var oop = require("../lib/oop");
var lang = require("../lib/lang");
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var JsonHighlightRules = function() {

View file

@ -12,12 +12,10 @@ var Mode = function()
};
oop.inherits(Mode, TextMode);
(function()
{
(function() {
this.toggleCommentLines = function(state, doc, startRow, endRow) {
// This code is adapted from ruby.js
var outdent = true;
var outentedRows = [];
// LaTeX comments begin with % and go to the end of the line
var commentRegEx = /^(\s*)\%/;

View file

@ -3,8 +3,7 @@ define(function(require, exports, module) {
var oop = require("../lib/oop");
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var LatexHighlightRules = function()
{
var LatexHighlightRules = function() {
this.$rules = {
"start" : [{
// A tex command e.g. \foo

View file

@ -42,7 +42,6 @@ var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var Tokenizer = require("../tokenizer").Tokenizer;
var LuaHighlightRules = require("./lua_highlight_rules").LuaHighlightRules;
var Range = require("../range").Range;
var Mode = function() {
this.$tokenizer = new Tokenizer(new LuaHighlightRules().getRules());
@ -55,7 +54,6 @@ oop.inherits(Mode, TextMode);
var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
var tokens = tokenizedLine.tokens;
var endState = tokenizedLine.state;
var chunks = ["function", "then", "do", "repeat"];
@ -79,39 +77,6 @@ oop.inherits(Mode, TextMode);
return indent;
};
/*this.checkOutdent = function(state, line, input) {
if (input !== "\r\n" && input !== "\r" && input !== "\n")
return false;
var tokens = this.$tokenizer.getLineTokens(line.trim(), state).tokens;
if (!tokens)
return false;
// ignore trailing comments
do {
var last = tokens.pop();
} while (last && (last.type == "comment" || (last.type == "text" && last.value.match(/^\s+$/))));
if (!last)
return false;
var outdents = {
"end" : 1,
"until" : 1,
"else" : 1
}
return (last.type == "keyword" && outdents[last.value]);
};
this.autoOutdent = function(state, doc, row) {
console.log(doc, row);
var indent = this.$getIndent(doc.getLine(row));
var tab = doc.getTabString();
if (indent.slice(-tab.length) == tab)
doc.remove(new Range(row, indent.length-tab.length, row, indent.length));
};*/
}).call(Mode.prototype);
exports.Mode = Mode;

View file

@ -47,7 +47,6 @@ var XmlMode = require("./xml").Mode;
var HtmlMode = require("./html").Mode;
var Tokenizer = require("../tokenizer").Tokenizer;
var MarkdownHighlightRules = require("./markdown_highlight_rules").MarkdownHighlightRules;
var Range = require("../range").Range;
var Mode = function() {
var highlighter = new MarkdownHighlightRules();

View file

@ -46,11 +46,11 @@ var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules;
var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules;
function github_embed(tag, prefix) {
return { // Github style block
token : "support.function",
regex : "^```" + tag + "\\s*$",
next : prefix + "start"
}
return { // Github style block
token : "support.function",
regex : "^```" + tag + "\\s*$",
next : prefix + "start"
};
}
var MarkdownHighlightRules = function() {

View file

@ -2,7 +2,6 @@ define(function(require, exports, module) {
var oop = require("../lib/oop");
var lang = require("../lib/lang");
var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules;
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var PowershellHighlightRules = function() {

View file

@ -55,7 +55,6 @@ oop.inherits(Mode, TextMode);
this.toggleCommentLines = function(state, doc, startRow, endRow) {
var outdent = true;
var outentedRows = [];
var re = /^(\s*)#/;
for (var i=startRow; i<= endRow; i++) {
@ -87,7 +86,6 @@ oop.inherits(Mode, TextMode);
var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
var tokens = tokenizedLine.tokens;
var endState = tokenizedLine.state;
if (tokens.length && tokens[tokens.length-1].type == "comment") {
return indent;

View file

@ -16,9 +16,7 @@
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK *****
*
*/
* ***** END LICENSE BLOCK ***** */
define(function(require, exports, module) {

View file

@ -53,7 +53,7 @@ module.exports = {
"test: toggle comment lines should not do anything" : function() {
var session = new EditSession([" abc", "cde", "fg"]);
var comment = this.mode.toggleCommentLines("start", session, 0, 1);
this.mode.toggleCommentLines("start", session, 0, 1);
assert.equal([" abc", "cde", "fg"].join("\n"), session.toString());
},

View file

@ -42,19 +42,15 @@ var TextMode = require("./text").Mode;
var Tokenizer = require("../tokenizer").Tokenizer;
var TextileHighlightRules = require("./textile_highlight_rules").TextileHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
var Range = require("../range").Range;
var Mode = function()
{
var Mode = function() {
this.$tokenizer = new Tokenizer(new TextileHighlightRules().getRules());
this.$outdent = new MatchingBraceOutdent();
};
oop.inherits(Mode, TextMode);
(function()
{
this.getNextLineIndent = function(state, line, tab)
{
(function() {
this.getNextLineIndent = function(state, line, tab) {
if (state == "intag")
return tab;

View file

@ -44,7 +44,6 @@ var TextileHighlightRules = function() {
this.$rules = {
"start" : [
{
token : "keyword", // start of block
token : function(value) {
if (value.match(/^h\d$/))
return "markup.heading." + value.charAt(1);

View file

@ -54,7 +54,6 @@ oop.inherits(Mode, TextMode);
(function() {
this.getNextLineIndent = function(state, line, tab) {
return this.$getIndent(line);
};

View file

@ -36,15 +36,15 @@
* ***** END LICENSE BLOCK ***** */
define(function(require, exports, module) {
var lang = require("../lib/lang");
var formTags = lang.arrayToMap(
("button|form|input|label|select|textarea").split("|")
);
var tableTags = lang.arrayToMap(
("table|tbody|td|tfoot|th|tr").split("|")
);
var lang = require("../lib/lang");
var formTags = lang.arrayToMap(
("button|form|input|label|select|textarea").split("|")
);
var tableTags = lang.arrayToMap(
("table|tbody|td|tfoot|th|tr").split("|")
);
function string(state) {
return [{

View file

@ -39,7 +39,6 @@
define(function(require, exports, module) {
var oop = require("ace/lib/oop");
var lang = require("ace/lib/lang");
var EventEmitter = require("ace/lib/event_emitter").EventEmitter;
var Editor = exports.Editor = function() {

View file

@ -168,7 +168,7 @@ module.exports = {
assert.position(selection.getCursor(), 0, 0);
},
"test: moveCursor word left" : function() {
"test: moveCursor word left with umlauts" : function() {
var session = new EditSession(" Fuß Füße");
var selection = session.getSelection();

View file

@ -3,7 +3,6 @@ define(function(require, exports, module) {
require("ace/lib/fixoldbrowsers");
var AsyncTest = require("asyncjs").test;
var async = require("asyncjs");
var dom = require("ace/lib/dom");
var passed = 0
var failed = 0

View file

@ -51,7 +51,7 @@ assert.range = function(range, startRow, startColumn, endRow, endColumn) {
assert.notOk = function(value) {
assert.equal(value, false);
}
};
exports.jsonEquals = function(foundJson, expectedJson) {
assert.equal(JSON.stringify(foundJson), JSON.stringify(expectedJson));

View file

@ -41,7 +41,6 @@ if (typeof process !== "undefined") {
define(function(require, exports, module) {
var assert = require("../test/assertions");
var EditSession = require("../edit_session").EditSession;
module.exports = {

View file

@ -37,7 +37,6 @@
define(function(require, exports, module) {
exports.cssClass = "ace-chrome";
exports.cssText = ".ace-chrome .ace_editor {\
border: 2px solid rgb(159, 159, 159);\

View file

@ -42,7 +42,6 @@ define(function(require, exports, module) {
var oop = require("./lib/oop");
var dom = require("./lib/dom");
var event = require("./lib/event");
var useragent = require("./lib/useragent");
var GutterLayer = require("./layer/gutter").Gutter;
var MarkerLayer = require("./layer/marker").Marker;