mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-09-21 16:08:24 +03:00
change toggle-fold to fold
This commit is contained in:
parent
20ff70115f
commit
76ffa5a2c5
@ -172,27 +172,24 @@ describe "DisplayBuffer", ->
|
||||
expect(displayBuffer.activeFolds[4].length).toBe(1)
|
||||
|
||||
it "doesn't fold lines that are already folded", ->
|
||||
displayBuffer.toggleFoldAtBufferRow(4)
|
||||
displayBuffer.foldScopeContainingBufferRow(4)
|
||||
displayBuffer.foldAll()
|
||||
expect(Object.keys(displayBuffer.activeFolds).length).toBe(3)
|
||||
expect(displayBuffer.activeFolds[0].length).toBe(1)
|
||||
expect(displayBuffer.activeFolds[1].length).toBe(1)
|
||||
expect(displayBuffer.activeFolds[4].length).toBe(1)
|
||||
|
||||
describe ".toggleFoldAtBufferRow(bufferRow)", ->
|
||||
describe ".foldScopeContainingBufferRow(bufferRow)", ->
|
||||
describe "when bufferRow can be folded", ->
|
||||
it "creates/destroys a fold based on the syntactic region starting at the given row", ->
|
||||
displayBuffer.toggleFoldAtBufferRow(1)
|
||||
it "creates a fold based on the syntactic region starting at the given row", ->
|
||||
displayBuffer.foldScopeContainingBufferRow(1)
|
||||
fold = displayBuffer.lineForRow(1).fold
|
||||
expect(fold.startRow).toBe 1
|
||||
expect(fold.endRow).toBe 9
|
||||
|
||||
displayBuffer.toggleFoldAtBufferRow(1)
|
||||
expect(displayBuffer.lineForRow(1).fold).toBeUndefined()
|
||||
|
||||
describe "when bufferRow can't be folded", ->
|
||||
it "searches upward for the first row that begins a syntatic region containing the given buffer row (and folds it)", ->
|
||||
displayBuffer.toggleFoldAtBufferRow(8)
|
||||
displayBuffer.foldScopeContainingBufferRow(8)
|
||||
fold = displayBuffer.lineForRow(1).fold
|
||||
expect(fold.startRow).toBe 1
|
||||
expect(fold.endRow).toBe 9
|
||||
|
@ -56,17 +56,15 @@ class DisplayBuffer
|
||||
|
||||
@createFold(startRow, endRow)
|
||||
|
||||
toggleFoldAtBufferRow: (bufferRow) ->
|
||||
foldScopeContainingBufferRow: (bufferRow) ->
|
||||
for currentRow in [bufferRow..0]
|
||||
[startRow, endRow] = @tokenizedBuffer.rowRangeForFoldAtBufferRow(currentRow) ? []
|
||||
continue unless startRow? and startRow <= bufferRow <= endRow
|
||||
fold = @largestFoldStartingAtBufferRow(startRow)
|
||||
@createFold(startRow, endRow) unless fold
|
||||
|
||||
if fold = @largestFoldStartingAtBufferRow(startRow)
|
||||
fold.destroy()
|
||||
else
|
||||
@createFold(startRow, endRow)
|
||||
return
|
||||
|
||||
break
|
||||
|
||||
isFoldContainedByActiveFold: (fold) ->
|
||||
for row, folds of @activeFolds
|
||||
|
@ -198,19 +198,16 @@ class EditSession
|
||||
redo: ->
|
||||
@buffer.redo(this)
|
||||
|
||||
fold: ->
|
||||
bufferRow = @bufferPositionForScreenPosition(@getCursorScreenPosition()).row
|
||||
@foldAtBufferRow(bufferRow)
|
||||
|
||||
foldSelection: ->
|
||||
selection.fold() for selection in @getSelections()
|
||||
|
||||
foldAll: ->
|
||||
@displayBuffer.foldAll()
|
||||
|
||||
toggleFold: ->
|
||||
bufferRow = @bufferPositionForScreenPosition(@getCursorScreenPosition()).row
|
||||
@toggleFoldAtBufferRow(bufferRow)
|
||||
|
||||
toggleFoldAtBufferRow: (bufferRow) ->
|
||||
@displayBuffer.toggleFoldAtBufferRow(bufferRow)
|
||||
|
||||
createFold: (startRow, endRow) ->
|
||||
@displayBuffer.createFold(startRow, endRow)
|
||||
|
||||
|
@ -139,7 +139,7 @@ class Editor extends View
|
||||
'newline-below': @insertNewlineBelow
|
||||
'toggle-soft-wrap': @toggleSoftWrap
|
||||
'fold-all': @foldAll
|
||||
'toggle-fold': @toggleFold
|
||||
'fold': @fold
|
||||
'fold-selection': @foldSelection
|
||||
'unfold': => @unfoldCurrentRow()
|
||||
'split-left': @splitLeft
|
||||
@ -220,11 +220,11 @@ class Editor extends View
|
||||
undo: -> @activeEditSession.undo()
|
||||
redo: -> @activeEditSession.redo()
|
||||
createFold: (startRow, endRow) -> @activeEditSession.createFold(startRow, endRow)
|
||||
fold: -> @activeEditSession.fold()
|
||||
foldAll: -> @activeEditSession.foldAll()
|
||||
foldSelection: -> @activeEditSession.foldSelection()
|
||||
destroyFold: (foldId) -> @activeEditSession.destroyFold(foldId)
|
||||
destroyFoldsContainingBufferRow: (bufferRow) -> @activeEditSession.destroyFoldsContainingBufferRow(bufferRow)
|
||||
toggleFold: -> @activeEditSession.toggleFold()
|
||||
isFoldedAtScreenRow: (screenRow) -> @activeEditSession.isFoldedAtScreenRow(screenRow)
|
||||
unfoldCurrentRow: -> @activeEditSession.unfoldCurrentRow()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user