From 217a992637abf02acd752a15c8de094500776bf4 Mon Sep 17 00:00:00 2001 From: Andreas Arvidsson Date: Fri, 2 Oct 2026 19:11:09 +0200 Subject: [PATCH] Added prefix range to scope fixtures --- packages/lib-common/src/types/ScopeProvider.ts | 1 + .../src/scopeProviders/getTargetRanges.ts | 1 + .../src/testUtil/serializeScopeFixture.ts | 13 +++++++++++++ .../tool-meta-updater/src/updateScopeFixtureData.ts | 1 + .../collectionItem.unenclosed.multiLine.scope | 12 ++++++++++++ .../collectionItem.unenclosed.multiLine2.scope | 8 ++++++++ .../collectionItem.unenclosed.multiLine3.scope | 8 ++++++++ .../yaml/collectionItem.unenclosed.multiLine.scope | 12 ++++++++++++ 8 files changed, 56 insertions(+) diff --git a/packages/lib-common/src/types/ScopeProvider.ts b/packages/lib-common/src/types/ScopeProvider.ts index cf1c4852865..73f592a0cff 100644 --- a/packages/lib-common/src/types/ScopeProvider.ts +++ b/packages/lib-common/src/types/ScopeProvider.ts @@ -191,6 +191,7 @@ export interface TargetRanges { contentRange: Range; removalRange: Range; removalHighlightRange: GeneralizedRange; + prefixRange: Range | undefined; leadingDelimiter: TargetRanges | undefined; trailingDelimiter: TargetRanges | undefined; interior: TargetRanges[] | undefined; diff --git a/packages/lib-engine/src/scopeProviders/getTargetRanges.ts b/packages/lib-engine/src/scopeProviders/getTargetRanges.ts index b89e0317c85..c3930125061 100644 --- a/packages/lib-engine/src/scopeProviders/getTargetRanges.ts +++ b/packages/lib-engine/src/scopeProviders/getTargetRanges.ts @@ -6,6 +6,7 @@ export function getTargetRanges(target: Target): TargetRanges { contentRange: target.contentRange, removalRange: target.getRemovalRange(), removalHighlightRange: target.getRemovalHighlightRange(), + prefixRange: target.prefixRange, leadingDelimiter: getOptionalTarget(target.getLeadingDelimiterTarget()), trailingDelimiter: getOptionalTarget(target.getTrailingDelimiterTarget()), interior: target.getInterior()?.map(getTargetRanges), diff --git a/packages/lib-engine/src/testUtil/serializeScopeFixture.ts b/packages/lib-engine/src/testUtil/serializeScopeFixture.ts index a223436dd8a..73b6fbc4821 100644 --- a/packages/lib-engine/src/testUtil/serializeScopeFixture.ts +++ b/packages/lib-engine/src/testUtil/serializeScopeFixture.ts @@ -209,6 +209,19 @@ function serializeTarget({ lines.push(serializeTargetRange(codeLines, group.range)); } + if (target.prefixRange != null) { + lines.push( + "", + serializeHeader({ + header: "Prefix", + scopeNumber, + targetNumber, + range: target.prefixRange, + }), + serializeTargetRange(codeLines, target.prefixRange), + ); + } + if (target.leadingDelimiter != null) { lines.push( serializeTargetCompact({ diff --git a/packages/tool-meta-updater/src/updateScopeFixtureData.ts b/packages/tool-meta-updater/src/updateScopeFixtureData.ts index d3505c4d584..0c771a89eb1 100644 --- a/packages/tool-meta-updater/src/updateScopeFixtureData.ts +++ b/packages/tool-meta-updater/src/updateScopeFixtureData.ts @@ -79,6 +79,7 @@ function parseTest(test: ScopeTestPath): ScopeFixtureData { case "Removal": currentTarget.removal = value; break; + case "Prefix": case "Insertion delimiter": case "Leading delimiter": case "Leading delimiter: Content": diff --git a/resources/fixtures/scopes/markdown/collectionItem.unenclosed.multiLine.scope b/resources/fixtures/scopes/markdown/collectionItem.unenclosed.multiLine.scope index ae66dd3c888..871d517e502 100644 --- a/resources/fixtures/scopes/markdown/collectionItem.unenclosed.multiLine.scope +++ b/resources/fixtures/scopes/markdown/collectionItem.unenclosed.multiLine.scope @@ -16,6 +16,10 @@ 2| - This is the first level of a list again. < +[#1 Prefix] = 0:0-0:2 + >--< +0| - This is the first level of a list. + [#1 Trailing delimiter] = 1:39-2:0 > 1| - This is the second level of a list. @@ -41,6 +45,10 @@ 2| - This is the first level of a list again. < +[#2 Prefix] = 1:2-1:4 + >--< +1| - This is the second level of a list. + [#2 Leading delimiter] = 1:0-1:2 >--< 1| - This is the second level of a list. @@ -62,6 +70,10 @@ 2| - This is the first level of a list again. ------------------------------------------< +[#3 Prefix] = 2:0-2:2 + >--< +2| - This is the first level of a list again. + [#3 Leading delimiter] = 1:39-2:0 > 1| - This is the second level of a list. diff --git a/resources/fixtures/scopes/markdown/collectionItem.unenclosed.multiLine2.scope b/resources/fixtures/scopes/markdown/collectionItem.unenclosed.multiLine2.scope index 48f0c8e06ae..e02101dbf42 100644 --- a/resources/fixtures/scopes/markdown/collectionItem.unenclosed.multiLine2.scope +++ b/resources/fixtures/scopes/markdown/collectionItem.unenclosed.multiLine2.scope @@ -16,6 +16,10 @@ 2| - Second item < +[#1 Prefix] = 0:0-0:2 + >--< +0| - First item + [#1 Trailing delimiter] = 1:11-2:0 > 1| Paragraph @@ -41,6 +45,10 @@ 2| - Second item -------------< +[#2 Prefix] = 2:0-2:2 + >--< +2| - Second item + [#2 Leading delimiter] = 1:11-2:0 > 1| Paragraph diff --git a/resources/fixtures/scopes/markdown/collectionItem.unenclosed.multiLine3.scope b/resources/fixtures/scopes/markdown/collectionItem.unenclosed.multiLine3.scope index fb8a66d7726..df26186a45a 100644 --- a/resources/fixtures/scopes/markdown/collectionItem.unenclosed.multiLine3.scope +++ b/resources/fixtures/scopes/markdown/collectionItem.unenclosed.multiLine3.scope @@ -12,6 +12,10 @@ 1| - [ ] Second item < +[#1 Prefix] = 0:0-0:2 + >--< +0| - [ ] First item + [#1 Trailing delimiter] = 0:16-1:0 > 0| - [ ] First item @@ -44,6 +48,10 @@ 1| - [ ] Second item -----------------< +[#3 Prefix] = 1:0-1:2 + >--< +1| - [ ] Second item + [#3 Leading delimiter] = 0:16-1:0 > 0| - [ ] First item diff --git a/resources/fixtures/scopes/yaml/collectionItem.unenclosed.multiLine.scope b/resources/fixtures/scopes/yaml/collectionItem.unenclosed.multiLine.scope index 9faa3a2cd7a..ef898981430 100644 --- a/resources/fixtures/scopes/yaml/collectionItem.unenclosed.multiLine.scope +++ b/resources/fixtures/scopes/yaml/collectionItem.unenclosed.multiLine.scope @@ -27,6 +27,10 @@ items: 2| - 2 --< +[#2 Prefix] = 1:2-1:4 + >--< +1| - 1 + [#2 Trailing delimiter] = 1:5-2:2 > 1| - 1 @@ -50,6 +54,10 @@ items: 3| - 3 --< +[#3 Prefix] = 2:2-2:4 + >--< +2| - 2 + [#3 Leading delimiter] = 1:5-2:2 > 1| - 1 @@ -79,6 +87,10 @@ items: 3| - 3 -----< +[#4 Prefix] = 3:2-3:4 + >--< +3| - 3 + [#4 Leading delimiter] = 2:5-3:2 > 2| - 2