Merge branch 'master' of github.com:ajaxorg/ace

Conflicts:
	build/demo/kitchen-sink/kitchen-sink.js
	build/kitchen-sink.html
	build/src/ace.js
	build/textarea/src/ace.js
This commit is contained in:
Fabian Jakobs 2011-11-25 16:22:22 +01:00
commit 2b4351ccd7
6 changed files with 148 additions and 64 deletions

View file

@ -6591,6 +6591,17 @@ var EditSession = function(text, mode) {
return new Range(row, start, row, end);
};
// Gets the range of a word including its right whitespace
this.getAWordRange = function(row, column) {
var wordRange = this.getWordRange(row, column);
var line = this.getLine(wordRange.end.row);
while (line.charAt(wordRange.end.column).match(/[ \t]/)) {
wordRange.end.column += 1;
}
return wordRange;
};
this.setNewLineMode = function(newLineMode) {
this.doc.setNewLineMode(newLineMode);
};
@ -7849,11 +7860,11 @@ var Range = require("./range").Range;
/**
* Keeps cursor position and the text selection of an edit session.
*
*
* The row/columns used in the selection are in document coordinates
* representing ths coordinates as thez appear in the document
* before applying soft wrap and folding.
*/
*/
var Selection = function(session) {
this.session = session;
this.doc = session.getDocument();
@ -7927,7 +7938,7 @@ var Selection = function(session) {
};
var anchor = this.getSelectionAnchor();
var lead = this.getSelectionLead();
var lead = this.getSelectionLead();
var isBackwards = this.isBackwards();
@ -8057,6 +8068,13 @@ var Selection = function(session) {
this.setSelectionRange(range);
};
// Selects a word including its right whitespace
this.selectAWord = function() {
var cursor = this.getCursor();
var range = this.session.getAWordRange(cursor.row, cursor.column);
this.setSelectionRange(range);
};
this.selectLine = function() {
var rowStart = this.selectionLead.row;
var rowEnd;
@ -8244,10 +8262,10 @@ var Selection = function(session) {
this.selectionLead.row,
this.selectionLead.column
);
var screenCol = (chars === 0 && this.$desiredColumn) || screenPos.column;
var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenCol);
// move the cursor and update the desired column
this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);
};
@ -8263,11 +8281,11 @@ var Selection = function(session) {
row = fold.start.row;
column = fold.start.column;
}
this.$preventUpdateDesiredColumnOnChange = true;
this.selectionLead.setPosition(row, column);
this.$preventUpdateDesiredColumnOnChange = false;
if (!preventUpdateDesiredColumn)
this.$updateDesiredColumn(this.selectionLead.column);
};

View file

@ -5731,6 +5731,17 @@ var EditSession = function(text, mode) {
return new Range(row, start, row, end);
};
// Gets the range of a word including its right whitespace
this.getAWordRange = function(row, column) {
var wordRange = this.getWordRange(row, column);
var line = this.getLine(wordRange.end.row);
while (line.charAt(wordRange.end.column).match(/[ \t]/)) {
wordRange.end.column += 1;
}
return wordRange;
};
this.setNewLineMode = function(newLineMode) {
this.doc.setNewLineMode(newLineMode);
};
@ -6989,11 +7000,11 @@ var Range = require("./range").Range;
/**
* Keeps cursor position and the text selection of an edit session.
*
*
* The row/columns used in the selection are in document coordinates
* representing ths coordinates as thez appear in the document
* before applying soft wrap and folding.
*/
*/
var Selection = function(session) {
this.session = session;
this.doc = session.getDocument();
@ -7067,7 +7078,7 @@ var Selection = function(session) {
};
var anchor = this.getSelectionAnchor();
var lead = this.getSelectionLead();
var lead = this.getSelectionLead();
var isBackwards = this.isBackwards();
@ -7197,6 +7208,13 @@ var Selection = function(session) {
this.setSelectionRange(range);
};
// Selects a word including its right whitespace
this.selectAWord = function() {
var cursor = this.getCursor();
var range = this.session.getAWordRange(cursor.row, cursor.column);
this.setSelectionRange(range);
};
this.selectLine = function() {
var rowStart = this.selectionLead.row;
var rowEnd;
@ -7384,10 +7402,10 @@ var Selection = function(session) {
this.selectionLead.row,
this.selectionLead.column
);
var screenCol = (chars === 0 && this.$desiredColumn) || screenPos.column;
var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenCol);
// move the cursor and update the desired column
this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);
};
@ -7403,11 +7421,11 @@ var Selection = function(session) {
row = fold.start.row;
column = fold.start.column;
}
this.$preventUpdateDesiredColumnOnChange = true;
this.selectionLead.setPosition(row, column);
this.$preventUpdateDesiredColumnOnChange = false;
if (!preventUpdateDesiredColumn)
this.$updateDesiredColumn(this.selectionLead.column);
};

View file

@ -5685,6 +5685,17 @@ var EditSession = function(text, mode) {
return new Range(row, start, row, end);
};
// Gets the range of a word including its right whitespace
this.getAWordRange = function(row, column) {
var wordRange = this.getWordRange(row, column);
var line = this.getLine(wordRange.end.row);
while (line.charAt(wordRange.end.column).match(/[ \t]/)) {
wordRange.end.column += 1;
}
return wordRange;
};
this.setNewLineMode = function(newLineMode) {
this.doc.setNewLineMode(newLineMode);
};
@ -6943,11 +6954,11 @@ var Range = require("./range").Range;
/**
* Keeps cursor position and the text selection of an edit session.
*
*
* The row/columns used in the selection are in document coordinates
* representing ths coordinates as thez appear in the document
* before applying soft wrap and folding.
*/
*/
var Selection = function(session) {
this.session = session;
this.doc = session.getDocument();
@ -7021,7 +7032,7 @@ var Selection = function(session) {
};
var anchor = this.getSelectionAnchor();
var lead = this.getSelectionLead();
var lead = this.getSelectionLead();
var isBackwards = this.isBackwards();
@ -7151,6 +7162,13 @@ var Selection = function(session) {
this.setSelectionRange(range);
};
// Selects a word including its right whitespace
this.selectAWord = function() {
var cursor = this.getCursor();
var range = this.session.getAWordRange(cursor.row, cursor.column);
this.setSelectionRange(range);
};
this.selectLine = function() {
var rowStart = this.selectionLead.row;
var rowEnd;
@ -7338,10 +7356,10 @@ var Selection = function(session) {
this.selectionLead.row,
this.selectionLead.column
);
var screenCol = (chars === 0 && this.$desiredColumn) || screenPos.column;
var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenCol);
// move the cursor and update the desired column
this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);
};
@ -7357,11 +7375,11 @@ var Selection = function(session) {
row = fold.start.row;
column = fold.start.column;
}
this.$preventUpdateDesiredColumnOnChange = true;
this.selectionLead.setPosition(row, column);
this.$preventUpdateDesiredColumnOnChange = false;
if (!preventUpdateDesiredColumn)
this.$updateDesiredColumn(this.selectionLead.column);
};