mirror of
https://github.com/atom/atom.git
synced 2026-01-23 05:48:10 -05:00
Match existing editor's behavior for .cursor-line class
This commit is contained in:
@@ -1729,39 +1729,43 @@ describe "EditorComponent", ->
|
||||
expect(node.querySelector('.line').textContent).toBe "var quicksort "
|
||||
|
||||
describe "default decorations", ->
|
||||
it "applies .cursor-line decorations to lines and line numbers for rows containing the cursor", ->
|
||||
it "applies .cursor-line decorations for line numbers overlapping selections", ->
|
||||
editor.setCursorScreenPosition([4, 4])
|
||||
runSetImmediateCallbacks()
|
||||
expect(lineNumberHasClass(3, 'cursor-line')).toBe false
|
||||
expect(lineNumberHasClass(4, 'cursor-line')).toBe true
|
||||
expect(lineNumberHasClass(5, 'cursor-line')).toBe false
|
||||
|
||||
editor.setSelectedScreenRange([[3, 4], [4, 4]])
|
||||
runSetImmediateCallbacks()
|
||||
expect(lineNumberHasClass(3, 'cursor-line')).toBe true
|
||||
expect(lineNumberHasClass(4, 'cursor-line')).toBe true
|
||||
|
||||
editor.setSelectedScreenRange([[3, 4], [4, 0]])
|
||||
runSetImmediateCallbacks()
|
||||
expect(lineNumberHasClass(3, 'cursor-line')).toBe true
|
||||
expect(lineNumberHasClass(4, 'cursor-line')).toBe false
|
||||
|
||||
it "does not apply .cursor-line to the last line of a selection if it's empty", ->
|
||||
editor.setSelectedScreenRange([[3, 4], [5, 0]])
|
||||
runSetImmediateCallbacks()
|
||||
expect(lineNumberHasClass(3, 'cursor-line')).toBe true
|
||||
expect(lineNumberHasClass(4, 'cursor-line')).toBe true
|
||||
expect(lineNumberHasClass(5, 'cursor-line')).toBe false
|
||||
|
||||
it "applies .cursor-line decorations for lines containing the cursor in non-empty selections", ->
|
||||
editor.setCursorScreenPosition([4, 4])
|
||||
runSetImmediateCallbacks()
|
||||
expect(lineHasClass(3, 'cursor-line')).toBe false
|
||||
expect(lineHasClass(4, 'cursor-line')).toBe true
|
||||
expect(lineHasClass(5, 'cursor-line')).toBe false
|
||||
|
||||
editor.setSelectedScreenRange([[3, 4], [4, 4]])
|
||||
runSetImmediateCallbacks()
|
||||
expect(lineNumberHasClass(4, 'cursor-line')).toBe true
|
||||
expect(lineHasClass(4, 'cursor-line')).toBe true
|
||||
|
||||
it "applies .selection-line decorations to lines and line numbers for rows spanned by non-empty selections", ->
|
||||
editor.setCursorScreenPosition([4, 4])
|
||||
runSetImmediateCallbacks()
|
||||
expect(lineNumberHasClass(4, 'selection-line')).toBe false
|
||||
expect(lineHasClass(4, 'selection-line')).toBe false
|
||||
|
||||
editor.setSelectedScreenRange([[4, 4], [6, 4]])
|
||||
runSetImmediateCallbacks()
|
||||
expect(lineNumberHasClass(3, 'selection-line')).toBe false
|
||||
expect(lineNumberHasClass(4, 'selection-line')).toBe true
|
||||
expect(lineNumberHasClass(5, 'selection-line')).toBe true
|
||||
expect(lineNumberHasClass(6, 'selection-line')).toBe true
|
||||
expect(lineNumberHasClass(7, 'selection-line')).toBe false
|
||||
expect(lineHasClass(3, 'selection-line')).toBe false
|
||||
expect(lineHasClass(4, 'selection-line')).toBe true
|
||||
expect(lineHasClass(5, 'selection-line')).toBe true
|
||||
expect(lineHasClass(6, 'selection-line')).toBe true
|
||||
expect(lineHasClass(7, 'selection-line')).toBe false
|
||||
expect(lineHasClass(2, 'cursor-line')).toBe false
|
||||
expect(lineHasClass(3, 'cursor-line')).toBe false
|
||||
expect(lineHasClass(4, 'cursor-line')).toBe false
|
||||
expect(lineHasClass(5, 'cursor-line')).toBe false
|
||||
|
||||
it "applies .cursor-line-no-selection to line numbers for rows containing the cursor when the selection is empty", ->
|
||||
editor.setCursorScreenPosition([4, 4])
|
||||
|
||||
@@ -1250,9 +1250,9 @@ class Editor extends Model
|
||||
addCursor: (marker) ->
|
||||
cursor = new Cursor(editor: this, marker: marker)
|
||||
@cursors.push(cursor)
|
||||
@addDecorationForMarker(marker, type: ['gutter', 'line'], class: 'cursor-line', onlyHead: true)
|
||||
@addDecorationForMarker(marker, type: ['gutter', 'line'], class: 'cursor-line-no-selection', onlyHead: true, onlyEmpty: true)
|
||||
@addDecorationForMarker(marker, type: ['gutter', 'line'], class: 'selection-line', onlyNonEmpty: true)
|
||||
@addDecorationForMarker(marker, type: 'gutter', class: 'cursor-line')
|
||||
@addDecorationForMarker(marker, type: 'gutter', class: 'cursor-line-no-selection', onlyHead: true, onlyEmpty: true)
|
||||
@addDecorationForMarker(marker, type: 'line', class: 'cursor-line', onlyEmpty: true)
|
||||
@emit 'cursor-added', cursor
|
||||
cursor
|
||||
|
||||
|
||||
Reference in New Issue
Block a user