DAS: Comply with unintended_html_in_doc_comment

Change-Id: Ic96bb851e4f18d11badb3e429f5601e652f89b1a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/454162
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
This commit is contained in:
Sam Rawlins
2025-10-15 13:43:58 -07:00
committed by Commit Queue
parent e63dcafc0c
commit 174c15212a
9 changed files with 310 additions and 309 deletions
@@ -21,8 +21,6 @@ analyzer:
implementation_imports: ignore
overridden_fields: ignore
todo: ignore
# Existing violations (361)
unintended_html_in_doc_comment: ignore
linter:
rules:
File diff suppressed because it is too large Load Diff
@@ -105,7 +105,7 @@ class Driver implements ServerStarter {
/// The option for specifying the http diagnostic port.
/// If specified, users can review server status and performance information
/// by opening a web browser on http://localhost:<port>
/// by opening a web browser on `http://localhost:<port>`.
static const String DIAGNOSTIC_PORT = 'diagnostic-port';
static const String DIAGNOSTIC_PORT_ALIAS = 'port';
@@ -24,7 +24,7 @@ class SdkConfiguration {
}
/// Create an SDK configuration based on any SDK configuration file at
/// <dart-sdk>/config/settings.json.
/// `<dart-sdk>/config/settings.json`.
///
/// This constructor will still create an object even if a configuration file
/// is not found.
@@ -49,8 +49,8 @@ class CodeFragmentParser {
/// Parse the [content] into a list of accessors. Add the [delta] to translate
/// from offsets within the content to offsets within the file.
///
/// <content> ::=
/// <accessor> ('.' <accessor>)*
/// <content> ::=
/// <accessor> ('.' <accessor>)*
List<Accessor>? parseAccessors(String content, int delta) {
this.delta = delta;
var scannedTokens = _CodeFragmentScanner(
@@ -98,8 +98,8 @@ class CodeFragmentParser {
/// Parse the [content] into a condition. Add the [delta] to translate
/// from offsets within the content to offsets within the file.
///
/// <content> ::=
/// <logicalExpression>
/// <content> ::=
/// <logicalExpression>
Expression? parseCondition(String content, int delta) {
this.delta = delta;
var scannedTokens = _CodeFragmentScanner(
@@ -176,8 +176,8 @@ class CodeFragmentParser {
/// Parse an accessor.
///
/// <accessor> ::=
/// <identifier> '[' (<integer> | <identifier>) ']'
/// <accessor> ::=
/// <identifier> '[' (<integer> | <identifier>) ']'
Accessor? _parseAccessor() {
var token = _expect(const [_TokenKind.identifier]);
if (token == null) {
@@ -248,10 +248,10 @@ class CodeFragmentParser {
/// Parse a logical expression.
///
/// <equalityExpression> ::=
/// <primaryExpression> (<comparisonOperator> <primaryExpression>)?
/// <comparisonOperator> ::=
/// '==' | '!='
/// <equalityExpression> ::=
/// <primaryExpression> (<comparisonOperator> <primaryExpression>)?
/// <comparisonOperator> ::=
/// '==' | '!='
Expression? _parseEqualityExpression() {
var expression = _parsePrimaryExpression();
if (expression == null) {
@@ -277,8 +277,8 @@ class CodeFragmentParser {
/// Parse a logical expression.
///
/// <logicalExpression> ::=
/// <equalityExpression> ('&&' <equalityExpression>)*
/// <logicalExpression> ::=
/// <equalityExpression> ('&&' <equalityExpression>)*
Expression? _parseLogicalAndExpression() {
var leftOperand = _parseEqualityExpression();
if (leftOperand == null) {
@@ -306,8 +306,8 @@ class CodeFragmentParser {
/// Parse a logical expression.
///
/// <primaryExpression> ::=
/// <identifier> | <string>
/// <primaryExpression> ::=
/// <identifier> | <string>
Expression? _parsePrimaryExpression() {
var token = _currentToken;
if (token != null) {
@@ -11,7 +11,7 @@ import 'schema.dart' as schema;
/// Returns the name of the [constructor].
///
/// This is either '<class-name>' or '<class-name>.<constructor-name>',
/// This is either `<class-name>` or `<class-name>.<constructor-name>`,
/// depending on whether the constructor is a named constructor.
String _computeConstructorElementName(ConstructorElement constructor) {
var name = constructor.enclosingElement.name!;
@@ -4,7 +4,7 @@
import 'dart:async';
/// A [StringSink] that writes into a StreamSink<String>.
/// A [StringSink] that writes into a `StreamSink<String>`.
class StreamStringSink implements StringSink {
final StreamSink<String> _sink;
@@ -28,46 +28,46 @@ abstract class IntegrationTestMixin {
///
/// Parameters
///
/// byteStorePath: FilePath
/// * `byteStorePath: FilePath`
///
/// The path to the directory containing the on-disk byte store that is to
/// be used by any analysis drivers that are created.
///
/// sdkPath: FilePath
/// * `sdkPath: FilePath`
///
/// The path to the directory containing the SDK that is to be used by any
/// analysis drivers that are created.
///
/// version: String
/// * `version: String`
///
/// The version number of the plugin spec supported by the analysis server
/// that is executing the plugin.
///
/// Returns
///
/// isCompatible: bool
/// * `isCompatible: bool`
///
/// A flag indicating whether the plugin supports the same version of the
/// plugin spec as the analysis server. If the value is `false`, then the
/// plugin is expected to shutdown after returning the response.
///
/// name: String
/// * `name: String`
///
/// The name of the plugin. This value is only used when the server needs
/// to identify the plugin, either to the user or for debugging purposes.
///
/// version: String
/// * `version: String`
///
/// The version of the plugin. This value is only used when the server
/// needs to identify the plugin, either to the user or for debugging
/// purposes.
///
/// contactInfo: String (optional)
/// * `contactInfo: String (optional)`
///
/// Information that the user can use to use to contact the maintainers of
/// the plugin when there is a problem.
///
/// interestingFiles: List<String>
/// * `interestingFiles: List<String>`
///
/// The glob patterns of the files for which the plugin will provide
/// information. This value is ignored if the `isCompatible` field is
@@ -93,7 +93,7 @@ abstract class IntegrationTestMixin {
///
/// Returns
///
/// plugins: List<PluginDetails>
/// * `plugins: List<PluginDetails>`
///
/// A list of the details of all registered plugins.
Future<PluginDetailsResult> sendPluginDetails() async {
@@ -119,18 +119,18 @@ abstract class IntegrationTestMixin {
///
/// Parameters
///
/// isFatal: bool
/// * `isFatal: bool`
///
/// A flag indicating whether the error is a fatal error, meaning that the
/// plugin will shutdown automatically after sending this notification. If
/// `true`, the server will not expect any other responses or notifications
/// from the plugin.
///
/// message: String
/// * `message: String`
///
/// The error message indicating what kind of error was encountered.
///
/// stackTrace: String
/// * `stackTrace: String`
///
/// The stack trace associated with the generation of the error, used for
/// debugging the plugin.
@@ -147,7 +147,7 @@ abstract class IntegrationTestMixin {
///
/// Parameters
///
/// analysis: AnalysisStatus (optional)
/// * `analysis: AnalysisStatus (optional)`
///
/// The current status of analysis (whether analysis is being performed).
late Stream<PluginStatusParams> onPluginStatus;
@@ -172,33 +172,33 @@ abstract class IntegrationTestMixin {
///
/// Parameters
///
/// file: FilePath
/// * `file: FilePath`
///
/// The file in which navigation information is being requested.
///
/// offset: int
/// * `offset: int`
///
/// The offset of the region for which navigation information is being
/// requested.
///
/// length: int
/// * `length: int`
///
/// The length of the region for which navigation information is being
/// requested.
///
/// Returns
///
/// files: List<FilePath>
/// * `files: List<FilePath>`
///
/// A list of the paths of files that are referenced by the navigation
/// targets.
///
/// targets: List<NavigationTarget>
/// * `targets: List<NavigationTarget>`
///
/// A list of the navigation targets that are referenced by the navigation
/// regions.
///
/// regions: List<NavigationRegion>
/// * `regions: List<NavigationRegion>`
///
/// A list of the navigation regions within the requested region of the
/// file.
@@ -219,7 +219,7 @@ abstract class IntegrationTestMixin {
///
/// Parameters
///
/// events: List<WatchEvent>
/// * `events: List<WatchEvent>`
///
/// The watch events that the plugin should handle.
Future sendAnalysisHandleWatchEvents(List<WatchEvent> events) async {
@@ -233,7 +233,7 @@ abstract class IntegrationTestMixin {
///
/// Parameters
///
/// roots: List<ContextRoot>
/// * `roots: List<ContextRoot>`
///
/// A list of the context roots that should be analyzed.
Future sendAnalysisSetContextRoots(List<ContextRoot> roots) async {
@@ -253,7 +253,7 @@ abstract class IntegrationTestMixin {
///
/// Parameters
///
/// files: List<FilePath>
/// * `files: List<FilePath>`
///
/// The files that are to be a priority for analysis.
Future sendAnalysisSetPriorityFiles(List<String> files) async {
@@ -272,7 +272,7 @@ abstract class IntegrationTestMixin {
///
/// Parameters
///
/// subscriptions: Map<AnalysisService, List<FilePath>>
/// * `subscriptions: Map<AnalysisService, List<FilePath>>`
///
/// A table mapping services to a list of the files being subscribed to the
/// service.
@@ -294,8 +294,8 @@ abstract class IntegrationTestMixin {
///
/// Parameters
///
/// files: Map<FilePath, AddContentOverlay | ChangeContentOverlay |
/// RemoveContentOverlay>
/// * `files: Map<FilePath, AddContentOverlay | ChangeContentOverlay |
/// RemoveContentOverlay>`
///
/// A table mapping the files whose content has changed to a description of
/// the content change.
@@ -312,11 +312,11 @@ abstract class IntegrationTestMixin {
///
/// Parameters
///
/// file: FilePath
/// * `file: FilePath`
///
/// The file containing the errors.
///
/// errors: List<AnalysisError>
/// * `errors: List<AnalysisError>`
///
/// The errors contained in the file.
late Stream<AnalysisErrorsParams> onAnalysisErrors;
@@ -339,11 +339,11 @@ abstract class IntegrationTestMixin {
///
/// Parameters
///
/// file: FilePath
/// * `file: FilePath`
///
/// The file containing the folding regions.
///
/// regions: List<FoldingRegion>
/// * `regions: List<FoldingRegion>`
///
/// The folding regions contained in the file.
late Stream<AnalysisFoldingParams> onAnalysisFolding;
@@ -363,11 +363,11 @@ abstract class IntegrationTestMixin {
///
/// Parameters
///
/// file: FilePath
/// * `file: FilePath`
///
/// The file containing the highlight regions.
///
/// regions: List<HighlightRegion>
/// * `regions: List<HighlightRegion>`
///
/// The highlight regions contained in the file.
late Stream<AnalysisHighlightsParams> onAnalysisHighlights;
@@ -394,20 +394,20 @@ abstract class IntegrationTestMixin {
///
/// Parameters
///
/// file: FilePath
/// * `file: FilePath`
///
/// The file containing the navigation regions.
///
/// regions: List<NavigationRegion>
/// * `regions: List<NavigationRegion>`
///
/// The navigation regions contained in the file.
///
/// targets: List<NavigationTarget>
/// * `targets: List<NavigationTarget>`
///
/// The navigation targets referenced in the file. They are referenced by
/// NavigationRegions by their index in this array.
///
/// files: List<FilePath>
/// * `files: List<FilePath>`
///
/// The files containing navigation targets referenced in the file. They
/// are referenced by NavigationTargets by their index in this array.
@@ -430,11 +430,11 @@ abstract class IntegrationTestMixin {
///
/// Parameters
///
/// file: FilePath
/// * `file: FilePath`
///
/// The file in which the references occur.
///
/// occurrences: List<Occurrences>
/// * `occurrences: List<Occurrences>`
///
/// The occurrences of references to elements within the file.
late Stream<AnalysisOccurrencesParams> onAnalysisOccurrences;
@@ -454,11 +454,11 @@ abstract class IntegrationTestMixin {
///
/// Parameters
///
/// file: FilePath
/// * `file: FilePath`
///
/// The file with which the outline is associated.
///
/// outline: List<Outline>
/// * `outline: List<Outline>`
///
/// The outline fragments associated with the file.
late Stream<AnalysisOutlineParams> onAnalysisOutline;
@@ -473,17 +473,17 @@ abstract class IntegrationTestMixin {
///
/// Parameters
///
/// file: FilePath
/// * `file: FilePath`
///
/// The file containing the point at which suggestions are to be made.
///
/// offset: int
/// * `offset: int`
///
/// The offset within the file at which suggestions are to be made.
///
/// Returns
///
/// replacementOffset: int
/// * `replacementOffset: int`
///
/// The offset of the start of the text to be replaced. This will be
/// different than the offset used to request the completion suggestions if
@@ -491,14 +491,14 @@ abstract class IntegrationTestMixin {
/// particular, the replacementOffset will be the offset of the beginning
/// of said identifier.
///
/// replacementLength: int
/// * `replacementLength: int`
///
/// The length of the text to be replaced if the remainder of the
/// identifier containing the cursor is to be replaced when the suggestion
/// is applied (that is, the number of characters in the existing
/// identifier).
///
/// results: List<CompletionSuggestion>
/// * `results: List<CompletionSuggestion>`
///
/// The completion suggestions being reported. The notification contains
/// all possible completions at the requested cursor position, even those
@@ -522,21 +522,21 @@ abstract class IntegrationTestMixin {
///
/// Parameters
///
/// file: FilePath
/// * `file: FilePath`
///
/// The file containing the code for which assists are being requested.
///
/// offset: int
/// * `offset: int`
///
/// The offset of the code for which assists are being requested.
///
/// length: int
/// * `length: int`
///
/// The length of the code for which assists are being requested.
///
/// Returns
///
/// assists: List<PrioritizedSourceChange>
/// * `assists: List<PrioritizedSourceChange>`
///
/// The assists that are available at the given location.
Future<EditGetAssistsResult> sendEditGetAssists(
@@ -555,21 +555,21 @@ abstract class IntegrationTestMixin {
///
/// Parameters
///
/// file: FilePath
/// * `file: FilePath`
///
/// The file containing the code on which the refactoring would be based.
///
/// offset: int
/// * `offset: int`
///
/// The offset of the code on which the refactoring would be based.
///
/// length: int
/// * `length: int`
///
/// The length of the code on which the refactoring would be based.
///
/// Returns
///
/// kinds: List<RefactoringKind>
/// * `kinds: List<RefactoringKind>`
///
/// The kinds of refactorings that are valid for the given selection.
///
@@ -601,17 +601,17 @@ abstract class IntegrationTestMixin {
///
/// Parameters
///
/// file: FilePath
/// * `file: FilePath`
///
/// The file containing the errors for which fixes are being requested.
///
/// offset: int
/// * `offset: int`
///
/// The offset used to select the errors for which fixes will be returned.
///
/// Returns
///
/// fixes: List<AnalysisErrorFixes>
/// * `fixes: List<AnalysisErrorFixes>`
///
/// The fixes that are available for the errors at the given offset.
Future<EditGetFixesResult> sendEditGetFixes(String file, int offset) async {
@@ -625,28 +625,28 @@ abstract class IntegrationTestMixin {
///
/// Parameters
///
/// kind: RefactoringKind
/// * `kind: RefactoringKind`
///
/// The kind of refactoring to be performed.
///
/// file: FilePath
/// * `file: FilePath`
///
/// The file containing the code involved in the refactoring.
///
/// offset: int
/// * `offset: int`
///
/// The offset of the region involved in the refactoring.
///
/// length: int
/// * `length: int`
///
/// The length of the region involved in the refactoring.
///
/// validateOnly: bool
/// * `validateOnly: bool`
///
/// True if the client is only requesting that the values of the options be
/// validated and no change be generated.
///
/// options: RefactoringOptions (optional)
/// * `options: RefactoringOptions (optional)`
///
/// Data used to provide values provided by the user. The structure of the
/// data is dependent on the kind of refactoring being performed. The data
@@ -657,39 +657,39 @@ abstract class IntegrationTestMixin {
///
/// Returns
///
/// initialProblems: List<RefactoringProblem>
/// * `initialProblems: List<RefactoringProblem>`
///
/// The initial status of the refactoring, that is, problems related to the
/// context in which the refactoring is requested. The list should be empty
/// if there are no known problems.
///
/// optionsProblems: List<RefactoringProblem>
/// * `optionsProblems: List<RefactoringProblem>`
///
/// The options validation status, that is, problems in the given options,
/// such as light-weight validation of a new name, flags compatibility,
/// etc. The list should be empty if there are no known problems.
///
/// finalProblems: List<RefactoringProblem>
/// * `finalProblems: List<RefactoringProblem>`
///
/// The final status of the refactoring, that is, problems identified in
/// the result of a full, potentially expensive validation and / or change
/// creation. The list should be empty if there are no known problems.
///
/// feedback: RefactoringFeedback (optional)
/// * `feedback: RefactoringFeedback (optional)`
///
/// Data used to provide feedback to the user. The structure of the data is
/// dependent on the kind of refactoring being created. The data that is
/// returned is documented in the section titled Refactorings, labeled as
/// "Feedback".
///
/// change: SourceChange (optional)
/// * `change: SourceChange (optional)`
///
/// The changes that are to be applied to affect the refactoring. This
/// field can be omitted if there are problems that prevent a set of
/// changes from being computed, such as having no options specified for a
/// refactoring that requires them, or if only validation was requested.
///
/// potentialEdits: List<String> (optional)
/// * `potentialEdits: List<String> (optional)`
///
/// The ids of source edits that are not known to be valid. An edit is not
/// known to be valid if there was insufficient type information for the
@@ -74,7 +74,6 @@ class _TextFormatter with CodeGenerator {
case 'br':
lineBreak(false);
case 'dl':
case 'dt':
case 'h1':
case 'h2':
case 'h3':
@@ -106,6 +105,10 @@ class _TextFormatter with CodeGenerator {
addAll(node.nodes);
lineBreak(false);
});
case 'dt':
word += '* `';
addAll(node.nodes);
word += '`';
case 'dd':
lineBreak(true);
indent(() {