mirror of
https://github.com/atom/atom.git
synced 2026-01-26 15:28:27 -05:00
🐎 Use ids instead of classes
This commit is contained in:
@@ -1273,8 +1273,8 @@ describe "TextEditorPresenter", ->
|
||||
expect(lineStateForScreenRow(presenter, 0).endOfLineInvisibles).toEqual [atom.config.get('editor.invisibles.eol')]
|
||||
expect(lineStateForScreenRow(presenter, 1).endOfLineInvisibles).toEqual [atom.config.get('editor.invisibles.cr'), atom.config.get('editor.invisibles.eol')]
|
||||
|
||||
describe ".hasBlockDecorations", ->
|
||||
it "is true when block decorations are present before a line, both initially and when decorations change", ->
|
||||
describe ".blockDecorations", ->
|
||||
it "contains all block decorations that are present before a line, both initially and when decorations change", ->
|
||||
blockDecoration1 = editor.addBlockDecorationForScreenRow(0)
|
||||
presenter = buildPresenter()
|
||||
blockDecoration2 = editor.addBlockDecorationForScreenRow(3)
|
||||
@@ -1282,58 +1282,58 @@ describe "TextEditorPresenter", ->
|
||||
|
||||
waitsForStateToUpdate presenter
|
||||
runs ->
|
||||
expect(lineStateForScreenRow(presenter, 0).hasBlockDecorations).toBe(true)
|
||||
expect(lineStateForScreenRow(presenter, 1).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 2).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 3).hasBlockDecorations).toBe(true)
|
||||
expect(lineStateForScreenRow(presenter, 4).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 5).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 6).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 7).hasBlockDecorations).toBe(true)
|
||||
expect(lineStateForScreenRow(presenter, 8).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 9).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 10).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 11).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 12).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 0).blockDecorations).toEqual([blockDecoration1])
|
||||
expect(lineStateForScreenRow(presenter, 1).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 2).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 3).blockDecorations).toEqual([blockDecoration2])
|
||||
expect(lineStateForScreenRow(presenter, 4).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 5).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 6).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 7).blockDecorations).toEqual([blockDecoration3])
|
||||
expect(lineStateForScreenRow(presenter, 8).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 9).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 10).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 11).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 12).blockDecorations).toEqual([])
|
||||
|
||||
waitsForStateToUpdate presenter, ->
|
||||
blockDecoration1.getMarker().setHeadBufferPosition([1, 0])
|
||||
blockDecoration2.getMarker().setHeadBufferPosition([5, 0])
|
||||
blockDecoration2.getMarker().setHeadBufferPosition([9, 0])
|
||||
blockDecoration3.getMarker().setHeadBufferPosition([9, 0])
|
||||
|
||||
runs ->
|
||||
expect(lineStateForScreenRow(presenter, 0).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 1).hasBlockDecorations).toBe(true)
|
||||
expect(lineStateForScreenRow(presenter, 2).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 3).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 4).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 5).hasBlockDecorations).toBe(true)
|
||||
expect(lineStateForScreenRow(presenter, 6).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 7).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 8).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 9).hasBlockDecorations).toBe(true)
|
||||
expect(lineStateForScreenRow(presenter, 10).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 11).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 12).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 0).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 1).blockDecorations).toEqual([blockDecoration1])
|
||||
expect(lineStateForScreenRow(presenter, 2).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 3).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 4).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 5).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 6).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 7).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 8).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 9).blockDecorations).toEqual([blockDecoration3, blockDecoration2])
|
||||
expect(lineStateForScreenRow(presenter, 10).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 11).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 12).blockDecorations).toEqual([])
|
||||
|
||||
waitsForStateToUpdate presenter, ->
|
||||
blockDecoration1.destroy()
|
||||
blockDecoration3.destroy()
|
||||
|
||||
runs ->
|
||||
expect(lineStateForScreenRow(presenter, 0).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 1).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 2).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 3).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 4).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 5).hasBlockDecorations).toBe(true)
|
||||
expect(lineStateForScreenRow(presenter, 6).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 7).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 8).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 9).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 10).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 11).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 12).hasBlockDecorations).toBe(false)
|
||||
expect(lineStateForScreenRow(presenter, 0).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 1).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 2).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 3).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 4).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 5).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 6).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 7).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 8).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 9).blockDecorations).toEqual([blockDecoration2])
|
||||
expect(lineStateForScreenRow(presenter, 10).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 11).blockDecorations).toEqual([])
|
||||
expect(lineStateForScreenRow(presenter, 12).blockDecorations).toEqual([])
|
||||
|
||||
describe ".decorationClasses", ->
|
||||
it "adds decoration classes to the relevant line state objects, both initially and when decorations change", ->
|
||||
|
||||
@@ -47,7 +47,7 @@ class BlockDecorationsComponent
|
||||
createAndAppendBlockDecorationNode: (id) ->
|
||||
blockDecorationState = @newState.blockDecorations[id]
|
||||
blockDecorationNode = @views.getView(blockDecorationState.decoration.getProperties().item)
|
||||
blockDecorationNode.classList.add("block-decoration-row-#{blockDecorationState.screenRow}")
|
||||
blockDecorationNode.id = "atom--block-decoration-#{id}"
|
||||
unless blockDecorationState.isVisible
|
||||
blockDecorationNode.classList.add("atom--invisible-block-decoration")
|
||||
|
||||
@@ -57,14 +57,9 @@ class BlockDecorationsComponent
|
||||
|
||||
updateBlockDecorationNode: (id) ->
|
||||
newBlockDecorationState = @newState.blockDecorations[id]
|
||||
oldBlockDecorationState = @oldState.blockDecorations[id]
|
||||
blockDecorationNode = @blockDecorationNodesById[id]
|
||||
|
||||
if newBlockDecorationState.isVisible
|
||||
blockDecorationNode.classList.remove("atom--invisible-block-decoration")
|
||||
else
|
||||
blockDecorationNode.classList.add("atom--invisible-block-decoration")
|
||||
|
||||
if newBlockDecorationState.screenRow isnt oldBlockDecorationState.screenRow
|
||||
blockDecorationNode.classList.remove("block-decoration-row-#{oldBlockDecorationState.screenRow}")
|
||||
blockDecorationNode.classList.add("block-decoration-row-#{newBlockDecorationState.screenRow}")
|
||||
|
||||
@@ -138,11 +138,11 @@ class LinesTileComponent
|
||||
@updateBlockDecorationInsertionPoint(id)
|
||||
|
||||
updateBlockDecorationInsertionPoint: (id) ->
|
||||
{screenRow} = @newTileState.lines[id]
|
||||
|
||||
{blockDecorations, screenRow} = @newTileState.lines[id]
|
||||
elementsIds = blockDecorations.map((d) -> "#atom--block-decoration-#{d.id}").join(',')
|
||||
if insertionPoint = @insertionPointsByLineId[id]
|
||||
insertionPoint.dataset.screenRow = screenRow
|
||||
insertionPoint.setAttribute("select", ".block-decoration-row-#{screenRow}")
|
||||
insertionPoint.setAttribute("select", elementsIds)
|
||||
|
||||
findNodeNextTo: (node) ->
|
||||
for nextNode, index in @domNode.children
|
||||
|
||||
@@ -499,7 +499,8 @@ class TextEditorPresenter
|
||||
lineState = tileState.lines[line.id]
|
||||
lineState.screenRow = screenRow
|
||||
lineState.decorationClasses = @lineDecorationClassesForRow(screenRow)
|
||||
lineState.hasBlockDecorations = blockDecorations.length isnt 0
|
||||
lineState.blockDecorations = blockDecorations
|
||||
lineState.hasBlockDecorations = blockDecorations.length > 0
|
||||
else
|
||||
tileState.lines[line.id] =
|
||||
screenRow: screenRow
|
||||
@@ -516,7 +517,8 @@ class TextEditorPresenter
|
||||
tabLength: line.tabLength
|
||||
fold: line.fold
|
||||
decorationClasses: @lineDecorationClassesForRow(screenRow)
|
||||
hasBlockDecorations: blockDecorations.length isnt 0
|
||||
blockDecorations: blockDecorations
|
||||
hasBlockDecorations: blockDecorations.length > 0
|
||||
|
||||
for id, line of tileState.lines
|
||||
delete tileState.lines[id] unless visibleLineIds.hasOwnProperty(id)
|
||||
|
||||
Reference in New Issue
Block a user