Contains the 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.

Constructors

Creates a new Selection object. ...

Creates a new Selection object.

   

Arguments

sessionEditSessionRequired. The session to use

Methods

    • Selection.addRange(Range range, Boolean $blockChangeEvents)

Adds a range to a selection by entering multiselect mode, if necessary. ...

Adds a range to a selection by entering multiselect mode, if necessary.

   

Arguments

rangeRangeRequired. The new range to add
$blockChangeEventsBooleanRequired. Whether or not to block changing events
    • Selection.clearSelection()

[Empties the selection (by de-selecting it). This function also emits the 'changeSelection' event.]{: #Selection.c...

Empties the selection (by de-selecting it). This function also emits the 'changeSelection' event.

   

    • Selection.getCursor()

Gets the current position of the cursor. ...

Gets the current position of the cursor.

   

    • Selection.getRange()

Returns the Range for the selected text.

Returns the Range for the selected text.

   

Returns an object containing the row and column of the calling selection anchor. ...

Returns an object containing the row and column of the calling selection anchor.

   

    • Selection.getSelectionLead()

Returns an object containing the row and column of the calling selection lead. ...

Returns an object containing the row and column of the calling selection lead.

   

Returns true if the selection is going backwards in the document. ...

Returns true if the selection is going backwards in the document.

   

Returns true if the selection is empty. ...

Returns true if the selection is empty.

   

Returns true if the selection is a multi-line. ...

Returns true if the selection is a multi-line.

   

    • Selection.mergeOverlappingRanges()

Merges overlapping ranges ensuring consistency after changes ...

Merges overlapping ranges ensuring consistency after changes

   

Moves the cursor to position indicated by the parameters. Negative numbers move the cursor backwards in the document. ...

Moves the cursor to position indicated by the parameters. Negative numbers move the cursor backwards in the document.

   

Arguments

rowsNumberRequired. The number of rows to move by
charsNumberRequired. The number of characters to move by
    • Selection.moveCursorDown()

Moves the cursor down one row. ...

Moves the cursor down one row.

   

    • Selection.moveCursorFileEnd()

Moves the cursor to the end of the file. ...

Moves the cursor to the end of the file.

   

    • Selection.moveCursorFileStart()

Moves the cursor to the start of the file. ...

Moves the cursor to the start of the file.

   

    • Selection.moveCursorLeft()

Moves the cursor left one column. ...

Moves the cursor left one column.

   

    • Selection.moveCursorLineEnd()

Moves the cursor to the end of the line. ...

Moves the cursor to the end of the line.

   

    • Selection.moveCursorLineStart()

Moves the cursor to the start of the line. ...

Moves the cursor to the start of the line.

   

    • Selection.moveCursorRight()

Moves the cursor right one column. ...

Moves the cursor right one column.

   

Moves the cursor to the row and column provided. [If preventUpdateDesiredColumn is true, then the cursor stays i...

If preventUpdateDesiredColumn is true, then the cursor stays in the same column position as its original point.

   

Arguments

rowNumberRequired. The row to move to
columnNumberRequired. The column to move to
keepDesiredColumnBooleanRequired. If true, the cursor move does not respect the previous column
    • Selection.moveCursorToPosition(Object position)

Moves the selection to the position indicated by its row and column. ...

Moves the selection to the position indicated by its row and column.

   

Arguments

positionObjectRequired. The position to move to

Moves the cursor to the screen position indicated by row and column. If preventUpdateDesiredColumn is true, then the cursor stays in the same column position as its original point. ...

Moves the cursor to the screen position indicated by row and column. If preventUpdateDesiredColumn is true, then the cursor stays in the same column position as its original point.

   

Arguments

rowNumberRequired. The row to move to
columnNumberRequired. The column to move to
keepDesiredColumnBooleanRequired. If true, the cursor move does not respect the previous column
    • Selection.moveCursorUp()

Moves the cursor up one row. ...

Moves the cursor up one row.

   

    • Selection.moveCursorWordLeft()

Moves the cursor to the word on the left. ...

Moves the cursor to the word on the left.

   

    • Selection.moveCursorWordRight()

Moves the cursor to the word on the right. ...

Moves the cursor to the word on the right.

   

Gets list of ranges composing rectangular block on the screen ...

Gets list of ranges composing rectangular block on the screen

   

/ this.rectangularRangeBlock = function(screenCursor, screenAnchor, includeEmptyLines) { var rectSel = [];

   var xBackwards = screenCursor.column < screenAnchor.column;
   if (xBackwards) {
       var startColumn = screenCursor.column;
       var endColumn = screenAnchor.column;
   } else {
       var startColumn = screenAnchor.column;
       var endColumn = screenCursor.column;
   }

   var yBackwards = screenCursor.row < screenAnchor.row;
   if (yBackwards) {
       var startRow = screenCursor.row;
       var endRow = screenAnchor.row;
   } else {
       var startRow = screenAnchor.row;
       var endRow = screenCursor.row;
   }

   if (startColumn < 0)
       startColumn = 0;
   if (startRow < 0)
       startRow = 0;

   if (startRow == endRow)
       includeEmptyLines = true;

   for (var row = startRow; row <= endRow; row++) {
       var range = Range.fromPoints(
           this.session.screenToDocumentPosition(row, startColumn),
           this.session.screenToDocumentPosition(row, endColumn)
       );
       if (range.isEmpty()) {
           if (docEnd && isSamePoint(range.end, docEnd))
               break;
           var docEnd = range.end;
       }
       range.cursor = xBackwards ? range.start : range.end;
       rectSel.push(range);
   }

   if (yBackwards)
       rectSel.reverse();

   if (!includeEmptyLines) {
       var end = rectSel.length - 1;
       while (rectSel[end].isEmpty() && end > 0)
           end--;
       if (end > 0) {
           var start = 0;
           while (rectSel[start].isEmpty())
               start++;
       }
       for (var i = end; i >= start; i--) {
           if (rectSel[i].isEmpty())
               rectSel.splice(i, 1);
       }
   }

   return rectSel;

}; }).call(Selection.prototype);

// extend Editor var Editor = require("./editor").Editor; (function() {

/** extension Editor.updateSelectionMarkers()

Updates the cursor and marker layers.

Arguments

screenCursorCursorRequired. The cursor to use
screenAnchorAnchorRequired. The anchor to use
includeEmptyLinsBooleanRequired. If true, this includes ranges inside the block which are empty due to clipping

Removes a Range containing pos (if it exists). ...

Removes a Range containing pos (if it exists).

   

Arguments

posRangeRequired. The position to remove, as a {row, column} object
    • Selection.selectAll()

Selects all the text in the document. ...

Selects all the text in the document.

   

Selects a word, including its right whitespace. ...

Selects a word, including its right whitespace.

   

    • Selection.selectDown()

Moves the selection down one row. ...

Moves the selection down one row.

   

    • Selection.selectFileEnd()

Moves the selection to the end of the file. ...

Moves the selection to the end of the file.

   

    • Selection.selectFileStart()

Moves the selection to the start of the file. ...

Moves the selection to the start of the file.

   

    • Selection.selectLeft()

Moves the selection left one column. ...

Moves the selection left one column.

   

    • Selection.selectLine()

Selects the entire line. ...

Selects the entire line.

   

    • Selection.selectLineEnd()

Moves the selection to the end of the current line. ...

Moves the selection to the end of the current line.

   

    • Selection.selectLineStart()

Moves the selection to the beginning of the current line. ...

Moves the selection to the beginning of the current line.

   

    • Selection.selectRight()

Moves the selection right one column. ...

Moves the selection right one column.

   

Moves the selection cursor to the indicated row and column. ...

Moves the selection cursor to the indicated row and column.

   

Arguments

rowNumberRequired. The row to select to
columnNumberRequired. The column to select to
    • Selection.selectToPosition(Object pos)

Moves the selection cursor to the row and column indicated by pos. ...

Moves the selection cursor to the row and column indicated by pos.

   

Arguments

posObjectRequired. An object containing the row and column
    • Selection.selectUp()

Moves the selection up one row. ...

Moves the selection up one row.

   

Moves the selection to highlight the entire word. ...

Moves the selection to highlight the entire word.

   

    • Selection.selectWordLeft()

Moves the selection to the first word on the left. ...

Moves the selection to the first word on the left.

   

    • Selection.selectWordRight()

Moves the selection to the first word on the right. ...

Moves the selection to the first word on the right.

   

Sets the row and column position of the anchor. This function also emits the 'changeSelection' event. ...

Sets the row and column position of the anchor. This function also emits the 'changeSelection' event.

   

Arguments

rowNumberRequired. The new row
columnNumberRequired. The new column

Sets the selection to the provided range. ...

Sets the selection to the provided range.

   

Arguments

rangeRangeRequired. The range of text to select
reverseBooleanRequired. Indicates if the range should go backwards (true) or not
    • Selection.shiftSelection(Number columns)

Shifts the selection up (or down, if isBackwards is true) the given number of columns. ...

Shifts the selection up (or down, if isBackwards is true) the given number of columns.

   

Arguments

columnsNumberRequired. The number of columns to shift by