diff --git a/lib/ace/selection.js b/lib/ace/selection.js index 8f6e3143..39de5281 100644 --- a/lib/ace/selection.js +++ b/lib/ace/selection.js @@ -525,8 +525,8 @@ var Selection = function(session) { // Determ the line var beforeCursor = this.session.getDisplayLine( - row, null, - firstColumnPosition.row, firstColumnPosition.column + row, null, firstColumnPosition.row, + firstColumnPosition.column ); var leadingSpace = beforeCursor.match(/^\s*/); @@ -550,12 +550,17 @@ var Selection = function(session) { **/ this.moveCursorLineEnd = function() { var lead = this.lead; - var lastRowColumnPosition = - this.session.getDocumentLastRowColumnPosition(lead.row, lead.column); - this.moveCursorTo( - lastRowColumnPosition.row, - lastRowColumnPosition.column - ); + var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column); + if (this.lead.column == lineEnd.column) { + var line = this.session.getLine(lineEnd.row); + if (lineEnd.column == line.length) { + var textEnd = line.search(/\s+$/); + if (textEnd > 0) + lineEnd.column = textEnd; + } + } + + this.moveCursorTo(lineEnd.row, lineEnd.column); }; /**