mirror of
https://github.com/atom/atom.git
synced 2026-01-23 13:58:08 -05:00
Triple click selects line under cursor
This commit is contained in:
@@ -291,9 +291,36 @@ describe "Editor", ->
|
||||
expect(editor.getCursorPosition()).toEqual(row: 0, column: 0)
|
||||
[pageX, pageY] = window.pixelPositionForPoint(editor, [0, 8])
|
||||
editor.lines.trigger mousedownEvent({pageX, pageY, originalEvent: {detail: 1}})
|
||||
$(document).trigger 'mouseup'
|
||||
editor.lines.trigger mousedownEvent({pageX, pageY, originalEvent: {detail: 2}})
|
||||
expect(editor.getSelectedText()).toBe "quicksort"
|
||||
|
||||
describe "when it is clicked more then twice (tripple, quadruple, etc...)", ->
|
||||
it "selects the line under the cursor", ->
|
||||
expect(editor.getCursorPosition()).toEqual(row: 0, column: 0)
|
||||
|
||||
# Triple click
|
||||
[pageX, pageY] = window.pixelPositionForPoint(editor, [1, 8])
|
||||
editor.lines.trigger mousedownEvent({pageX, pageY, originalEvent: {detail: 1}})
|
||||
$(document).trigger 'mouseup'
|
||||
editor.lines.trigger mousedownEvent({pageX, pageY, originalEvent: {detail: 2}})
|
||||
$(document).trigger 'mouseup'
|
||||
editor.lines.trigger mousedownEvent({pageX, pageY, originalEvent: {detail: 3}})
|
||||
expect(editor.getSelectedText()).toBe " var sort = function(items) {"
|
||||
$(document).trigger 'mouseup'
|
||||
|
||||
# Quad click
|
||||
[pageX, pageY] = window.pixelPositionForPoint(editor, [2, 3])
|
||||
editor.lines.trigger mousedownEvent({pageX, pageY, originalEvent: {detail: 1}})
|
||||
$(document).trigger 'mouseup'
|
||||
editor.lines.trigger mousedownEvent({pageX, pageY, originalEvent: {detail: 2}})
|
||||
$(document).trigger 'mouseup'
|
||||
editor.lines.trigger mousedownEvent({pageX, pageY, originalEvent: {detail: 3}})
|
||||
$(document).trigger 'mouseup'
|
||||
editor.lines.trigger mousedownEvent({pageX, pageY, originalEvent: {detail: 4}})
|
||||
expect(editor.getSelectedText()).toBe " if (items.length <= 1) return items;"
|
||||
$(document).trigger 'mouseup'
|
||||
|
||||
describe "selection", ->
|
||||
selection = null
|
||||
|
||||
|
||||
@@ -184,7 +184,8 @@ describe "Selection", ->
|
||||
selection.selectWord()
|
||||
expect(selection.getText()).toBe ''
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
describe ".selectLine()", ->
|
||||
it "selects the entire line the cursor is on", ->
|
||||
editor.setCursorPosition [1,2]
|
||||
selection.selectLine()
|
||||
expect(selection.getText()).toBe " var sort = function(items) {"
|
||||
|
||||
@@ -83,10 +83,12 @@ class Editor extends Template
|
||||
|
||||
if clickCount == 1
|
||||
@setCursorPosition @pointFromMouseEvent(e)
|
||||
@selectTextOnMouseMovement()
|
||||
else if clickCount == 2
|
||||
@selection.selectWord()
|
||||
@selectTextOnMouseMovement()
|
||||
else if clickCount >= 3
|
||||
@selection.selectLine()
|
||||
|
||||
@selectTextOnMouseMovement()
|
||||
|
||||
@hiddenInput.on "textInput", (e) =>
|
||||
@insertText(e.originalEvent.data)
|
||||
|
||||
@@ -114,6 +114,10 @@ class Selection extends Template
|
||||
range = new Range([row, column + startOffset], [row, column + endOffset])
|
||||
@setRange range
|
||||
|
||||
selectLine: ->
|
||||
row = @cursor.getRow()
|
||||
@setRange new Range([row, 0], [row, @editor.getCurrentLine().length])
|
||||
|
||||
selectRight: ->
|
||||
@modifySelection =>
|
||||
@cursor.moveRight()
|
||||
|
||||
Reference in New Issue
Block a user