Skip to content

Commit e1f986f

Browse files
committed
fix bracket selection issues
1 parent 32f99fb commit e1f986f

2 files changed

Lines changed: 5 additions & 2 deletions

File tree

src/vs/editor/contrib/smartSelect/bracketSelections.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ export class BracketSelectionRangeProvider implements SelectionRangeProvider {
4040
// process closing
4141
let val = counts.has(key) ? counts.get(key) : 0;
4242
val -= 1;
43-
counts.set(key, val);
43+
counts.set(key, Math.max(0, val));
4444
if (val < 0) {
4545
let arr = ranges.get(key);
4646
if (!arr) {
@@ -73,7 +73,7 @@ export class BracketSelectionRangeProvider implements SelectionRangeProvider {
7373
// opening
7474
let val = counts.has(key) ? counts.get(key) : 0;
7575
val -= 1;
76-
counts.set(key, val);
76+
counts.set(key, Math.max(0, val));
7777
if (val < 0) {
7878
let arr = ranges.get(key);
7979
if (arr && arr.length > 0) {

src/vs/editor/contrib/smartSelect/test/tokenSelectionSupport.test.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,9 @@ suite('SmartSelect', () => {
229229
// edge
230230
assertRanges('[I[[]()]]', new Range(1, 2, 1, 9), new Range(1, 1, 1, 10));
231231
assertRanges('[[[]()]I]', new Range(1, 2, 1, 9), new Range(1, 1, 1, 10));
232+
233+
assertRanges('aaa(aaa)bbb(bIb)ccc(ccc)', new Range(1, 13, 1, 16), new Range(1, 12, 1, 17));
234+
assertRanges('(aaa(aaa)bbb(bIb)ccc(ccc))', new Range(1, 14, 1, 17), new Range(1, 13, 1, 18), new Range(1, 2, 1, 26), new Range(1, 1, 1, 27));
232235
});
233236

234237
});

0 commit comments

Comments
 (0)