Add punctuation for unterminated sentences in doc comments (#62755)

* Add punctuation for unterminated sentences in doc comments

* Addressing review nit
This commit is contained in:
Nolan Scobie 2020-08-06 19:18:52 -04:00 committed by GitHub
parent 3af97d228c
commit 43c1b34cf5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
100 changed files with 194 additions and 179 deletions

View File

@ -10,18 +10,18 @@ import 'tween.dart';
// Examples can assume: // Examples can assume:
// AnimationController _controller; // AnimationController _controller;
/// The status of an animation /// The status of an animation.
enum AnimationStatus { enum AnimationStatus {
/// The animation is stopped at the beginning /// The animation is stopped at the beginning.
dismissed, dismissed,
/// The animation is running from beginning to end /// The animation is running from beginning to end.
forward, forward,
/// The animation is running backwards, from end to beginning /// The animation is running backwards, from end to beginning.
reverse, reverse,
/// The animation is stopped at the end /// The animation is stopped at the end.
completed, completed,
} }

View File

@ -36,19 +36,19 @@ enum DatePickerDateTimeOrder {
enum DatePickerDateOrder { enum DatePickerDateOrder {
/// Order of the columns, from left to right: day, month, year. /// Order of the columns, from left to right: day, month, year.
/// ///
/// Example: 12 | March | 1996 /// Example: 12 | March | 1996.
dmy, dmy,
/// Order of the columns, from left to right: month, day, year. /// Order of the columns, from left to right: month, day, year.
/// ///
/// Example: March | 12 | 1996 /// Example: March | 12 | 1996.
mdy, mdy,
/// Order of the columns, from left to right: year, month, day. /// Order of the columns, from left to right: year, month, day.
/// ///
/// Example: 1996 | March | 12 /// Example: 1996 | March | 12.
ymd, ymd,
/// Order of the columns, from left to right: year, day, month. /// Order of the columns, from left to right: year, day, month.
/// ///
/// Example: 1996 | 12 | March /// Example: 1996 | 12 | March.
ydm, ydm,
} }
@ -208,19 +208,19 @@ abstract class CupertinoLocalizations {
// The global version uses the translated string from the arb file. // The global version uses the translated string from the arb file.
String timerPickerSecondLabel(int second); String timerPickerSecondLabel(int second);
/// The term used for cutting /// The term used for cutting.
// The global version uses the translated string from the arb file. // The global version uses the translated string from the arb file.
String get cutButtonLabel; String get cutButtonLabel;
/// The term used for copying /// The term used for copying.
// The global version uses the translated string from the arb file. // The global version uses the translated string from the arb file.
String get copyButtonLabel; String get copyButtonLabel;
/// The term used for pasting /// The term used for pasting.
// The global version uses the translated string from the arb file. // The global version uses the translated string from the arb file.
String get pasteButtonLabel; String get pasteButtonLabel;
/// The term used for selecting everything /// The term used for selecting everything.
// The global version uses the translated string from the arb file. // The global version uses the translated string from the arb file.
String get selectAllButtonLabel; String get selectAllButtonLabel;

View File

@ -184,7 +184,7 @@ class CupertinoSegmentedControl<T> extends StatefulWidget {
/// Defaults to the selectedColor at 20% opacity if null. /// Defaults to the selectedColor at 20% opacity if null.
final Color pressedColor; final Color pressedColor;
/// The CupertinoSegmentedControl will be placed inside this padding /// The CupertinoSegmentedControl will be placed inside this padding.
/// ///
/// Defaults to EdgeInsets.symmetric(horizontal: 16.0) /// Defaults to EdgeInsets.symmetric(horizontal: 16.0)
final EdgeInsetsGeometry padding; final EdgeInsetsGeometry padding;

View File

@ -99,7 +99,7 @@ abstract class StackFilter {
/// Filters the list of [StackFrame]s by updating corresponding indices in /// Filters the list of [StackFrame]s by updating corresponding indices in
/// `reasons`. /// `reasons`.
/// ///
/// To elide a frame or number of frames, set the string /// To elide a frame or number of frames, set the string.
void filter(List<StackFrame> stackFrames, List<String?> reasons); void filter(List<StackFrame> stackFrames, List<String?> reasons);
} }

View File

@ -258,7 +258,7 @@ class TextTreeConfiguration {
/// Prefix to add to other lines to display a child with this style. /// Prefix to add to other lines to display a child with this style.
/// ///
/// [prefixOtherLines] should typically be one character shorter than /// [prefixOtherLines] should typically be one character shorter than
/// [prefixLineOne] as /// [prefixLineOne] is.
final String prefixOtherLines; final String prefixOtherLines;
/// Prefix to add to the first line to display the last child of a node with /// Prefix to add to the first line to display the last child of a node with
@ -1511,7 +1511,7 @@ abstract class DiagnosticsNode {
/// will make the name self-evident. /// will make the name self-evident.
final bool showName; final bool showName;
/// Prefix to include at the start of each line /// Prefix to include at the start of each line.
final String? linePrefix; final String? linePrefix;
/// Description to show if the node has no displayed properties or children. /// Description to show if the node has no displayed properties or children.

View File

@ -15,26 +15,26 @@ class Unicode {
// prevents instantiation and extension. // prevents instantiation and extension.
// ignore: unused_element // ignore: unused_element
Unicode._(); Unicode._();
/// U+202A LEFT-TO-RIGHT EMBEDDING /// `U+202A LEFT-TO-RIGHT EMBEDDING`
/// ///
/// Treat the following text as embedded left-to-right. /// Treat the following text as embedded left-to-right.
/// ///
/// Use [PDF] to end the embedding. /// Use [PDF] to end the embedding.
static const String LRE = '\u202A'; static const String LRE = '\u202A';
/// U+202B RIGHT-TO-LEFT EMBEDDING /// `U+202B RIGHT-TO-LEFT EMBEDDING`
/// ///
/// Treat the following text as embedded right-to-left. /// Treat the following text as embedded right-to-left.
/// ///
/// Use [PDF] to end the embedding. /// Use [PDF] to end the embedding.
static const String RLE = '\u202B'; static const String RLE = '\u202B';
/// U+202C POP DIRECTIONAL FORMATTING /// `U+202C POP DIRECTIONAL FORMATTING`
/// ///
/// End the scope of the last [LRE], [RLE], [RLO], or [LRO]. /// End the scope of the last [LRE], [RLE], [RLO], or [LRO].
static const String PDF = '\u202C'; static const String PDF = '\u202C';
/// U+202A LEFT-TO-RIGHT OVERRIDE /// `U+202A LEFT-TO-RIGHT OVERRIDE`
/// ///
/// Force following characters to be treated as strong left-to-right characters. /// Force following characters to be treated as strong left-to-right characters.
/// ///
@ -43,7 +43,7 @@ class Unicode {
/// Use [PDF] to end the override. /// Use [PDF] to end the override.
static const String LRO = '\u202D'; static const String LRO = '\u202D';
/// U+202B RIGHT-TO-LEFT OVERRIDE /// `U+202B RIGHT-TO-LEFT OVERRIDE`
/// ///
/// Force following characters to be treated as strong right-to-left characters. /// Force following characters to be treated as strong right-to-left characters.
/// ///
@ -52,21 +52,21 @@ class Unicode {
/// Use [PDF] to end the override. /// Use [PDF] to end the override.
static const String RLO = '\u202E'; static const String RLO = '\u202E';
/// U+2066 LEFT-TO-RIGHT ISOLATE /// `U+2066 LEFT-TO-RIGHT ISOLATE`
/// ///
/// Treat the following text as isolated and left-to-right. /// Treat the following text as isolated and left-to-right.
/// ///
/// Use [PDI] to end the isolated scope. /// Use [PDI] to end the isolated scope.
static const String LRI = '\u2066'; static const String LRI = '\u2066';
/// U+2067 RIGHT-TO-LEFT ISOLATE /// `U+2067 RIGHT-TO-LEFT ISOLATE`
/// ///
/// Treat the following text as isolated and right-to-left. /// Treat the following text as isolated and right-to-left.
/// ///
/// Use [PDI] to end the isolated scope. /// Use [PDI] to end the isolated scope.
static const String RLI = '\u2067'; static const String RLI = '\u2067';
/// U+2068 FIRST STRONG ISOLATE /// `U+2068 FIRST STRONG ISOLATE`
/// ///
/// Treat the following text as isolated and in the direction of its first /// Treat the following text as isolated and in the direction of its first
/// strong directional character that is not inside a nested isolate. /// strong directional character that is not inside a nested isolate.
@ -79,22 +79,22 @@ class Unicode {
/// Use [PDI] to end the isolated scope. /// Use [PDI] to end the isolated scope.
static const String FSI = '\u2068'; static const String FSI = '\u2068';
/// U+2069 POP DIRECTIONAL ISOLATE /// `U+2069 POP DIRECTIONAL ISOLATE`
/// ///
/// End the scope of the last [LRI], [RLI], or [FSI]. /// End the scope of the last [LRI], [RLI], or [FSI].
static const String PDI = '\u2069'; static const String PDI = '\u2069';
/// U+200E LEFT-TO-RIGHT MARK /// `U+200E LEFT-TO-RIGHT MARK`
/// ///
/// Left-to-right zero-width character. /// Left-to-right zero-width character.
static const String LRM = '\u200E'; static const String LRM = '\u200E';
/// U+200F RIGHT-TO-LEFT MARK /// `U+200F RIGHT-TO-LEFT MARK`
/// ///
/// Right-to-left zero-width non-Arabic character. /// Right-to-left zero-width non-Arabic character.
static const String RLM = '\u200F'; static const String RLM = '\u200F';
/// U+061C ARABIC LETTER MARK /// `U+061C ARABIC LETTER MARK`
/// ///
/// Right-to-left zero-width Arabic character. /// Right-to-left zero-width Arabic character.
static const String ALM = '\u061C'; static const String ALM = '\u061C';

View File

@ -388,7 +388,7 @@ abstract class PointerEvent with Diagnosticable {
/// ///
/// The angle of the contact ellipse, in radians in the range: /// The angle of the contact ellipse, in radians in the range:
/// ///
/// -pi/2 < orientation <= pi/2 /// -pi/2 < orientation <= pi/2
/// ///
/// ...giving the angle of the major axis of the ellipse with the y-axis /// ...giving the angle of the major axis of the ellipse with the y-axis
/// (negative angles indicating an orientation along the top-left / /// (negative angles indicating an orientation along the top-left /
@ -400,7 +400,7 @@ abstract class PointerEvent with Diagnosticable {
/// ///
/// The angle of the stylus, in radians in the range: /// The angle of the stylus, in radians in the range:
/// ///
/// -pi < orientation <= pi /// -pi < orientation <= pi
/// ///
/// ...giving the angle of the axis of the stylus projected onto the input /// ...giving the angle of the axis of the stylus projected onto the input
/// surface, relative to the positive y-axis of that surface (thus 0.0 /// surface, relative to the positive y-axis of that surface (thus 0.0
@ -417,7 +417,7 @@ abstract class PointerEvent with Diagnosticable {
/// ///
/// The angle of the stylus, in radians in the range: /// The angle of the stylus, in radians in the range:
/// ///
/// 0 <= tilt <= pi/2 /// 0 <= tilt <= pi/2
/// ///
/// ...giving the angle of the axis of the stylus, relative to the axis /// ...giving the angle of the axis of the stylus, relative to the axis
/// perpendicular to the input surface (thus 0.0 indicates the stylus is /// perpendicular to the input surface (thus 0.0 indicates the stylus is

View File

@ -359,7 +359,7 @@ class ScaleGestureRecognizer extends OneSequenceGestureRecognizer {
} }
/// Updates [_initialLine] and [_currentLine] accordingly to the situation of /// Updates [_initialLine] and [_currentLine] accordingly to the situation of
/// the registered pointers /// the registered pointers.
void _updateLines() { void _updateLines() {
final int count = _pointerLocations.keys.length; final int count = _pointerLocations.keys.length;
assert(_pointerQueue.length >= count); assert(_pointerQueue.length >= count);

View File

@ -11,7 +11,7 @@ import 'constants.dart';
import 'events.dart'; import 'events.dart';
import 'recognizer.dart'; import 'recognizer.dart';
/// Details for [GestureTapDownCallback], such as position /// Details for [GestureTapDownCallback], such as position.
/// ///
/// See also: /// See also:
/// ///

View File

@ -279,7 +279,7 @@ class BottomNavigationBar extends StatefulWidget {
final IconThemeData selectedIconTheme; final IconThemeData selectedIconTheme;
/// The size, opacity, and color of the icon in the currently unselected /// The size, opacity, and color of the icon in the currently unselected
/// [BottomNavigationBarItem.icon]s /// [BottomNavigationBarItem.icon]s.
/// ///
/// If this is not provided, the size will default to [iconSize], the color /// If this is not provided, the size will default to [iconSize], the color
/// will default to [unselectedItemColor]. /// will default to [unselectedItemColor].

View File

@ -1430,7 +1430,7 @@ class RawChip extends StatefulWidget
CheckmarkableChipAttributes, CheckmarkableChipAttributes,
DisabledChipAttributes, DisabledChipAttributes,
TappableChipAttributes { TappableChipAttributes {
/// Creates a RawChip /// Creates a RawChip.
/// ///
/// The [onPressed] and [onSelected] callbacks must not both be specified at /// The [onPressed] and [onSelected] callbacks must not both be specified at
/// the same time. /// the same time.

View File

@ -18,7 +18,7 @@ import 'theme_data.dart';
/// [InputChip], [ChoiceChip], [FilterChip], and [ActionChip]. /// [InputChip], [ChoiceChip], [FilterChip], and [ActionChip].
/// ///
/// A chip theme describes the color, shape and text styles for the chips it is /// A chip theme describes the color, shape and text styles for the chips it is
/// applied to /// applied to.
/// ///
/// Descendant widgets obtain the current theme's [ChipThemeData] object using /// Descendant widgets obtain the current theme's [ChipThemeData] object using
/// [ChipTheme.of]. When a widget uses [ChipTheme.of], it is automatically /// [ChipTheme.of]. When a widget uses [ChipTheme.of], it is automatically

View File

@ -179,7 +179,7 @@ class FlexibleSpaceBar extends StatefulWidget {
/// Defaults to [CollapseMode.parallax]. /// Defaults to [CollapseMode.parallax].
final CollapseMode collapseMode; final CollapseMode collapseMode;
/// Stretch effect while over-scrolling, /// Stretch effect while over-scrolling.
/// ///
/// Defaults to include [StretchMode.zoomBackground]. /// Defaults to include [StretchMode.zoomBackground].
final List<StretchMode> stretchModes; final List<StretchMode> stretchModes;

View File

@ -85,7 +85,7 @@ abstract class InteractiveInkFeature extends InkFeature {
/// [clipCallback] is the callback used to obtain the [Rect] used for clipping the ink effect. /// [clipCallback] is the callback used to obtain the [Rect] used for clipping the ink effect.
/// If [clipCallback] is null, no clipping is performed on the ink circle. /// If [clipCallback] is null, no clipping is performed on the ink circle.
/// ///
/// Clipping can happen in 3 different ways - /// Clipping can happen in 3 different ways:
/// 1. If [customBorder] is provided, it is used to determine the path /// 1. If [customBorder] is provided, it is used to determine the path
/// for clipping. /// for clipping.
/// 2. If [customBorder] is null, and [borderRadius] is provided, the canvas /// 2. If [customBorder] is null, and [borderRadius] is provided, the canvas

View File

@ -468,7 +468,7 @@ class _HelperErrorState extends State<_HelperError> with SingleTickerProviderSta
} }
} }
/// Defines the behavior of the floating label /// Defines the behavior of the floating label.
enum FloatingLabelBehavior { enum FloatingLabelBehavior {
/// The label will always be positioned within the content, or hidden. /// The label will always be positioned within the content, or hidden.
never, never,

View File

@ -118,7 +118,7 @@ class MergeableMaterial extends StatefulWidget {
/// The z-coordinate at which to place all the [Material] slices. /// The z-coordinate at which to place all the [Material] slices.
/// ///
/// The following elevations have defined shadows: 1, 2, 3, 4, 6, 8, 9, 12, 16, 24 /// The following elevations have defined shadows: 1, 2, 3, 4, 6, 8, 9, 12, 16, 24.
/// ///
/// Defaults to 2, the appropriate elevation for cards. /// Defaults to 2, the appropriate elevation for cards.
/// ///

View File

@ -58,7 +58,7 @@ const double _monthNavButtonsWidth = 108.0;
/// time picker. /// time picker.
/// ///
class CalendarDatePicker extends StatefulWidget { class CalendarDatePicker extends StatefulWidget {
/// Creates a calender date picker /// Creates a calender date picker.
/// ///
/// It will display a grid of days for the [initialDate]'s month. The day /// It will display a grid of days for the [initialDate]'s month. The day
/// indicated by [initialDate] will be selected. /// indicated by [initialDate] will be selected.
@ -437,7 +437,7 @@ class _MonthPicker extends StatefulWidget {
assert(!selectedDate.isAfter(lastDate)), assert(!selectedDate.isAfter(lastDate)),
super(key: key); super(key: key);
/// The initial month to display /// The initial month to display.
final DateTime initialMonth; final DateTime initialMonth;
/// The current date. /// The current date.
@ -463,7 +463,7 @@ class _MonthPicker extends StatefulWidget {
/// Called when the user picks a day. /// Called when the user picks a day.
final ValueChanged<DateTime> onChanged; final ValueChanged<DateTime> onChanged;
/// Called when the user navigates to a new month /// Called when the user navigates to a new month.
final ValueChanged<DateTime> onDisplayedMonthChanged; final ValueChanged<DateTime> onDisplayedMonthChanged;
/// Optional user supplied predicate function to customize selectable days. /// Optional user supplied predicate function to customize selectable days.

View File

@ -175,7 +175,7 @@ abstract class SearchDelegate<T> {
/// clear the query and show the suggestions again (via [showSuggestions]) if /// clear the query and show the suggestions again (via [showSuggestions]) if
/// the results are currently shown. /// the results are currently shown.
/// ///
/// Returns null if no widget should be shown /// Returns null if no widget should be shown.
/// ///
/// See also: /// See also:
/// ///

View File

@ -14,7 +14,7 @@ import 'package:flutter/painting.dart';
/// Map of elevation offsets used by material design to [BoxShadow] definitions. /// Map of elevation offsets used by material design to [BoxShadow] definitions.
/// ///
/// The following elevations have defined shadows: 1, 2, 3, 4, 6, 8, 9, 12, 16, 24 /// The following elevations have defined shadows: 1, 2, 3, 4, 6, 8, 9, 12, 16, 24.
/// ///
/// Each entry has three shadows which must be combined to obtain the defined /// Each entry has three shadows which must be combined to obtain the defined
/// effect for that elevation. /// effect for that elevation.

View File

@ -27,7 +27,7 @@ import 'theme_data.dart';
/// The slider is as big as the largest of /// The slider is as big as the largest of
/// the [SliderComponentShape.getPreferredSize] of the thumb shape, /// the [SliderComponentShape.getPreferredSize] of the thumb shape,
/// the [SliderComponentShape.getPreferredSize] of the overlay shape, /// the [SliderComponentShape.getPreferredSize] of the overlay shape,
/// and the [SliderTickMarkShape.getPreferredSize] of the tick mark shape /// and the [SliderTickMarkShape.getPreferredSize] of the tick mark shape.
/// ///
/// See also: /// See also:
/// ///

View File

@ -734,7 +734,7 @@ class TabBar extends StatefulWidget implements PreferredSizeWidget {
/// If this property is null, then kTabLabelPadding is used. /// If this property is null, then kTabLabelPadding is used.
final EdgeInsetsGeometry labelPadding; final EdgeInsetsGeometry labelPadding;
/// The text style of the unselected tab labels /// The text style of the unselected tab labels.
/// ///
/// If this property is null, then the [labelStyle] value is used. If [labelStyle] /// If this property is null, then the [labelStyle] value is used. If [labelStyle]
/// is null, then the text style of the [ThemeData.primaryTextTheme]'s /// is null, then the text style of the [ThemeData.primaryTextTheme]'s

View File

@ -29,7 +29,7 @@ export 'package:flutter/services.dart' show TextInputType, TextInputAction, Text
/// Signature for the [TextField.buildCounter] callback. /// Signature for the [TextField.buildCounter] callback.
typedef InputCounterWidgetBuilder = Widget Function( typedef InputCounterWidgetBuilder = Widget Function(
/// The build context for the TextField /// The build context for the TextField.
BuildContext context, { BuildContext context, {
/// The length of the string currently in the input. /// The length of the string currently in the input.
@required int currentLength, @required int currentLength,

View File

@ -1097,7 +1097,7 @@ class ThemeData with Diagnosticable {
final TextButtonThemeData textButtonTheme; final TextButtonThemeData textButtonTheme;
/// A theme for customizing the appearance and internal layout of /// A theme for customizing the appearance and internal layout of
/// [ElevatedButton]s /// [ElevatedButton]s.
final ElevatedButtonThemeData elevatedButtonTheme; final ElevatedButtonThemeData elevatedButtonTheme;
/// A theme for customizing the appearance and internal layout of /// A theme for customizing the appearance and internal layout of

View File

@ -134,7 +134,7 @@ class TimePickerThemeData with Diagnosticable {
/// The color of the entry mode [IconButton]. /// The color of the entry mode [IconButton].
/// ///
/// If this is null, the time picker defaults to /// If this is null, the time picker defaults to:
/// ``` /// ```
/// Theme.of(context).colorScheme.onSurface.withOpacity( /// Theme.of(context).colorScheme.onSurface.withOpacity(
/// Theme.of(context).colorScheme.brightness == Brightness.dark ? 1.0 : 0.6, /// Theme.of(context).colorScheme.brightness == Brightness.dark ? 1.0 : 0.6,

View File

@ -169,27 +169,27 @@ enum VerticalDirection {
/// A direction along either the horizontal or vertical [Axis]. /// A direction along either the horizontal or vertical [Axis].
enum AxisDirection { enum AxisDirection {
/// Zero is at the bottom and positive values are above it: /// Zero is at the bottom and positive values are above it: ``
/// ///
/// Alphabetical content with a [GrowthDirection.forward] would have the A at /// Alphabetical content with a [GrowthDirection.forward] would have the A at
/// the bottom and the Z at the top. This is an unusual configuration. /// the bottom and the Z at the top. This is an unusual configuration.
up, up,
/// Zero is on the left and positive values are to the right of it: /// Zero is on the left and positive values are to the right of it: ``
/// ///
/// Alphabetical content with a [GrowthDirection.forward] would have the A on /// Alphabetical content with a [GrowthDirection.forward] would have the A on
/// the left and the Z on the right. This is the ordinary reading order for a /// the left and the Z on the right. This is the ordinary reading order for a
/// horizontal set of tabs in an English application, for example. /// horizontal set of tabs in an English application, for example.
right, right,
/// Zero is at the top and positive values are below it: /// Zero is at the top and positive values are below it: ``
/// ///
/// Alphabetical content with a [GrowthDirection.forward] would have the A at /// Alphabetical content with a [GrowthDirection.forward] would have the A at
/// the top and the Z at the bottom. This is the ordinary reading order for a /// the top and the Z at the bottom. This is the ordinary reading order for a
/// vertical list. /// vertical list.
down, down,
/// Zero is to the right and positive values are to the left of it: /// Zero is to the right and positive values are to the left of it: ``
/// ///
/// Alphabetical content with a [GrowthDirection.forward] would have the A at /// Alphabetical content with a [GrowthDirection.forward] would have the A at
/// the right and the Z at the left. This is the ordinary reading order for a /// the right and the Z at the left. This is the ordinary reading order for a

View File

@ -471,7 +471,7 @@ class _BoxDecorationPainter extends BoxPainter {
super.dispose(); super.dispose();
} }
/// Paint the box decoration into the given location on the given canvas /// Paint the box decoration into the given location on the given canvas.
@override @override
void paint(Canvas canvas, Offset offset, ImageConfiguration configuration) { void paint(Canvas canvas, Offset offset, ImageConfiguration configuration) {
assert(configuration != null); assert(configuration != null);

View File

@ -989,7 +989,7 @@ class MemoryImage extends ImageProvider<MemoryImage> {
/// - icons/heart.png /// - icons/heart.png
/// ``` /// ```
/// ///
/// Then, to fetch the image and associate it with scale `1.5`, use /// Then, to fetch the image and associate it with scale `1.5`, use:
/// ///
/// ```dart /// ```dart
/// AssetImage('icons/heart.png', scale: 1.5) /// AssetImage('icons/heart.png', scale: 1.5)

View File

@ -75,7 +75,7 @@ const String _kAssetManifestFileName = 'AssetManifest.json';
/// - icons/heart.png /// - icons/heart.png
/// ``` /// ```
/// ///
/// Then, to fetch the image, use /// Then, to fetch the image, use:
/// ```dart /// ```dart
/// AssetImage('icons/heart.png') /// AssetImage('icons/heart.png')
/// ``` /// ```

View File

@ -68,7 +68,7 @@ abstract class PlaceholderSpan extends InlineSpan {
} }
// TODO(garyq): Remove this after next stable release. // TODO(garyq): Remove this after next stable release.
/// The [visitTextSpan] method is invalid on [PlaceholderSpan]s /// The [visitTextSpan] method is invalid on [PlaceholderSpan]s.
@override @override
@Deprecated( @Deprecated(
'Use to visitChildren instead. ' 'Use to visitChildren instead. '

View File

@ -156,7 +156,7 @@ mixin RendererBinding on BindingBase, ServicesBinding, SchedulerBinding, Gesture
MouseTracker _mouseTracker; MouseTracker _mouseTracker;
/// The render tree's owner, which maintains dirty state for layout, /// The render tree's owner, which maintains dirty state for layout,
/// composite, paint, and accessibility semantics /// composite, paint, and accessibility semantics.
PipelineOwner get pipelineOwner => _pipelineOwner; PipelineOwner get pipelineOwner => _pipelineOwner;
PipelineOwner _pipelineOwner; PipelineOwner _pipelineOwner;

View File

@ -249,7 +249,7 @@ class BoxConstraints extends Constraints {
BoxConstraints widthConstraints() => BoxConstraints(minWidth: minWidth, maxWidth: maxWidth); BoxConstraints widthConstraints() => BoxConstraints(minWidth: minWidth, maxWidth: maxWidth);
/// Returns box constraints with the same height constraints but with /// Returns box constraints with the same height constraints but with
/// unconstrained width /// unconstrained width.
BoxConstraints heightConstraints() => BoxConstraints(minHeight: minHeight, maxHeight: maxHeight); BoxConstraints heightConstraints() => BoxConstraints(minHeight: minHeight, maxHeight: maxHeight);
/// Returns the width that both satisfies the constraints and is as close as /// Returns the width that both satisfies the constraints and is as close as

View File

@ -316,7 +316,7 @@ class RenderEditable extends RenderBox with RelayoutWhenSystemFontsChangeMixin {
/// [handleDoubleTap], and [handleLongPress]. /// [handleDoubleTap], and [handleLongPress].
/// ///
/// If there are any gesture recognizers in the text span, the [handleEvent] /// If there are any gesture recognizers in the text span, the [handleEvent]
/// will still propagate pointer events to those recognizers /// will still propagate pointer events to those recognizers.
/// ///
/// The default value of this property is false. /// The default value of this property is false.
bool ignorePointer; bool ignorePointer;

View File

@ -35,7 +35,7 @@ enum FlexFit {
/// Parent data for use with [RenderFlex]. /// Parent data for use with [RenderFlex].
class FlexParentData extends ContainerBoxParentData<RenderBox> { class FlexParentData extends ContainerBoxParentData<RenderBox> {
/// The flex factor to use for this child /// The flex factor to use for this child.
/// ///
/// If null or zero, the child is inflexible and determines its own size. If /// If null or zero, the child is inflexible and determines its own size. If
/// non-zero, the amount of space the child's can occupy in the main axis is /// non-zero, the amount of space the child's can occupy in the main axis is

View File

@ -440,7 +440,7 @@ class BaseMouseTracker extends ChangeNotifier {
/// Override this method to receive updates when the relationship between a /// Override this method to receive updates when the relationship between a
/// device and annotations have changed. Subclasses should override this method /// device and annotations have changed. Subclasses should override this method
/// to first call to their inherited [handleDeviceUpdate] method, and then /// to first call to their inherited [handleDeviceUpdate] method, and then
/// process the update as desired, /// process the update as desired.
/// ///
/// The update can be caused by two kinds of triggers: /// The update can be caused by two kinds of triggers:
/// ///

View File

@ -676,7 +676,7 @@ abstract class Constraints {
/// const constructors so that they can be used in const expressions. /// const constructors so that they can be used in const expressions.
const Constraints(); const Constraints();
/// Whether there is exactly one size possible given these constraints /// Whether there is exactly one size possible given these constraints.
bool get isTight; bool get isTight;
/// Whether the constraint is expressed in a consistent manner. /// Whether the constraint is expressed in a consistent manner.
@ -2987,7 +2987,7 @@ mixin RenderObjectWithChildMixin<ChildType extends RenderObject> on RenderObject
} }
ChildType _child; ChildType _child;
/// The render object's unique child /// The render object's unique child.
ChildType get child => _child; ChildType get child => _child;
set child(ChildType value) { set child(ChildType value) {
if (_child != null) if (_child != null)

View File

@ -207,7 +207,7 @@ class RenderConstrainedBox extends RenderProxyBox {
_additionalConstraints = additionalConstraints, _additionalConstraints = additionalConstraints,
super(child); super(child);
/// Additional constraints to apply to [child] during layout /// Additional constraints to apply to [child] during layout.
BoxConstraints get additionalConstraints => _additionalConstraints; BoxConstraints get additionalConstraints => _additionalConstraints;
BoxConstraints _additionalConstraints; BoxConstraints _additionalConstraints;
set additionalConstraints(BoxConstraints value) { set additionalConstraints(BoxConstraints value) {
@ -3403,7 +3403,7 @@ class RenderMetaData extends RenderProxyBoxWithHitTestBehavior {
RenderBox child, RenderBox child,
}) : super(behavior: behavior, child: child); }) : super(behavior: behavior, child: child);
/// Opaque meta data ignored by the render tree /// Opaque meta data ignored by the render tree.
dynamic metaData; dynamic metaData;
@override @override

View File

@ -284,7 +284,7 @@ enum Overflow {
clip, clip,
} }
/// Implements the stack layout algorithm /// Implements the stack layout algorithm.
/// ///
/// In a stack layout, the children are positioned on top of each other in the /// In a stack layout, the children are positioned on top of each other in the
/// order in which they appear in the child list. First, the non-positioned /// order in which they appear in the child list. First, the non-positioned

View File

@ -694,7 +694,7 @@ class SemanticsProperties extends DiagnosticableTree {
/// If non-null, indicates that this subtree is read only. /// If non-null, indicates that this subtree is read only.
/// ///
/// Only applicable when [textField] is true /// Only applicable when [textField] is true.
/// ///
/// TalkBack/VoiceOver will treat it as non-editable text field. /// TalkBack/VoiceOver will treat it as non-editable text field.
final bool readOnly; final bool readOnly;

View File

@ -712,7 +712,7 @@ class AutofillConfiguration {
abstract class AutofillClient { abstract class AutofillClient {
/// The unique identifier of this [AutofillClient]. /// The unique identifier of this [AutofillClient].
/// ///
/// Must not be null; /// Must not be null.
String get autofillId; String get autofillId;
/// The [TextInputConfiguration] that describes this [AutofillClient]. /// The [TextInputConfiguration] that describes this [AutofillClient].

View File

@ -53,7 +53,7 @@ abstract class TextInputFormatter {
} }
/// Function signature expected for creating custom [TextInputFormatter] /// Function signature expected for creating custom [TextInputFormatter]
/// shorthands via [TextInputFormatter.withFunction]; /// shorthands via [TextInputFormatter.withFunction].
typedef TextInputFormatFunction = TextEditingValue Function( typedef TextInputFormatFunction = TextEditingValue Function(
TextEditingValue oldValue, TextEditingValue oldValue,
TextEditingValue newValue, TextEditingValue newValue,

View File

@ -402,7 +402,7 @@ class BackdropFilter extends SingleChildRenderObjectWidget {
/// The image filter to apply to the existing painted content before painting the child. /// The image filter to apply to the existing painted content before painting the child.
/// ///
/// For example, consider using [ImageFilter.blur] to create a backdrop /// For example, consider using [ImageFilter.blur] to create a backdrop
/// blur effect /// blur effect.
final ui.ImageFilter filter; final ui.ImageFilter filter;
@override @override
@ -4496,7 +4496,7 @@ class Flexible extends ParentDataWidget<FlexParentData> {
@required Widget child, @required Widget child,
}) : super(key: key, child: child); }) : super(key: key, child: child);
/// The flex factor to use for this child /// The flex factor to use for this child.
/// ///
/// If null or zero, the child is inflexible and determines its own size. If /// If null or zero, the child is inflexible and determines its own size. If
/// non-zero, the amount of space the child's can occupy in the main axis is /// non-zero, the amount of space the child's can occupy in the main axis is
@ -6493,7 +6493,7 @@ class IgnorePointer extends SingleChildRenderObjectWidget {
class AbsorbPointer extends SingleChildRenderObjectWidget { class AbsorbPointer extends SingleChildRenderObjectWidget {
/// Creates a widget that absorbs pointers during hit testing. /// Creates a widget that absorbs pointers during hit testing.
/// ///
/// The [absorbing] argument must not be null /// The [absorbing] argument must not be null.
const AbsorbPointer({ const AbsorbPointer({
Key key, Key key,
this.absorbing = true, this.absorbing = true,
@ -6557,7 +6557,7 @@ class MetaData extends SingleChildRenderObjectWidget {
Widget child, Widget child,
}) : super(key: key, child: child); }) : super(key: key, child: child);
/// Opaque meta data ignored by the render tree /// Opaque meta data ignored by the render tree.
final dynamic metaData; final dynamic metaData;
/// How to behave during hit testing. /// How to behave during hit testing.

View File

@ -1006,7 +1006,7 @@ mixin WidgetsBinding on BindingBase, ServicesBinding, SchedulerBinding, GestureB
/// The widget is given constraints during layout that force it to fill the /// The widget is given constraints during layout that force it to fill the
/// entire screen. If you wish to align your widget to one side of the screen /// entire screen. If you wish to align your widget to one side of the screen
/// (e.g., the top), consider using the [Align] widget. If you wish to center /// (e.g., the top), consider using the [Align] widget. If you wish to center
/// your widget, you can also use the [Center] widget /// your widget, you can also use the [Center] widget.
/// ///
/// Calling [runApp] again will detach the previous root widget from the screen /// Calling [runApp] again will detach the previous root widget from the screen
/// and attach the given widget in its place. The new widget tree is compared /// and attach the given widget in its place. The new widget tree is compared

View File

@ -515,7 +515,7 @@ class EditableText extends StatefulWidget {
/// {@endtemplate} /// {@endtemplate}
final bool obscureText; final bool obscureText;
/// {@macro flutter.dart:ui.textHeightBehavior}, /// {@macro flutter.dart:ui.textHeightBehavior}
final TextHeightBehavior textHeightBehavior; final TextHeightBehavior textHeightBehavior;
/// {@macro flutter.painting.textPainter.textWidthBasis} /// {@macro flutter.painting.textPainter.textWidthBasis}
@ -814,7 +814,7 @@ class EditableText extends StatefulWidget {
/// See the examples in [maxLines] for the complete picture of how [maxLines], /// See the examples in [maxLines] for the complete picture of how [maxLines],
/// [minLines], and [expands] interact to produce various behaviors. /// [minLines], and [expands] interact to produce various behaviors.
/// ///
/// Input that matches the height of its parent /// Input that matches the height of its parent:
/// ```dart /// ```dart
/// Expanded( /// Expanded(
/// child: TextField(maxLines: null, expands: true), /// child: TextField(maxLines: null, expands: true),
@ -1064,7 +1064,7 @@ class EditableText extends StatefulWidget {
/// {@template flutter.widgets.editableText.cursorWidth} /// {@template flutter.widgets.editableText.cursorWidth}
/// How thick the cursor will be. /// How thick the cursor will be.
/// ///
/// Defaults to 2.0 /// Defaults to 2.0.
/// ///
/// The cursor will draw under the text. The cursor width will extend /// The cursor will draw under the text. The cursor width will extend
/// to the right of the boundary between characters for left-to-right text /// to the right of the boundary between characters for left-to-right text

View File

@ -563,7 +563,7 @@ class FixedExtentScrollPhysics extends ScrollPhysics {
/// ///
/// When the list is at the zero scroll offset, the first child is aligned with /// When the list is at the zero scroll offset, the first child is aligned with
/// the middle of the viewport. When the list is at the final scroll offset, /// the middle of the viewport. When the list is at the final scroll offset,
/// the last child is aligned with the middle of the viewport /// the last child is aligned with the middle of the viewport.
/// ///
/// The children are rendered as if rotating on a wheel instead of scrolling on /// The children are rendered as if rotating on a wheel instead of scrolling on
/// a plane. /// a plane.

View File

@ -870,7 +870,7 @@ class MediaQuery extends InheritedWidget {
} }
} }
/// Describes the navigation mode to be set by a [MediaQuery] widget /// Describes the navigation mode to be set by a [MediaQuery] widget.
/// ///
/// The different modes indicate the type of navigation to be used in a widget /// The different modes indicate the type of navigation to be used in a widget
/// subtree for those widgets sensitive to it. /// subtree for those widgets sensitive to it.

View File

@ -38,7 +38,7 @@ class PerformanceOverlay extends LeafRenderObjectWidget {
this.checkerboardOffscreenLayers = false, this.checkerboardOffscreenLayers = false,
}) : super(key: key); }) : super(key: key);
/// Create a performance overlay that displays all available statistics /// Create a performance overlay that displays all available statistics.
PerformanceOverlay.allEnabled({ PerformanceOverlay.allEnabled({
Key key, Key key,
this.rasterizerThreshold = 0, this.rasterizerThreshold = 0,

View File

@ -26,7 +26,7 @@ abstract class PreferredSizeWidget implements Widget {
/// In many cases it's only necessary to define one preferred dimension. /// In many cases it's only necessary to define one preferred dimension.
/// For example the [Scaffold] only depends on its app bar's preferred /// For example the [Scaffold] only depends on its app bar's preferred
/// height. In that case implementations of this method can just return /// height. In that case implementations of this method can just return
/// `new Size.fromHeight(myAppBarHeight)`; /// `new Size.fromHeight(myAppBarHeight)`.
Size get preferredSize; Size get preferredSize;
} }

View File

@ -407,7 +407,9 @@ class SliverFillRemaining extends StatelessWidget {
assert(fillOverscroll != null), assert(fillOverscroll != null),
super(key: key); super(key: key);
/// Doc /// Box child widget that fills the remaining space in the viewport.
///
/// The main [SliverFillRemaining] documentation contains more details.
final Widget child; final Widget child;
/// Indicates whether the child has a scrollable body, this value cannot be /// Indicates whether the child has a scrollable body, this value cannot be

View File

@ -27,7 +27,7 @@ class SimpleExpansionPanelListTestWidget extends StatefulWidget {
/// If null, the default [ExpansionPanelList]'s expanded header padding value is applied via [defaultExpandedHeaderPadding] /// If null, the default [ExpansionPanelList]'s expanded header padding value is applied via [defaultExpandedHeaderPadding]
final EdgeInsets expandedHeaderPadding; final EdgeInsets expandedHeaderPadding;
/// Mirrors the default expanded header padding as its source constants are private /// Mirrors the default expanded header padding as its source constants are private.
static EdgeInsets defaultExpandedHeaderPadding() static EdgeInsets defaultExpandedHeaderPadding()
{ {
return const ExpansionPanelList().expandedHeaderPadding; return const ExpansionPanelList().expandedHeaderPadding;

View File

@ -50,7 +50,7 @@ Matcher get paintsNothing => _TestRecordingCanvasPaintsNothingMatcher();
/// Matches objects or functions that assert when they try to paint. /// Matches objects or functions that assert when they try to paint.
Matcher get paintsAssertion => _TestRecordingCanvasPaintsAssertionMatcher(); Matcher get paintsAssertion => _TestRecordingCanvasPaintsAssertionMatcher();
/// Matches objects or functions that draw `methodName` exactly `count` number of times /// Matches objects or functions that draw `methodName` exactly `count` number of times.
Matcher paintsExactlyCountTimes(Symbol methodName, int count) { Matcher paintsExactlyCountTimes(Symbol methodName, int count) {
return _TestRecordingCanvasPaintsCountMatcher(methodName, count); return _TestRecordingCanvasPaintsCountMatcher(methodName, count);
} }

View File

@ -22,7 +22,7 @@ class FakePlatformViewController extends PlatformViewController {
bool disposed = false; bool disposed = false;
bool focusCleared = false; bool focusCleared = false;
/// Events that are dispatched; /// Events that are dispatched.
List<PointerEvent> dispatchedPointerEvents = <PointerEvent>[]; List<PointerEvent> dispatchedPointerEvents = <PointerEvent>[];
int _id; int _id;
@ -59,7 +59,7 @@ class FakeAndroidViewController implements AndroidViewController {
bool focusCleared = false; bool focusCleared = false;
bool created = false; bool created = false;
/// Events that are dispatched; /// Events that are dispatched.
List<PointerEvent> dispatchedPointerEvents = <PointerEvent>[]; List<PointerEvent> dispatchedPointerEvents = <PointerEvent>[];
@override @override

View File

@ -449,7 +449,7 @@ class GetSemanticsIdResult extends Result {
/// Creates a new [GetSemanticsId] result. /// Creates a new [GetSemanticsId] result.
const GetSemanticsIdResult(this.id); const GetSemanticsIdResult(this.id);
/// The semantics id of the node; /// The semantics id of the node.
final int id; final int id;
/// Deserializes this result from JSON. /// Deserializes this result from JSON.

View File

@ -59,7 +59,7 @@ class Scroll extends CommandWithTarget {
/// Delta Y offset per move event. /// Delta Y offset per move event.
final double dy; final double dy;
/// The duration of the scrolling action /// The duration of the scrolling action.
final Duration duration; final Duration duration;
/// The frequency in Hz of the generated move events. /// The frequency in Hz of the generated move events.

View File

@ -160,10 +160,10 @@ abstract class FlutterDriver {
); );
} }
/// Getter of appIsolate /// Getter of appIsolate.
VMIsolate get appIsolate => throw UnimplementedError(); VMIsolate get appIsolate => throw UnimplementedError();
/// Getter of serviceClient /// Getter of serviceClient.
VMServiceClient get serviceClient => throw UnimplementedError(); VMServiceClient get serviceClient => throw UnimplementedError();
/// Sends [command] to the Flutter Driver extensions. /// Sends [command] to the Flutter Driver extensions.

View File

@ -266,7 +266,7 @@ class VMServiceFlutterDriver extends FlutterDriver {
/// The unique ID of this driver instance. /// The unique ID of this driver instance.
final int _driverId; final int _driverId;
/// Client connected to the Dart VM running the Flutter application /// Client connected to the Dart VM running the Flutter application.
/// ///
/// You can use [VMServiceClient] to check VM version, flags and get /// You can use [VMServiceClient] to check VM version, flags and get
/// notified when a new isolate has been instantiated. That could be /// notified when a new isolate has been instantiated. That could be

View File

@ -31,7 +31,7 @@ class WebFlutterDriver extends FlutterDriver {
final FlutterWebConnection _connection; final FlutterWebConnection _connection;
DateTime _startTime; DateTime _startTime;
/// Start time for tracing /// Start time for tracing.
@visibleForTesting @visibleForTesting
DateTime get startTime => _startTime; DateTime get startTime => _startTime;
@ -152,7 +152,7 @@ class WebFlutterDriver extends FlutterDriver {
_startTime = DateTime.now(); _startTime = DateTime.now();
} }
/// Checks whether browser supports Timeline related operations /// Checks whether browser supports Timeline related operations.
void _checkBrowserSupportsTimeline() { void _checkBrowserSupportsTimeline() {
if (!_connection.supportsTimelineAction) { if (!_connection.supportsTimelineAction) {
throw UnsupportedError('Timeline action is not supported by current testing browser'); throw UnsupportedError('Timeline action is not supported by current testing browser');
@ -163,12 +163,12 @@ class WebFlutterDriver extends FlutterDriver {
/// Encapsulates connection information to an instance of a Flutter Web application. /// Encapsulates connection information to an instance of a Flutter Web application.
class FlutterWebConnection { class FlutterWebConnection {
/// Creates a FlutterWebConnection with WebDriver /// Creates a FlutterWebConnection with WebDriver
/// and whether the WebDriver supports timeline action /// and whether the WebDriver supports timeline action.
FlutterWebConnection(this._driver, this.supportsTimelineAction); FlutterWebConnection(this._driver, this.supportsTimelineAction);
final async_io.WebDriver _driver; final async_io.WebDriver _driver;
/// Whether the connected WebDriver supports timeline action for Flutter Web Driver /// Whether the connected WebDriver supports timeline action for Flutter Web Driver.
bool supportsTimelineAction; bool supportsTimelineAction;
/// Starts WebDriver with the given [settings] and /// Starts WebDriver with the given [settings] and
@ -196,7 +196,7 @@ class FlutterWebConnection {
return FlutterWebConnection(driver, settings['support-timeline-action'] as bool); return FlutterWebConnection(driver, settings['support-timeline-action'] as bool);
} }
/// Sends command via WebDriver to Flutter web application /// Sends command via WebDriver to Flutter web application.
Future<dynamic> sendCommand(String script, Duration duration) async { Future<dynamic> sendCommand(String script, Duration duration) async {
dynamic result; dynamic result;
try { try {

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
/// Localizations for the Flutter library /// Localizations for the Flutter library.
library flutter_localizations; library flutter_localizations;
export 'src/cupertino_localizations.dart'; export 'src/cupertino_localizations.dart';

View File

@ -855,6 +855,7 @@ Map<String, String> parseAdbDeviceProperties(String str) {
/// ///
/// Example output: /// Example output:
/// ///
/// ```
/// Applications Memory Usage (in Kilobytes): /// Applications Memory Usage (in Kilobytes):
/// Uptime: 441088659 Realtime: 521464097 /// Uptime: 441088659 Realtime: 521464097
/// ///
@ -906,6 +907,7 @@ Map<String, String> parseAdbDeviceProperties(String str) {
/// MEMORY_USED: 0 /// MEMORY_USED: 0
/// PAGECACHE_OVERFLOW: 0 MALLOC_SIZE: 0 /// PAGECACHE_OVERFLOW: 0 MALLOC_SIZE: 0
/// ... /// ...
/// ```
/// ///
/// For more information, see https://developer.android.com/studio/command-line/dumpsys. /// For more information, see https://developer.android.com/studio/command-line/dumpsys.
@visibleForTesting @visibleForTesting

View File

@ -18,7 +18,7 @@ import 'android_device.dart';
import 'android_sdk.dart'; import 'android_sdk.dart';
import 'android_workflow.dart' hide androidWorkflow; import 'android_workflow.dart' hide androidWorkflow;
/// Device discovery for Android physical devices and emulators.s /// Device discovery for Android physical devices and emulators.
class AndroidDevices extends PollingDeviceDiscovery { class AndroidDevices extends PollingDeviceDiscovery {
AndroidDevices({ AndroidDevices({
@required AndroidWorkflow androidWorkflow, @required AndroidWorkflow androidWorkflow,

View File

@ -872,7 +872,7 @@ Iterable<String> findApkFilesModule(
/// Returns the APK files for a given [FlutterProject] and [AndroidBuildInfo]. /// Returns the APK files for a given [FlutterProject] and [AndroidBuildInfo].
/// ///
/// The flutter.gradle plugin will copy APK outputs into: /// The flutter.gradle plugin will copy APK outputs into:
/// $buildDir/app/outputs/flutter-apk/app-<abi>-<flavor-flag>-<build-mode-flag>.apk /// `$buildDir/app/outputs/flutter-apk/app-<abi>-<flavor-flag>-<build-mode-flag>.apk`
@visibleForTesting @visibleForTesting
Iterable<String> listApkPaths( Iterable<String> listApkPaths(
AndroidBuildInfo androidBuildInfo, AndroidBuildInfo androidBuildInfo,

View File

@ -262,7 +262,7 @@ class AndroidApk extends ApplicationPackage {
String get name => file.basename; String get name => file.basename;
} }
/// Tests whether a [Directory] is an iOS bundle directory /// Tests whether a [Directory] is an iOS bundle directory.
bool _isBundleDirectory(Directory dir) => dir.path.endsWith('.app'); bool _isBundleDirectory(Directory dir) => dir.path.endsWith('.app');
abstract class IOSApp extends ApplicationPackage { abstract class IOSApp extends ApplicationPackage {

View File

@ -67,7 +67,7 @@ enum Artifact {
windowsDesktopPath, windowsDesktopPath,
/// The root of the cpp client code for Windows desktop. /// The root of the cpp client code for Windows desktop.
windowsCppClientWrapper, windowsCppClientWrapper,
/// The root of the sky_engine package /// The root of the sky_engine package.
skyEnginePath, skyEnginePath,
/// The location of the macOS engine podspec file. /// The location of the macOS engine podspec file.
flutterMacOSPodspec, flutterMacOSPodspec,

View File

@ -65,7 +65,7 @@ class _ManifestAssetBundleFactory implements AssetBundleFactory {
AssetBundle createBundle() => ManifestAssetBundle(); AssetBundle createBundle() => ManifestAssetBundle();
} }
/// An asset bundle based on a pubspec.yaml /// An asset bundle based on a pubspec.yaml file.
class ManifestAssetBundle implements AssetBundle { class ManifestAssetBundle implements AssetBundle {
/// Constructs an [ManifestAssetBundle] that gathers the set of assets from the /// Constructs an [ManifestAssetBundle] that gathers the set of assets from the
/// pubspec.yaml manifest. /// pubspec.yaml manifest.
@ -652,12 +652,13 @@ class _AssetDirectoryCache {
/// ///
/// Given package: 'test_package' and an assets directory like this: /// Given package: 'test_package' and an assets directory like this:
/// ///
/// assets/foo /// - assets/foo
/// assets/var1/foo /// - assets/var1/foo
/// assets/var2/foo /// - assets/var2/foo
/// assets/bar /// - assets/bar
/// ///
/// returns /// This will return:
/// ```
/// { /// {
/// asset: packages/test_package/assets/foo: [ /// asset: packages/test_package/assets/foo: [
/// asset: packages/test_package/assets/foo, /// asset: packages/test_package/assets/foo,
@ -668,7 +669,7 @@ class _AssetDirectoryCache {
/// asset: packages/test_package/assets/bar, /// asset: packages/test_package/assets/bar,
/// ], /// ],
/// } /// }
/// /// ```
Map<_Asset, List<_Asset>> _parseAssets( Map<_Asset, List<_Asset>> _parseAssets(
PackageConfig packageConfig, PackageConfig packageConfig,

View File

@ -230,11 +230,11 @@ class CommandHelpOption {
final OutputPreferences _outputPreferences; final OutputPreferences _outputPreferences;
/// The key associated with this command /// The key associated with this command.
final String key; final String key;
/// A description of what this command does /// A description of what this command does.
final String description; final String description;
/// Text shown in parenthesis to give the context /// Text shown in parenthesis to give the context.
final String inParenthesis; final String inParenthesis;
bool get _hasTextInParenthesis => inParenthesis != null && inParenthesis.isNotEmpty; bool get _hasTextInParenthesis => inParenthesis != null && inParenthesis.isNotEmpty;

View File

@ -9,7 +9,7 @@ bool isRunningFromDaemon = false;
/// Throw a specialized exception for expected situations /// Throw a specialized exception for expected situations
/// where the tool should exit with a clear message to the user /// where the tool should exit with a clear message to the user
/// and no stack trace unless the --verbose option is specified. /// and no stack trace unless the --verbose option is specified.
/// For example: network errors /// For example: network errors.
void throwToolExit(String message, { int exitCode }) { void throwToolExit(String message, { int exitCode }) {
throw ToolExit(message, exitCode: exitCode); throw ToolExit(message, exitCode: exitCode);
} }
@ -17,7 +17,7 @@ void throwToolExit(String message, { int exitCode }) {
/// Specialized exception for expected situations /// Specialized exception for expected situations
/// where the tool should exit with a clear message to the user /// where the tool should exit with a clear message to the user
/// and no stack trace unless the --verbose option is specified. /// and no stack trace unless the --verbose option is specified.
/// For example: network errors /// For example: network errors.
class ToolExit implements Exception { class ToolExit implements Exception {
ToolExit(this.message, { this.exitCode }); ToolExit(this.message, { this.exitCode });

View File

@ -139,7 +139,7 @@ class FileSystemUtils {
&& referenceFile.statSync().modified.isAfter(entity.statSync().modified); && referenceFile.statSync().modified.isAfter(entity.statSync().modified);
} }
/// Return the absolute path of the user's home directory /// Return the absolute path of the user's home directory.
String get homeDirPath { String get homeDirPath {
String path = _platform.isWindows String path = _platform.isWindows
? _platform.environment['USERPROFILE'] ? _platform.environment['USERPROFILE']

View File

@ -182,9 +182,9 @@ final RegExp _escapeExpr = RegExp(r'\\(.)');
/// ///
/// Snapshot dependency files are a single line mapping the output snapshot to a /// Snapshot dependency files are a single line mapping the output snapshot to a
/// space-separated list of input files used to generate that output. Spaces and /// space-separated list of input files used to generate that output. Spaces and
/// backslashes are escaped with a backslash. e.g, /// backslashes are escaped with a backslash. For example:
/// ///
/// outfile : file1.dart fil\\e2.dart fil\ e3.dart /// outfile : file1.dart fil\\e2.dart fil\ e3.dart
/// ///
/// will return a set containing: 'file1.dart', 'fil\e2.dart', 'fil e3.dart'. /// will return a set containing: 'file1.dart', 'fil\e2.dart', 'fil e3.dart'.
Set<String> readDepfile(String depfilePath) { Set<String> readDepfile(String depfilePath) {

View File

@ -43,7 +43,7 @@ abstract class Platform {
/// True if the operating system is iOS. /// True if the operating system is iOS.
bool get isIOS => operatingSystem == 'ios'; bool get isIOS => operatingSystem == 'ios';
/// True if the operating system is Fuchsia /// True if the operating system is Fuchsia.
bool get isFuchsia => operatingSystem == 'fuchsia'; bool get isFuchsia => operatingSystem == 'fuchsia';
/// The environment for this process. /// The environment for this process.

View File

@ -11,7 +11,7 @@ import 'io.dart';
typedef SignalHandler = FutureOr<void> Function(ProcessSignal signal); typedef SignalHandler = FutureOr<void> Function(ProcessSignal signal);
/// A class that manages signal handlers /// A class that manages signal handlers.
/// ///
/// Signal handlers are run in the order that they were added. /// Signal handlers are run in the order that they were added.
abstract class Signals { abstract class Signals {

View File

@ -82,7 +82,7 @@ class BuildInfo {
/// A "x.y.z" string used as the version number shown to users. /// A "x.y.z" string used as the version number shown to users.
/// For each new version of your app, you will provide a version number to differentiate it from previous versions. /// For each new version of your app, you will provide a version number to differentiate it from previous versions.
/// On Android it is used as versionName. /// On Android it is used as versionName.
/// On Xcode builds it is used as CFBundleShortVersionString, /// On Xcode builds it is used as CFBundleShortVersionString.
final String buildName; final String buildName;
/// An optional directory path to save debugging information from dwarf stack /// An optional directory path to save debugging information from dwarf stack
@ -93,7 +93,7 @@ class BuildInfo {
/// Whether to apply dart source code obfuscation. /// Whether to apply dart source code obfuscation.
final bool dartObfuscation; final bool dartObfuscation;
/// An optional path to a JSON containing object SkSL shaders /// An optional path to a JSON containing object SkSL shaders.
/// ///
/// Currently this is only supported for Android builds. /// Currently this is only supported for Android builds.
final String bundleSkSLPath; final String bundleSkSLPath;

View File

@ -60,9 +60,9 @@ const String _kDefaultIndex = '''
</html> </html>
'''; ''';
/// An expression compiler connecting to FrontendServer /// An expression compiler connecting to FrontendServer.
/// ///
/// This is only used in development mode /// This is only used in development mode.
class WebExpressionCompiler implements ExpressionCompiler { class WebExpressionCompiler implements ExpressionCompiler {
WebExpressionCompiler(this._generator); WebExpressionCompiler(this._generator);

View File

@ -159,7 +159,7 @@ abstract class Target {
); );
} }
/// Invoke to remove the stamp file if the [buildAction] threw an exception; /// Invoke to remove the stamp file if the [buildAction] threw an exception.
void clearStamp(Environment environment) { void clearStamp(Environment environment) {
final File stamp = _findStampFile(environment); final File stamp = _findStampFile(environment);
if (stamp.existsSync()) { if (stamp.existsSync()) {
@ -260,18 +260,22 @@ abstract class Target {
/// ///
/// Use the environment to determine where to write an output file. /// Use the environment to determine where to write an output file.
/// ///
/// ```dart
/// environment.buildDir.childFile('output') /// environment.buildDir.childFile('output')
/// ..createSync() /// ..createSync()
/// ..writeAsStringSync('output data'); /// ..writeAsStringSync('output data');
/// ```
/// ///
/// Example (Bad): /// Example (Bad):
/// ///
/// Use a hard-coded path or directory relative to the current working /// Use a hard-coded path or directory relative to the current working
/// directory to write an output file. /// directory to write an output file.
/// ///
/// ```dart
/// globals.fs.file('build/linux/out') /// globals.fs.file('build/linux/out')
/// ..createSync() /// ..createSync()
/// ..writeAsStringSync('output data'); /// ..writeAsStringSync('output data');
/// ```
/// ///
/// Example (Good): /// Example (Good):
/// ///
@ -279,6 +283,7 @@ abstract class Target {
/// is still responsible for outputting a different file, as defined by the /// is still responsible for outputting a different file, as defined by the
/// corresponding output [Source]. /// corresponding output [Source].
/// ///
/// ```dart
/// final BuildMode buildMode = getBuildModeFromDefines(environment.defines); /// final BuildMode buildMode = getBuildModeFromDefines(environment.defines);
/// if (buildMode == BuildMode.debug) { /// if (buildMode == BuildMode.debug) {
/// environment.buildDir.childFile('debug.output') /// environment.buildDir.childFile('debug.output')
@ -289,6 +294,7 @@ abstract class Target {
/// ..createSync() /// ..createSync()
/// ..writeAsStringSync('non_debug'); /// ..writeAsStringSync('non_debug');
/// } /// }
/// ```
class Environment { class Environment {
/// Create a new [Environment] object. /// Create a new [Environment] object.
/// ///

View File

@ -179,7 +179,7 @@ class LocalizationOptions {
/// The `--header` argument. /// The `--header` argument.
/// ///
/// The header to prepend to the generated Dart localizations /// The header to prepend to the generated Dart localizations.
final String header; final String header;
/// The `--output-class` argument. /// The `--output-class` argument.

View File

@ -221,7 +221,7 @@ class Dart2JSTarget extends Target {
} }
} }
/// Unpacks the dart2js compilation and resources to a given output directory /// Unpacks the dart2js compilation and resources to a given output directory.
class WebReleaseBundle extends Target { class WebReleaseBundle extends Target {
const WebReleaseBundle(); const WebReleaseBundle();

View File

@ -25,7 +25,7 @@ class DevelopmentArtifact {
/// The name of the artifact. /// The name of the artifact.
/// ///
/// This should match the flag name in precache.dart /// This should match the flag name in precache.dart.
final String name; final String name;
/// A feature to control the visibility of this artifact. /// A feature to control the visibility of this artifact.

View File

@ -541,7 +541,7 @@ Future<bool> _stopApp(DriveCommand command) async {
return stopped; return stopped;
} }
/// A list of supported browsers /// A list of supported browsers.
@visibleForTesting @visibleForTesting
enum Browser { enum Browser {
/// Chrome on Android: https://developer.chrome.com/multidevice/android/overview /// Chrome on Android: https://developer.chrome.com/multidevice/android/overview

View File

@ -72,13 +72,13 @@ class TargetModel {
const TargetModel._(this._value); const TargetModel._(this._value);
/// The flutter patched dart SDK /// The Flutter patched Dart SDK.
static const TargetModel flutter = TargetModel._('flutter'); static const TargetModel flutter = TargetModel._('flutter');
/// The fuchsia patched SDK. /// The Fuchsia patched SDK.
static const TargetModel flutterRunner = TargetModel._('flutter_runner'); static const TargetModel flutterRunner = TargetModel._('flutter_runner');
/// The Dart vm. /// The Dart VM.
static const TargetModel vm = TargetModel._('vm'); static const TargetModel vm = TargetModel._('vm');
/// The development compiler for JavaScript. /// The development compiler for JavaScript.
@ -488,7 +488,7 @@ abstract class ResidentCompiler {
/// module object, for example: /// module object, for example:
/// { 'dart':'dart_sdk', 'main': '/packages/hello_world_main.dart' } /// { 'dart':'dart_sdk', 'main': '/packages/hello_world_main.dart' }
/// Returns a [CompilerOutput] including the name of the file containing the /// Returns a [CompilerOutput] including the name of the file containing the
/// compilation result and a number of errors /// compilation result and a number of errors.
Future<CompilerOutput> compileExpressionToJs( Future<CompilerOutput> compileExpressionToJs(
String libraryUri, String libraryUri,
int line, int line,

View File

@ -557,7 +557,7 @@ abstract class Device {
String userIdentifier, String userIdentifier,
}); });
/// Check if the device is supported by Flutter /// Check if the device is supported by Flutter.
bool isSupported(); bool isSupported();
// String meant to be displayed to the user indicating if the device is // String meant to be displayed to the user indicating if the device is
@ -734,7 +734,7 @@ abstract class Device {
}; };
} }
/// Clean up resources allocated by device /// Clean up resources allocated by device.
/// ///
/// For example log readers or port forwarders. /// For example log readers or port forwarders.
Future<void> dispose(); Future<void> dispose();
@ -861,7 +861,7 @@ class DebuggingOptions {
/// The port the browser should use for its debugging protocol. /// The port the browser should use for its debugging protocol.
final int webBrowserDebugPort; final int webBrowserDebugPort;
/// Enable expression evaluation for web target /// Enable expression evaluation for web target.
final bool webEnableExpressionEvaluation; final bool webEnableExpressionEvaluation;
/// A file where the vmservice URL should be written after the application is started. /// A file where the vmservice URL should be written after the application is started.
@ -925,7 +925,7 @@ abstract class DevicePortForwarder {
/// Stops forwarding [forwardedPort]. /// Stops forwarding [forwardedPort].
Future<void> unforward(ForwardedPort forwardedPort); Future<void> unforward(ForwardedPort forwardedPort);
/// Cleanup allocated resources, like forwardedPorts /// Cleanup allocated resources, like [forwardedPorts].
Future<void> dispose(); Future<void> dispose();
} }

View File

@ -37,7 +37,7 @@ class FlutterManifest {
return FlutterManifest.createFromString(manifest, logger: logger); return FlutterManifest.createFromString(manifest, logger: logger);
} }
/// Returns null on missing or invalid manifest /// Returns null on missing or invalid manifest.
@visibleForTesting @visibleForTesting
static FlutterManifest createFromString(String manifest, { @required Logger logger }) { static FlutterManifest createFromString(String manifest, { @required Logger logger }) {
return _createFromYaml(manifest != null ? loadYaml(manifest) : null, logger); return _createFromYaml(manifest != null ? loadYaml(manifest) : null, logger);

View File

@ -38,7 +38,8 @@ class FuchsiaDevFinder {
/// Returns a list of attached devices as a list of strings with entries /// Returns a list of attached devices as a list of strings with entries
/// formatted as follows: /// formatted as follows:
/// 192.168.42.172 scare-cable-skip-joy ///
/// 192.168.42.172 scare-cable-skip-joy
Future<List<String>> list({ Duration timeout }) async { Future<List<String>> list({ Duration timeout }) async {
if (_fuchsiaArtifacts.devFinder == null || if (_fuchsiaArtifacts.devFinder == null ||
!_fuchsiaArtifacts.devFinder.existsSync()) { !_fuchsiaArtifacts.devFinder.existsSync()) {

View File

@ -199,7 +199,7 @@ class FuchsiaPackageServer {
String get url => Uri(scheme: 'http', host: _host, port: _port).toString(); String get url => Uri(scheme: 'http', host: _host, port: _port).toString();
/// The URL that is stripped of interface name if it is an ipv6 address, /// The URL that is stripped of interface name if it is an ipv6 address,
/// which should be supplied to amber_ctl to configure access to host /// which should be supplied to amber_ctl to configure access to host.
String get interfaceStrippedUrl => Uri( String get interfaceStrippedUrl => Uri(
scheme: 'http', scheme: 'http',
host: (isIPv6Address(_host.split('%').first)) ? '[${_host.split('%').first}]' : _host, host: (isIPv6Address(_host.split('%').first)) ? '[${_host.split('%').first}]' : _host,

View File

@ -49,8 +49,9 @@ class FuchsiaSdk {
/// Returns any attached devices is a newline-denominated String. /// Returns any attached devices is a newline-denominated String.
/// ///
/// Example output: /// Example output:
/// $ device-finder list -full ///
/// > 192.168.42.56 paper-pulp-bush-angel /// $ device-finder list -full
/// > 192.168.42.56 paper-pulp-bush-angel
Future<String> listDevices({ Duration timeout }) async { Future<String> listDevices({ Duration timeout }) async {
if (globals.fuchsiaArtifacts.devFinder == null || if (globals.fuchsiaArtifacts.devFinder == null ||
!globals.fuchsiaArtifacts.devFinder.existsSync()) { !globals.fuchsiaArtifacts.devFinder.existsSync()) {

View File

@ -191,5 +191,5 @@ PlistParser get plistParser => context.get<PlistParser>() ?? (
)); ));
PlistParser _plistInstance; PlistParser _plistInstance;
/// The global template renderer /// The global template renderer.
TemplateRenderer get templateRenderer => context.get<TemplateRenderer>(); TemplateRenderer get templateRenderer => context.get<TemplateRenderer>();

View File

@ -866,11 +866,12 @@ int compareIosVersions(String v1, String v2) {
/// Matches on device type given an identifier. /// Matches on device type given an identifier.
/// ///
/// Example device type identifiers: /// Example device type identifiers:
/// com.apple.CoreSimulator.SimDeviceType.iPhone-5 ///
/// com.apple.CoreSimulator.SimDeviceType.iPhone-6 /// - com.apple.CoreSimulator.SimDeviceType.iPhone-5
/// com.apple.CoreSimulator.SimDeviceType.iPhone-6s-Plus /// - com.apple.CoreSimulator.SimDeviceType.iPhone-6
/// com.apple.CoreSimulator.SimDeviceType.iPad-2 /// - com.apple.CoreSimulator.SimDeviceType.iPhone-6s-Plus
/// com.apple.CoreSimulator.SimDeviceType.Apple-Watch-38mm /// - com.apple.CoreSimulator.SimDeviceType.iPad-2
/// - com.apple.CoreSimulator.SimDeviceType.Apple-Watch-38mm
final RegExp _iosDeviceTypePattern = final RegExp _iosDeviceTypePattern =
RegExp(r'com.apple.CoreSimulator.SimDeviceType.iPhone-(\d+)(.*)'); RegExp(r'com.apple.CoreSimulator.SimDeviceType.iPhone-(\d+)(.*)');

View File

@ -28,7 +28,7 @@ class _VersionInfo {
Version number; Version number;
} }
/// A validator that checks for Clang and Make build dependencies /// A validator that checks for Clang and Make build dependencies.
class LinuxDoctorValidator extends DoctorValidator { class LinuxDoctorValidator extends DoctorValidator {
LinuxDoctorValidator({ LinuxDoctorValidator({
@required ProcessManager processManager, @required ProcessManager processManager,

View File

@ -12,7 +12,7 @@ import '../globals.dart' as globals;
import '../ios/plist_parser.dart'; import '../ios/plist_parser.dart';
import '../project.dart'; import '../project.dart';
/// Tests whether a [FileSystemEntity] is an macOS bundle directory /// Tests whether a [FileSystemEntity] is an macOS bundle directory.
bool _isBundleDirectory(FileSystemEntity entity) => bool _isBundleDirectory(FileSystemEntity entity) =>
entity is Directory && entity.path.endsWith('.app'); entity is Directory && entity.path.endsWith('.app');

View File

@ -41,7 +41,7 @@ enum SdkType {
/// ///
/// Usage: xcrun [options] <tool name> ... arguments ... /// Usage: xcrun [options] <tool name> ... arguments ...
/// ... /// ...
/// --sdk <sdk name> find the tool for the given SDK name /// --sdk <sdk name> find the tool for the given SDK name.
String getNameForSdk(SdkType sdk) { String getNameForSdk(SdkType sdk) {
switch (sdk) { switch (sdk) {
case SdkType.iPhone: case SdkType.iPhone:

View File

@ -176,11 +176,12 @@ class Plugin {
/// Create a YamlMap that represents the supported platforms. /// Create a YamlMap that represents the supported platforms.
/// ///
/// For example, if the `platforms` contains 'ios' and 'android', the return map looks like: /// For example, if the `platforms` contains 'ios' and 'android', the return map looks like:
/// android: ///
/// package: io.flutter.plugins.sample /// android:
/// pluginClass: SamplePlugin /// package: io.flutter.plugins.sample
/// ios: /// pluginClass: SamplePlugin
/// pluginClass: SamplePlugin /// ios:
/// pluginClass: SamplePlugin
static YamlMap createPlatformsYamlMap(List<String> platforms, String pluginClass, String androidPackage) { static YamlMap createPlatformsYamlMap(List<String> platforms, String pluginClass, String androidPackage) {
final Map<String, dynamic> map = <String, dynamic>{}; final Map<String, dynamic> map = <String, dynamic>{};
for (final String platform in platforms) { for (final String platform in platforms) {

View File

@ -194,7 +194,7 @@ class FlutterProject {
/// True if this project is a Flutter module project. /// True if this project is a Flutter module project.
bool get isModule => manifest.isModule; bool get isModule => manifest.isModule;
/// True if the Flutter project is using the AndroidX support library /// True if the Flutter project is using the AndroidX support library.
bool get usesAndroidX => manifest.usesAndroidX; bool get usesAndroidX => manifest.usesAndroidX;
/// True if this project has an example application. /// True if this project has an example application.
@ -709,7 +709,7 @@ class AndroidProject extends FlutterProjectPlatform {
/// True if the parent Flutter project is a module. /// True if the parent Flutter project is a module.
bool get isModule => parent.isModule; bool get isModule => parent.isModule;
/// True if the Flutter project is using the AndroidX support library /// True if the Flutter project is using the AndroidX support library.
bool get usesAndroidX => parent.usesAndroidX; bool get usesAndroidX => parent.usesAndroidX;
/// True, if the app project is using Kotlin. /// True, if the app project is using Kotlin.
@ -989,7 +989,7 @@ class MacOSProject extends FlutterProjectPlatform implements XcodeBasedProject {
} }
} }
/// The Windows sub project /// The Windows sub project.
class WindowsProject extends FlutterProjectPlatform implements CmakeBasedProject { class WindowsProject extends FlutterProjectPlatform implements CmakeBasedProject {
WindowsProject._(this.parent); WindowsProject._(this.parent);
@ -1075,7 +1075,7 @@ class LinuxProject extends FlutterProjectPlatform implements CmakeBasedProject {
} }
} }
/// The Fuchsia sub project /// The Fuchsia sub project.
class FuchsiaProject { class FuchsiaProject {
FuchsiaProject._(this.project); FuchsiaProject._(this.project);

View File

@ -1707,7 +1707,7 @@ class DebugConnectionInfo {
/// Returns the next platform value for the switcher. /// Returns the next platform value for the switcher.
/// ///
/// These values must match what is available in /// These values must match what is available in
/// packages/flutter/lib/src/foundation/binding.dart /// `packages/flutter/lib/src/foundation/binding.dart`.
String nextPlatform(String currentPlatform, FeatureFlags featureFlags) { String nextPlatform(String currentPlatform, FeatureFlags featureFlags) {
switch (currentPlatform) { switch (currentPlatform) {
case 'android': case 'android':

View File

@ -699,7 +699,7 @@ String _shortGitRevision(String revision) {
return revision.length > 10 ? revision.substring(0, 10) : revision; return revision.length > 10 ? revision.substring(0, 10) : revision;
} }
/// Version of Flutter SDK parsed from git /// Version of Flutter SDK parsed from Git.
class GitTagVersion { class GitTagVersion {
const GitTagVersion({ const GitTagVersion({
this.x, this.x,
@ -732,7 +732,7 @@ class GitTagVersion {
/// The Z in vX.Y.Z. /// The Z in vX.Y.Z.
final int z; final int z;
/// the F in vX.Y.Z+hotfix.F /// the F in vX.Y.Z+hotfix.F.
final int hotfix; final int hotfix;
/// Number of commits since the vX.Y.Z tag. /// Number of commits since the vX.Y.Z tag.
@ -741,10 +741,10 @@ class GitTagVersion {
/// The git hash (or an abbreviation thereof) for this commit. /// The git hash (or an abbreviation thereof) for this commit.
final String hash; final String hash;
/// The N in X.Y.Z-dev.N.M /// The N in X.Y.Z-dev.N.M.
final int devVersion; final int devVersion;
/// The M in X.Y.Z-dev.N.M /// The M in X.Y.Z-dev.N.M.
final int devPatch; final int devPatch;
/// The git tag that is this version's closest ancestor. /// The git tag that is this version's closest ancestor.

View File

@ -811,7 +811,7 @@ extension FlutterVmService on vm_service.VmService {
return callServiceExtension(kScreenshotSkpMethod); return callServiceExtension(kScreenshotSkpMethod);
} }
/// Set the VM timeline flags /// Set the VM timeline flags.
Future<vm_service.Response> setVMTimelineFlags(List<String> recordedStreams) { Future<vm_service.Response> setVMTimelineFlags(List<String> recordedStreams) {
assert(recordedStreams != null); assert(recordedStreams != null);
return callServiceExtension( return callServiceExtension(

View File

@ -103,7 +103,7 @@ class VisualStudio {
/// Returns the highest installed Windows 10 SDK version, or null if none is /// Returns the highest installed Windows 10 SDK version, or null if none is
/// found. /// found.
/// ///
/// For instance: 10.0.18362.0 /// For instance: 10.0.18362.0.
String getWindows10SDKVersion() { String getWindows10SDKVersion() {
final String sdkLocation = _getWindows10SdkLocation(); final String sdkLocation = _getWindows10SdkLocation();
if (sdkLocation == null) { if (sdkLocation == null) {

View File

@ -13,8 +13,8 @@ import 'test_driver.dart';
import 'test_utils.dart'; import 'test_utils.dart';
/// This duration is arbitrary but is ideally: /// This duration is arbitrary but is ideally:
/// a) long enough to ensure that if the app is crashing at startup, we notice /// a) Long enough to ensure that if the app is crashing at startup, we notice.
/// b) as short as possible, to avoid inflating build times /// b) As short as possible, to avoid inflating build times.
const Duration requiredLifespan = Duration(seconds: 5); const Duration requiredLifespan = Duration(seconds: 5);
void main() { void main() {

View File

@ -8,7 +8,7 @@ import 'package:path/path.dart' as path; // ignore: package_path_import
import 'package:flutter_tools/src/convert.dart'; import 'package:flutter_tools/src/convert.dart';
import '../src/common.dart'; import '../src/common.dart';
/// Checks that all active template files are defined in the template_manifest.json /// Checks that all active template files are defined in the template_manifest.json file.
void main() { void main() {
test('Check template manifest is up to date', () { test('Check template manifest is up to date', () {
final Map<String, Object> manifest = json.decode( final Map<String, Object> manifest = json.decode(

View File

@ -54,7 +54,7 @@ List<FakeDeviceJsonData> fakeDevices = <FakeDeviceJsonData>[
), ),
]; ];
/// Fake device to test `devices` command /// Fake device to test `devices` command.
class FakeDevice extends Device { class FakeDevice extends Device {
FakeDevice(this.name, String id, [bool ephemeral = true, this._isSupported = true, PlatformType type = PlatformType.web]) : super( FakeDevice(this.name, String id, [bool ephemeral = true, this._isSupported = true, PlatformType type = PlatformType.web]) : super(
id, id,
@ -87,7 +87,7 @@ class FakeDevice extends Device {
Future<String> sdkNameAndVersion = Future<String>.value('Test SDK (1.2.3)'); Future<String> sdkNameAndVersion = Future<String>.value('Test SDK (1.2.3)');
} }
/// Combines fake device with its canonical JSON representation /// Combines fake device with its canonical JSON representation.
class FakeDeviceJsonData { class FakeDeviceJsonData {
FakeDeviceJsonData(this.dev, this.json); FakeDeviceJsonData(this.dev, this.json);

View File

@ -622,7 +622,7 @@ void applyMocksToCommand(FlutterCommand command) {
command.applicationPackages = MockApplicationPackageStore(); command.applicationPackages = MockApplicationPackageStore();
} }
/// Common functionality for tracking mock interaction /// Common functionality for tracking mock interaction.
class BasicMock { class BasicMock {
final List<String> messages = <String>[]; final List<String> messages = <String>[];

View File

@ -58,7 +58,7 @@ final Map<Type, Generator> _testbedDefaults = <Type, Generator>{
/// ///
/// Example: /// Example:
/// ///
/// Testing that a filesystem operation works as expected /// Testing that a filesystem operation works as expected:
/// ///
/// void main() { /// void main() {
/// group('Example', () { /// group('Example', () {

View File

@ -20,8 +20,8 @@ import 'package:fuchsia_remote_debug_protocol/logging.dart';
/// ///
/// Example usage: /// Example usage:
/// ///
/// $ dart examples/driver_todo_list_scroll.dart \ /// $ dart examples/driver_todo_list_scroll.dart \
/// fe80::8eae:4cff:fef4:9247 eno1 /// fe80::8eae:4cff:fef4:9247 eno1
Future<void> main(List<String> args) async { Future<void> main(List<String> args) async {
// Log only at info level within the library. If issues arise, this can be // Log only at info level within the library. If issues arise, this can be
// changed to [LoggingLevel.all] or [LoggingLevel.fine] to see more // changed to [LoggingLevel.all] or [LoggingLevel.fine] to see more

View File

@ -16,8 +16,8 @@ import 'package:fuchsia_remote_debug_protocol/logging.dart';
/// ///
/// Example usage: /// Example usage:
/// ///
/// $ dart examples/list_vms_and_flutter_views.dart \ /// $ dart examples/list_vms_and_flutter_views.dart \
/// fe80::8eae:4cff:fef4:9247 eno1 /// fe80::8eae:4cff:fef4:9247 eno1
Future<void> main(List<String> args) async { Future<void> main(List<String> args) async {
// Log only at info level within the library. If issues arise, this can be // Log only at info level within the library. If issues arise, this can be
// changed to [LoggingLevel.all] or [LoggingLevel.fine] to see more // changed to [LoggingLevel.all] or [LoggingLevel.fine] to see more