Skip to content

feat(api): annotate code-valued string parameters with [StringSyntax] - #3367

Open
Simon Cropp (SimonCropp) wants to merge 1 commit into
microsoft:mainfrom
SimonCropp:string-syntax
Open

Simon Cropp (SimonCropp) wants to merge 1 commit into
microsoft:mainfrom
SimonCropp:string-syntax

Conversation

@SimonCropp

Copy link
Copy Markdown
Contributor

Parameters and options holding JavaScript, CSS, HTML or a URL - the expression passed to EvaluateAsync, the html passed to SetContentAsync, AddStyleTagOptions .Content and so on - are now annotated, so IDEs inject and highlight that language inside the string literal.

API/Generated is deleted and recreated on every roll, so the annotations are applied by a new patch-string-syntax step in build.sh rather than by the upstream generator. Every rule has to match at least once, so a signature that changes shape upstream fails the roll instead of silently losing its annotation.

StringSyntaxAttribute ships in the .NET 7+ BCL and is unavailable on netstandard2.0, so an internal polyfill is included.

Parameters and options holding JavaScript, CSS, HTML or a URL - the expression
passed to EvaluateAsync, the html passed to SetContentAsync, AddStyleTagOptions
.Content and so on - are now annotated, so IDEs inject and highlight that
language inside the string literal.

API/Generated is deleted and recreated on every roll, so the annotations are
applied by a new patch-string-syntax step in build.sh rather than by the
upstream generator. Every rule has to match at least once, so a signature that
changes shape upstream fails the roll instead of silently losing its
annotation.

StringSyntaxAttribute ships in the .NET 7+ BCL and is unavailable on
netstandard2.0, so an internal polyfill is included.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant