Skip to content

Commit 11272b2

Browse files
axellewmarijnh
authored andcommitted
[sublime bindings] Add shortcut Ctrl-K Ctrl-D: find_under_expand_skip
1 parent 4f0c03c commit 11272b2

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

keymap/sublime.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,17 @@
155155
cm.state.sublimeFindFullWord = cm.doc.sel;
156156
};
157157

158+
cmds.skipAndSelectNextOccurrence = function(cm) {
159+
var prevAnchor = cm.getCursor("anchor"), prevHead = cm.getCursor("head");
160+
cmds.selectNextOccurrence(cm);
161+
if (CodeMirror.cmpPos(prevAnchor, prevHead) != 0) {
162+
cm.doc.setSelections(cm.doc.listSelections()
163+
.filter(function (sel) {
164+
return sel.anchor != prevAnchor || sel.head != prevHead;
165+
}));
166+
}
167+
}
168+
158169
function addCursorToSelection(cm, dir) {
159170
var ranges = cm.listSelections(), newRanges = [];
160171
for (var i = 0; i < ranges.length; i++) {
@@ -605,6 +616,7 @@
605616
"Shift-Cmd-F2": "clearBookmarks",
606617
"Alt-F2": "selectBookmarks",
607618
"Backspace": "smartBackspace",
619+
"Cmd-K Cmd-D": "skipAndSelectNextOccurrence",
608620
"Cmd-K Cmd-K": "delLineRight",
609621
"Cmd-K Cmd-U": "upcaseAtCursor",
610622
"Cmd-K Cmd-L": "downcaseAtCursor",
@@ -665,6 +677,7 @@
665677
"Shift-Ctrl-F2": "clearBookmarks",
666678
"Alt-F2": "selectBookmarks",
667679
"Backspace": "smartBackspace",
680+
"Ctrl-K Ctrl-D": "skipAndSelectNextOccurrence",
668681
"Ctrl-K Ctrl-K": "delLineRight",
669682
"Ctrl-K Ctrl-U": "upcaseAtCursor",
670683
"Ctrl-K Ctrl-L": "downcaseAtCursor",

test/sublime_test.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,14 @@
130130
hasSel(0, 0, 0, 0,
131131
2, 0, 2, 0), val("\nabcde\n\nfghijkl\nmn"));
132132

133+
stTest("skipAndSelectNextOccurrence", "a foo bar\nfoobar foo",
134+
setSel(0, 2, 0, 5), "skipAndSelectNextOccurrence", hasSel(1, 0, 1, 3),
135+
"skipAndSelectNextOccurrence", hasSel(1, 7, 1, 10),
136+
"skipAndSelectNextOccurrence", hasSel(0, 2, 0, 5),
137+
Pos(0, 3), "skipAndSelectNextOccurrence", hasSel(0, 2, 0, 5),
138+
"skipAndSelectNextOccurrence", hasSel(1, 7, 1, 10),
139+
setSel(0, 6, 0, 9), "skipAndSelectNextOccurrence", hasSel(1, 3, 1, 6));
140+
133141
stTest("selectNextOccurrence", "a foo bar\nfoobar foo",
134142
setSel(0, 2, 0, 5),
135143
"selectNextOccurrence", hasSel(0, 2, 0, 5,
@@ -141,8 +149,8 @@
141149
1, 0, 1, 3,
142150
1, 7, 1, 10),
143151
Pos(0, 3), "selectNextOccurrence", hasSel(0, 2, 0, 5),
144-
"selectNextOccurrence", hasSel(0, 2, 0, 5,
145-
1, 7, 1, 10),
152+
"selectNextOccurrence", hasSel(0, 2, 0, 5,
153+
1, 7, 1, 10),
146154
setSel(0, 6, 0, 9),
147155
"selectNextOccurrence", hasSel(0, 6, 0, 9,
148156
1, 3, 1, 6));

0 commit comments

Comments
 (0)