Merge pull request #31912 from andrewbranch/bug/31657

Fix smartSelection returning extra span inside string quotes when cursor is outside them
This commit is contained in:
Andrew Branch 2019-07-01 11:53:24 -07:00 committed by GitHub
commit a890275463
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 2 deletions

View File

@ -72,9 +72,13 @@ namespace ts.SmartSelectionRange {
function pushSelectionRange(start: number, end: number): void {
// Skip empty ranges
if (start !== end) {
// Skip ranges that are identical to the parent
const textSpan = createTextSpanFromBounds(start, end);
if (!selectionRange || !textSpansEqual(textSpan, selectionRange.textSpan)) {
if (!selectionRange || (
// Skip ranges that are identical to the parent
!textSpansEqual(textSpan, selectionRange.textSpan) &&
// Skip ranges that dont contain the original position
textSpanIntersectsWithPosition(textSpan, pos)
)) {
selectionRange = { textSpan, ...selectionRange && { parent: selectionRange } };
}
}

View File

@ -0,0 +1,10 @@
const a = 'a';
const b = /**/'b';
'b'
const b = 'b';
const a = 'a';
const b = 'b';

View File

@ -0,0 +1,6 @@
/// <reference path="fourslash.ts" />
//// const a = 'a';
//// const b = /**/'b';
verify.baselineSmartSelection();