From 76ffa5a2c53b49c8f237b1dcae8c8a4edc372a5c Mon Sep 17 00:00:00 2001 From: Corey Johnson Date: Fri, 27 Jul 2012 11:47:30 -0700 Subject: [PATCH] change toggle-fold to fold --- spec/app/display-buffer-spec.coffee | 13 +++++-------- src/app/display-buffer.coffee | 10 ++++------ src/app/edit-session.coffee | 11 ++++------- src/app/editor.coffee | 4 ++-- 4 files changed, 15 insertions(+), 23 deletions(-) diff --git a/spec/app/display-buffer-spec.coffee b/spec/app/display-buffer-spec.coffee index 70faf4c21..3a90f3857 100644 --- a/spec/app/display-buffer-spec.coffee +++ b/spec/app/display-buffer-spec.coffee @@ -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 diff --git a/src/app/display-buffer.coffee b/src/app/display-buffer.coffee index 2ea45661a..dc5a41077 100644 --- a/src/app/display-buffer.coffee +++ b/src/app/display-buffer.coffee @@ -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 diff --git a/src/app/edit-session.coffee b/src/app/edit-session.coffee index 90996f294..3eabf2c25 100644 --- a/src/app/edit-session.coffee +++ b/src/app/edit-session.coffee @@ -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) diff --git a/src/app/editor.coffee b/src/app/editor.coffee index 49e52e002..71e5113c6 100644 --- a/src/app/editor.coffee +++ b/src/app/editor.coffee @@ -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()