From 9cb92146f7365f9ab13d5cead42eddf9f5114fb8 Mon Sep 17 00:00:00 2001 From: Blake Winton Date: Wed, 29 Jul 2015 22:52:33 -0400 Subject: [PATCH 1/3] :bug: Expand the selection on repeated uses of ctrl-cmd-m. --- lib/bracket-matcher-view.coffee | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/bracket-matcher-view.coffee b/lib/bracket-matcher-view.coffee index 4804113..9dd61ae 100644 --- a/lib/bracket-matcher-view.coffee +++ b/lib/bracket-matcher-view.coffee @@ -257,17 +257,23 @@ class BracketMatcherView endPosition = endRange.start else if startPosition = @findAnyStartPair(@editor.getCursorBufferPosition()) + startPositionExternal = startPosition startPair = @editor.getTextInRange(Range.fromPointWithDelta(startPosition, 0, 1)) endPosition = @findMatchingEndPair(startPosition, startPair, startPairMatches[startPair]) + endPositionExternal = endPosition.traverse([0, 1]) else if pair = @tagFinder.findEnclosingTags() {startRange, endRange} = pair if startRange.compare(endRange) > 0 [startRange, endRange] = [endRange, startRange] startPosition = startRange.end endPosition = endRange.start.traverse([0, -2]) # Don't select Date: Wed, 29 Jul 2015 23:23:09 -0400 Subject: [PATCH 2/3] Get the XML case working, too. --- lib/bracket-matcher-view.coffee | 2 +- lib/tag-finder.coffee | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/bracket-matcher-view.coffee b/lib/bracket-matcher-view.coffee index 9dd61ae..7719b4a 100644 --- a/lib/bracket-matcher-view.coffee +++ b/lib/bracket-matcher-view.coffee @@ -261,7 +261,7 @@ class BracketMatcherView startPair = @editor.getTextInRange(Range.fromPointWithDelta(startPosition, 0, 1)) endPosition = @findMatchingEndPair(startPosition, startPair, startPairMatches[startPair]) endPositionExternal = endPosition.traverse([0, 1]) - else if pair = @tagFinder.findEnclosingTags() + else if pair = @tagFinder.findEnclosingTags(@editor.getSelectedBufferRange().start) {startRange, endRange} = pair if startRange.compare(endRange) > 0 [startRange, endRange] = [endRange, startRange] diff --git a/lib/tag-finder.coffee b/lib/tag-finder.coffee index c0339f9..5b2573d 100644 --- a/lib/tag-finder.coffee +++ b/lib/tag-finder.coffee @@ -64,9 +64,9 @@ class TagFinder endRange - findStartEndTags: -> + findStartEndTags: (endPosition) -> ranges = null - endPosition = @editor.getLastCursor().getCurrentWordBufferRange({@wordRegex}).end + endPosition = endPosition || @editor.getLastCursor().getCurrentWordBufferRange({@wordRegex}).end @editor.backwardsScanInBufferRange @tagPattern, [[0, 0], endPosition], ({match, range, stop}) => stop() @@ -85,8 +85,8 @@ class TagFinder ranges = {startRange, endRange} if startRange? and endRange? ranges - findEnclosingTags: -> - if ranges = @findStartEndTags() + findEnclosingTags: (endPosition) -> + if ranges = @findStartEndTags(endPosition) if @isTagRange(ranges.startRange) and @isTagRange(ranges.endRange) return ranges From 7f72de77c0b5332e47d4665bb1930bb743008acc Mon Sep 17 00:00:00 2001 From: Blake Winton Date: Wed, 29 Jul 2015 23:31:37 -0400 Subject: [PATCH 3/3] Fix lint error. :smile: --- lib/tag-finder.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/tag-finder.coffee b/lib/tag-finder.coffee index 5b2573d..11719c0 100644 --- a/lib/tag-finder.coffee +++ b/lib/tag-finder.coffee @@ -66,7 +66,7 @@ class TagFinder findStartEndTags: (endPosition) -> ranges = null - endPosition = endPosition || @editor.getLastCursor().getCurrentWordBufferRange({@wordRegex}).end + endPosition = endPosition or @editor.getLastCursor().getCurrentWordBufferRange({@wordRegex}).end @editor.backwardsScanInBufferRange @tagPattern, [[0, 0], endPosition], ({match, range, stop}) => stop()