Merge branch 'master' of http://github.com/ajaxorg/editor into HEAD

This commit is contained in:
Eddy Bruel 2010-10-20 15:08:53 +02:00
commit 9a8bb6cbf3
4 changed files with 26 additions and 8 deletions

View file

@ -249,10 +249,21 @@ var Document = function(text, mode) {
} }
}; };
/**
* Get a verbatim copy of the given line as it is in the document
*/
this.getLine = function(row) { this.getLine = function(row) {
return this.lines[row] || ""; return this.lines[row] || "";
}; };
/**
* Get a line as it is displayed on screen. Tabs are replaced by spaces.
*/
this.getDisplayLine = function(row) {
var tab = new Array(this.getTabSize()+1).join(" ");
return this.lines[row].replace(/\t/g, tab);
};
this.getLines = function(firstRow, lastRow) { this.getLines = function(firstRow, lastRow) {
return this.lines.slice(firstRow, lastRow+1); return this.lines.slice(firstRow, lastRow+1);
}; };

View file

@ -281,7 +281,14 @@ var Selection = function(doc) {
}; };
this.moveCursorLineStart = function() { this.moveCursorLineStart = function() {
var row = this.selectionLead.row;
var column = this.selectionLead.column;
var beforeCursor = this.doc.getDisplayLine(row).slice(0, column);
var leadingSpace = beforeCursor.match(/^\s+/);
if (!leadingSpace || leadingSpace[0].length >= column)
this.moveCursorTo(this.selectionLead.row, 0); this.moveCursorTo(this.selectionLead.row, 0);
else
this.moveCursorTo(this.selectionLead.row, leadingSpace[0].length);
}; };
this.moveCursorLineEnd = function() { this.moveCursorLineEnd = function() {

View file

@ -19,8 +19,8 @@ JavaScriptHighlightRules = function() {
var docComment = new DocCommentHighlightRules(); var docComment = new DocCommentHighlightRules();
var keywords = lang.arrayToMap( var keywords = lang.arrayToMap(
("break|case|catch|continue|default|delete|do|else|finally|for|function|\ ("break|case|catch|continue|default|delete|do|else|finally|for|function|" +
if|in|instanceof|new|return|switch|throw|try|typeof|var|while|with").split("|") "if|in|instanceof|new|return|switch|throw|try|typeof|var|while|with").split("|")
); );
var buildinConstants = lang.arrayToMap( var buildinConstants = lang.arrayToMap(
@ -28,8 +28,8 @@ JavaScriptHighlightRules = function() {
); );
var futureReserved = lang.arrayToMap( var futureReserved = lang.arrayToMap(
("class|enum|extends|super|const|export|import|implements|let|private|\ ("class|enum|extends|super|const|export|import|implements|let|private|" +
public|yield|interface|package|protected|static").split("|") "public|yield|interface|package|protected|static").split("|")
); );
// regexp must not have capturing parentheses. Use (?:) instead. // regexp must not have capturing parentheses. Use (?:) instead.

View file

@ -1,7 +1,7 @@
.ace-tm .ace_editor { .ace-tm .ace_editor {
border: 2px solid rgb(159, 159, 159); border: 2px solid rgb(159, 159, 159);
font-family: "Menlo", "Monaco", "Courier New", "Courier", monospace; font-family: "Menlo", "Monaco", "Courier New", "Courier", monospace;
font-size: 12px; font-size: 11px;
} }
.ace-tm .ace_editor.ace_focus { .ace-tm .ace_editor.ace_focus {
@ -12,8 +12,8 @@
width: 50px; width: 50px;
background: #e8e8e8; background: #e8e8e8;
color: #333; color: #333;
font-family: Menlo, Monaco, "Courier New"; font-family: "Menlo", "Monaco", "Courier New", monospace;
font-size: 12px; font-size: 11px;
overflow : hidden; overflow : hidden;
} }