add support for array splat completion in type syntax and enhance completion context #18948
+289
−7
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #17610
Design Proposal
When using the
resourceInput<>type accessor with chained property access involving arrays, intellisense does not offer*(splat) completion inside square brackets. For example:At te cursor position
|, no completion is offered for*to access the array item type.When parsing
foo.items[]in a type context, the Bicep parser creates anArrayTypeSyntaxnode (interpreting[]as "array of foo.items"), not aTypeArrayAccessSyntaxnode. The existing completion logic only detectedTypeArrayAccessSyntax, which is created when there's already content inside the brackets (likefoo[0]).In this PR we extend the completian context detection to also recognize
ArrayTypeSyntaxas a valid context for offering the*completion when the cursor is positioned between[and].I added some integration tests to cover;
*.properties.tags.*and*.properties.template.containers[*].probespatternsMicrosoft.App/containerAppsandMicrosoft.Resources/tagsChecklist
Microsoft Reviewers: Open in CodeFlow