Unverified Commit 80a2b6b0 authored by nt4f04uNd's avatar nt4f04uNd Committed by GitHub

Fix typos (#82589)

parent 660ec207
......@@ -164,7 +164,7 @@ class SampleCheckerException implements Exception {
class SampleChecker {
/// Creates a [SampleChecker].
///
/// The positional argument is the path to the the package directory for the
/// The positional argument is the path to the package directory for the
/// flutter package within the Flutter root dir.
///
/// The optional `tempDirectory` argument supplies the location for the
......
......@@ -29,7 +29,7 @@ typedef ProcessRunSync = ProcessResult Function(
/// Class for test runner to interact with Flutter's infrastructure service, Cocoon.
///
/// Cocoon assigns bots to run these devicelab tasks on real devices.
/// To retrieve these results, the test runner needs to send results back so so the database can be updated.
/// To retrieve these results, the test runner needs to send results back so the database can be updated.
class Cocoon {
Cocoon({
String serviceAccountTokenPath,
......
......@@ -288,7 +288,7 @@ class _AllSectionsView extends AnimatedWidget {
Widget _build(BuildContext context, BoxConstraints constraints) {
final Size size = constraints.biggest;
// The layout's progress from from a column to a row. Its value is
// The layout's progress from a column to a row. Its value is
// 0.0 when size.height equals the maxHeight, 1.0 when the size.height
// equals the midHeight.
final double tColumnToRow =
......@@ -296,7 +296,7 @@ class _AllSectionsView extends AnimatedWidget {
(maxHeight! - midHeight!)).clamp(0.0, 1.0);
// The layout's progress from from the midHeight row layout to
// The layout's progress from the midHeight row layout to
// a minHeight row layout. Its value is 0.0 when size.height equals
// midHeight and 1.0 when size.height equals minHeight.
final double tCollapsed =
......
......@@ -38,7 +38,7 @@ abstract class KeyboardKey with Diagnosticable {
/// As an example, if you wanted to implement an app where the "Q" key "quit"
/// something, you'd want to look at the logical key to detect this, since you
/// would like to have it match the key with "Q" on it, instead of always
/// looking for "the key next next to the TAB key", since on a French keyboard,
/// looking for "the key next to the TAB key", since on a French keyboard,
/// the key next to the TAB key has an "A" on it.
///
/// Conversely, if you wanted a game where the key next to the CAPS LOCK (the
......@@ -393,7 +393,7 @@ class LogicalKeyboardKey extends KeyboardKey {
/// Conversely, if you wanted to implement an app where the "Q" key "quit"
/// something, you'd want to look at the logical key to detect this, since you
/// would like to have it match the key with "Q" on it, instead of always
/// looking for "the key next next to the TAB key", since on a French keyboard,
/// looking for "the key next to the TAB key", since on a French keyboard,
/// the key next to the TAB key has an "A" on it.
///
/// {@tool dartpad --template=stateful_widget_scaffold}
......
......@@ -87,7 +87,7 @@ class PhysicalKeyData {
/// # key 101 "KEY_LINEFEED"
/// key 477 F12 FUNCTION
///
/// We parse the commented out lines as well as the non-commented lines, so so
/// We parse the commented out lines as well as the non-commented lines, so
/// that we can get names for all of the available scan codes, not just ones
/// defined for the generic profile.
///
......
......@@ -1442,7 +1442,7 @@ class Curves {
/// {@animation 464 192 https://flutter.github.io/assets-for-api-docs/assets/animation/curve_ease_in.mp4}
static const Cubic easeIn = Cubic(0.42, 0.0, 1.0, 1.0);
/// A cubic animation curve that starts starts slowly and ends linearly.
/// A cubic animation curve that starts slowly and ends linearly.
///
/// The symmetric animation to [linearToEaseOut].
///
......
......@@ -766,7 +766,7 @@ class CupertinoIcons {
/// * [time_solid], which is similar, but without dots on the clock face.
static const IconData clock_solid = IconData(0xf4bf, fontFamily: iconFont, fontPackage: iconFontPackage);
/// <i class='cupertino-icons md-36'>clock</i> &#x2014; Cupertino icon for a circle with with a 90 degree angle shape in the center, resembling a clock with hands showing 09:00.
/// <i class='cupertino-icons md-36'>clock</i> &#x2014; Cupertino icon for a circle with a 90 degree angle shape in the center, resembling a clock with hands showing 09:00.
/// This is the same icon as [clock] in cupertino_icons 1.0.0+.
///
/// See also:
......@@ -776,7 +776,7 @@ class CupertinoIcons {
/// * [clock_solid], which is similar, but filled in and with dots on the clock face.
static const IconData time = IconData(0xf402, fontFamily: iconFont, fontPackage: iconFontPackage);
/// <i class='cupertino-icons md-36'>clock_fill</i> &#x2014; Cupertino icon for a filled in circle with with a 90 degree angle shape in the center, resembling a clock with hands showing 09:00.
/// <i class='cupertino-icons md-36'>clock_fill</i> &#x2014; Cupertino icon for a filled in circle with a 90 degree angle shape in the center, resembling a clock with hands showing 09:00.
/// This is the same icon as [clock_fill] and [clock_solid] in cupertino_icons 1.0.0+.
///
/// See also:
......
......@@ -32,7 +32,7 @@ enum DiagnosticLevel {
/// the diagnostics to be formatted consistently with other diagnostics and
/// they should expect them to sometimes be misleading. For example,
/// [FlagProperty] and [ObjectFlagProperty] have uglier formatting when the
/// property `value` does does not match a value with a custom flag
/// property `value` does not match a value with a custom flag
/// description. An example of a misleading diagnostic is a diagnostic for
/// a property that has no effect because some other property of the object is
/// set in a way that causes the hidden property to have no effect.
......
......@@ -237,7 +237,7 @@ class ElevatedButton extends ButtonStyleButton {
/// "Theme.foo" is shorthand for `Theme.of(context).foo`. Color
/// scheme values like "onSurface(0.38)" are shorthand for
/// `onSurface.withOpacity(0.38)`. [MaterialStateProperty] valued
/// properties that are not followed by by a sublist have the same
/// properties that are not followed by a sublist have the same
/// value for all states, otherwise the values are as specified for
/// each state, and "others" means all other states.
///
......
......@@ -448,7 +448,7 @@ abstract class MaterialLocalizations {
/// Tooltip used to put the time picker into [TimePickerEntryMode.input].
String get inputTimeModeButtonLabel;
/// The semantics label used to indicate which account is signed in in the
/// The semantics label used to indicate which account is signed in the
/// [UserAccountsDrawerHeader] widget.
String get signedInLabel;
......
......@@ -112,7 +112,7 @@ class NavigationRail extends StatefulWidget {
/// [minWidth].
///
/// The argument [extended] must not be null. [extended] can only be set to
/// true when when the [labelType] is null or [NavigationRailLabelType.none].
/// true when the [labelType] is null or [NavigationRailLabelType.none].
///
/// If [backgroundColor], [elevation], [groupAlignment], [labelType],
/// [unselectedLabelTextStyle], [selectedLabelTextStyle],
......
......@@ -218,7 +218,7 @@ class OutlinedButton extends ButtonStyleButton {
/// "Theme.foo" is shorthand for `Theme.of(context).foo`. Color
/// scheme values like "onSurface(0.38)" are shorthand for
/// `onSurface.withOpacity(0.38)`. [MaterialStateProperty] valued
/// properties that are not followed by by a sublist have the same
/// properties that are not followed by a sublist have the same
/// value for all states, otherwise the values are as specified for
/// each state and "others" means all other states.
///
......
......@@ -26,7 +26,7 @@ import 'theme.dart';
/// A paginated data table shows [rowsPerPage] rows of data per page and
/// provides controls for showing other pages.
///
/// Data is read lazily from from a [DataTableSource]. The widget is presented
/// Data is read lazily from a [DataTableSource]. The widget is presented
/// as a [Card].
///
/// See also:
......
......@@ -1505,7 +1505,7 @@ class Scaffold extends StatefulWidget {
/// This property is often useful when the [bottomNavigationBar] has
/// a non-rectangular shape, like [CircularNotchedRectangle], which
/// adds a [FloatingActionButton] sized notch to the top edge of the bar.
/// In this case specifying `extendBody: true` ensures that that scaffold's
/// In this case specifying `extendBody: true` ensures that scaffold's
/// body will be visible through the bottom navigation bar's notch.
///
/// See also:
......
......@@ -2004,7 +2004,7 @@ class RoundedRectRangeSliderTrackShape extends RangeSliderTrackShape {
/// [SliderThemeData.disabledActiveTrackColor],
/// [SliderThemeData.disabledInactiveTrackColor].
///
/// ![A slider widget, consisting of 5 divisions and showing the round slider slider tick mark shape.]
/// ![A slider widget, consisting of 5 divisions and showing the round slider tick mark shape.]
/// (https://flutter.github.io/assets-for-api-docs/assets/material/rounded_slider_tick_mark_shape.png)
///
/// See also:
......
......@@ -262,7 +262,7 @@ class TextButton extends ButtonStyleButton {
/// `Theme.of(context).foo`. Color scheme values like
/// "onSurface(0.38)" are shorthand for
/// `onSurface.withOpacity(0.38)`. [MaterialStateProperty] valued
/// properties that are not followed by by a sublist have the same
/// properties that are not followed by a sublist have the same
/// value for all states, otherwise the values are as specified for
/// each state and "others" means all other states.
///
......
......@@ -158,7 +158,7 @@ abstract class EdgeInsetsGeometry {
);
}
/// Returns the a new [EdgeInsetsGeometry] object with all values greater than
/// Returns a new [EdgeInsetsGeometry] object with all values greater than
/// or equal to `min`, and less than or equal to `max`.
EdgeInsetsGeometry clamp(EdgeInsetsGeometry min, EdgeInsetsGeometry max) {
return _MixedEdgeInsets.fromLRSETB(
......
......@@ -1860,7 +1860,7 @@ abstract class RenderBox extends RenderObject {
///
/// In such cases, it may be impossible (or at least impractical) to actually
/// return a valid answer. In such cases, the function should call
/// [debugCannotComputeDryLayout] from within an assert and and return a dummy
/// [debugCannotComputeDryLayout] from within an assert and return a dummy
/// value of `const Size(0, 0)`.
@protected
Size computeDryLayout(BoxConstraints constraints) {
......
......@@ -70,7 +70,7 @@ abstract class FlowDelegate {
/// respecting the constraints.
///
/// If this function depends on information other than the given constraints,
/// override [shouldRelayout] to indicate when when the container should
/// override [shouldRelayout] to indicate when the container should
/// relayout.
Size getSize(BoxConstraints constraints) => constraints.biggest;
......@@ -85,7 +85,7 @@ abstract class FlowDelegate {
/// let them be larger or smaller than 100.0 by 100.0.
///
/// If this function depends on information other than the given constraints,
/// override [shouldRelayout] to indicate when when the container should
/// override [shouldRelayout] to indicate when the container should
/// relayout.
BoxConstraints getConstraintsForChild(int i, BoxConstraints constraints) => constraints;
......@@ -103,7 +103,7 @@ abstract class FlowDelegate {
/// matrices for the children.
///
/// If this function depends on information other than the given context,
/// override [shouldRepaint] to indicate when when the container should
/// override [shouldRepaint] to indicate when the container should
/// relayout.
void paintChildren(FlowPaintingContext context);
......
......@@ -2439,7 +2439,7 @@ abstract class RenderObject extends AbstractNode with DiagnosticableTreeMixin im
/// or just after the trailing edge. These nodes have to be included in the
/// semantics tree to implement implicit accessibility scrolling on iOS where
/// the viewport scrolls implicitly when moving the accessibility focus from
/// a the last visible node in the viewport to the first hidden one.
/// the last visible node in the viewport to the first hidden one.
///
/// See also:
///
......
......@@ -919,7 +919,7 @@ class SliverHitTestEntry extends HitTestEntry {
class SliverLogicalParentData extends ParentData {
/// The position of the child relative to the zero scroll offset.
///
/// The number of pixels from from the zero scroll offset of the parent sliver
/// The number of pixels from the zero scroll offset of the parent sliver
/// (the line at which its [SliverConstraints.scrollOffset] is zero) to the
/// side of the child closest to that offset. A [layoutOffset] can be null
/// when it cannot be determined. The value will be set after layout.
......
......@@ -38,7 +38,7 @@ abstract class KeyboardKey with Diagnosticable {
/// As an example, if you wanted to implement an app where the "Q" key "quit"
/// something, you'd want to look at the logical key to detect this, since you
/// would like to have it match the key with "Q" on it, instead of always
/// looking for "the key next next to the TAB key", since on a French keyboard,
/// looking for "the key next to the TAB key", since on a French keyboard,
/// the key next to the TAB key has an "A" on it.
///
/// Conversely, if you wanted a game where the key next to the CAPS LOCK (the
......@@ -3524,7 +3524,7 @@ class LogicalKeyboardKey extends KeyboardKey {
/// Conversely, if you wanted to implement an app where the "Q" key "quit"
/// something, you'd want to look at the logical key to detect this, since you
/// would like to have it match the key with "Q" on it, instead of always
/// looking for "the key next next to the TAB key", since on a French keyboard,
/// looking for "the key next to the TAB key", since on a French keyboard,
/// the key next to the TAB key has an "A" on it.
///
/// {@tool dartpad --template=stateful_widget_scaffold}
......
......@@ -345,7 +345,7 @@ class _SystemMouseCursorSession extends MouseCursorSession {
/// I-beam, etc.
///
/// An instance of [SystemMouseCursor] refers to one cursor from each platform
/// that represents the same concept, such as being text text, being clickable,
/// that represents the same concept, such as being text, being clickable,
/// or being a forbidden operation. Since the set of system cursors supported by
/// each platform varies, multiple instances can correspond to the same system
/// cursor.
......
......@@ -155,7 +155,7 @@ abstract class KeyHelper {
/// The numpad key from the specific key code mapping.
LogicalKeyboardKey? numpadKey(int keyCode);
/// The logical key key from the specific key code mapping.
/// The logical key from the specific key code mapping.
LogicalKeyboardKey? logicalKey(int keyCode);
}
......
......@@ -60,7 +60,7 @@ typedef _BucketVisitor = void Function(RestorationBucket bucket);
/// to the notification, listeners must stop using the old bucket and restore
/// their state from the information in the new [rootBucket].
///
/// Same platforms restrict the size of the restoration data. Therefore, the
/// Some platforms restrict the size of the restoration data. Therefore, the
/// data stored in the buckets should be as small as possible while still
/// allowing the app to restore its current state from it. Data that can be
/// retrieved from other services (e.g. a database or a web server) should not
......
......@@ -823,14 +823,14 @@ class WidgetsApp extends StatefulWidget {
/// [localeListResolutionCallback]. If the callback or result is null, it will
/// fallback to trying the [localeResolutionCallback]. If both
/// [localeResolutionCallback] and [localeListResolutionCallback] are left
/// null or fail to resolve (return null), the a basic fallback algorithm will
/// null or fail to resolve (return null), basic fallback algorithm will
/// be used.
///
/// The priority of each available fallback is:
///
/// 1. [localeListResolutionCallback] is attempted first.
/// 1. [localeResolutionCallback] is attempted second.
/// 1. Flutter's basic resolution algorithm, as described in
/// 1. [localeListResolutionCallback] is attempted.
/// 2. [localeResolutionCallback] is attempted.
/// 3. Flutter's basic resolution algorithm, as described in
/// [supportedLocales], is attempted last.
///
/// Properly localized projects should provide a more advanced algorithm than
......
......@@ -6165,7 +6165,7 @@ class RawImage extends LeafRenderObjectWidget {
/// See also:
///
/// * [AssetBundle], the interface for asset bundles.
/// * [rootBundle], the default default asset bundle.
/// * [rootBundle], the default asset bundle.
class DefaultAssetBundle extends InheritedWidget {
/// Creates a widget that determines the default asset bundle for its descendants.
///
......
......@@ -228,8 +228,8 @@ class TextEditingController extends ValueNotifier<TextEditingValue> {
/// in a separate statement. To change both the [text] and the [selection]
/// change the controller's [value].
///
/// If the new selection if of non-zero length, or is outside the composing
/// range, the composing composing range is cleared.
/// If the new selection is of non-zero length, or is outside the composing
/// range, the composing range is cleared.
set selection(TextSelection newSelection) {
if (!isSelectionWithinTextBounds(newSelection))
throw FlutterError('invalid text selection: $newSelection');
......
......@@ -44,7 +44,7 @@ import 'framework.dart';
/// final NavigatorState navigator = Navigator.of(context);
/// // This InheritedTheme.capture() saves references to themes that are
/// // found above the context provided to this widget's build method
/// // excluding themes are are found above the navigator. Those themes do
/// // excluding themes are found above the navigator. Those themes do
/// // not have to be captured, because they will already be visible from
/// // the new route pushed onto said navigator.
/// // Themes are captured outside of the route's builder because when the
......
......@@ -377,7 +377,7 @@ abstract class TransitionRoute<T> extends OverlayRoute<T> {
///
/// If false, this route's [ModalRoute.buildTransitions] `secondaryAnimation` parameter
/// value will be [kAlwaysDismissedAnimation]. In other words, this route
/// will not animate when when [nextRoute] is pushed on top of it or when
/// will not animate when [nextRoute] is pushed on top of it or when
/// [nextRoute] is popped off of it.
///
/// Returns true by default.
......@@ -577,7 +577,7 @@ mixin LocalHistoryRoute<T> on Route<T> {
/// child: const Text('< Back'),
/// onPressed: () {
/// // Pop a route. If this is pressed while the red rectangle is
/// // visible then it will will pop our local history entry, which
/// // visible then it will pop our local history entry, which
/// // will hide the red rectangle. Otherwise, the SecondPage will
/// // navigate back to the HomePage.
/// Navigator.of(context).pop();
......
......@@ -433,7 +433,7 @@ class ScrollDragController implements Drag {
String toString() => describeIdentity(this);
}
/// The activity a scroll view performs when a the user drags their finger
/// The activity a scroll view performs when the user drags their finger
/// across the screen.
///
/// See also:
......
......@@ -86,7 +86,7 @@ class BouncingScrollSimulation extends Simulation {
/// model to a spring model which causes [x] to "spring" back to [trailingExtent].
final double trailingExtent;
/// The spring used used to return [x] to either [leadingExtent] or [trailingExtent].
/// The spring used to return [x] to either [leadingExtent] or [trailingExtent].
final SpringDescription spring;
late FrictionSimulation _frictionSimulation;
......
......@@ -88,7 +88,7 @@ abstract class SliverPersistentHeaderDelegate {
/// Defaults to null.
OverScrollHeaderStretchConfiguration? get stretchConfiguration => null;
/// Specifies how floating headers and pinned pinned headers should behave in
/// Specifies how floating headers and pinned headers should behave in
/// response to [RenderObject.showOnScreen] calls.
///
/// Defaults to null.
......
......@@ -227,7 +227,7 @@ void main() {
await tester.pump(); // start gesture
await tester.pump(const Duration(milliseconds: 200)); // wait for splash to be well under way
final RenderBox box = Material.of(tester.element(find.byType(InkWell)))! as RenderBox;
// paints above above material
// paints above material
expect(box, paints..circle(x: 44.0, y: 0.0, color: splashColor));
await gesture.up();
});
......
......@@ -6849,7 +6849,7 @@ void main() {
defaultTargetPlatform == TargetPlatform.linux ||
defaultTargetPlatform == TargetPlatform.fuchsia
) {
// `newValue` will will not be truncated on couple platforms.
// `newValue` will not be truncated on couple platforms.
expect(state.currentTextEditingValue.text, '你好啊朋友们');
expect(state.currentTextEditingValue.composing, const TextRange(start: 3, end: 6));
} else {
......
......@@ -24,7 +24,7 @@ class Timeline {
/// This is parsed from "traceEvents" data within [json] and sorted by
/// timestamp. Anything without a valid timestamp is put in the beginning.
///
/// This will be null if there are are no "traceEvents" in the [json].
/// This will be null if there are no "traceEvents" in the [json].
final List<TimelineEvent>? events;
}
......
......@@ -763,7 +763,7 @@ class WidgetTester extends WidgetController implements HitTestDispatcher, Ticker
Duration additionalTime = const Duration(milliseconds: 1000),
}) => binding.runAsync<T?>(callback, additionalTime: additionalTime);
/// Whether there are any any transient callbacks scheduled.
/// Whether there are any transient callbacks scheduled.
///
/// This essentially checks whether all animations have completed.
///
......
......@@ -120,7 +120,7 @@ class AndroidValidator extends DoctorValidator {
/// `java -version` response is not only a number, but also includes other
/// information eg. `openjdk version "1.7.0_212"`.
/// This method extracts only the semantic version from from that response.
/// This method extracts only the semantic version from that response.
static String? _extractJavaVersion(String? text) {
if (text == null || text.isEmpty) {
return null;
......
......@@ -254,7 +254,7 @@ class TestCommand extends FlutterCommand with DeviceBasedDevelopmentArtifacts {
_testFiles = argResults.rest.map<String>(globals.fs.path.absolute).toList();
if (_testFiles.isEmpty) {
// We don't scan the entire package, only the test/ subdirectory, so that
// files with names like like "hit_test.dart" don't get run.
// files with names like "hit_test.dart" don't get run.
final Directory testDir = globals.fs.directory('test');
if (!testDir.existsSync()) {
throwToolExit('Test directory "${testDir.path}" not found.');
......
......@@ -23,7 +23,7 @@ import '../src/common.dart';
import '../src/context.dart';
void main() {
testUsingContext('Exits with code 2 when when HttpException is thrown '
testUsingContext('Exits with code 2 when HttpException is thrown '
'during VM service connection', () async {
final FakeResidentCompiler residentCompiler = FakeResidentCompiler();
final FakeDevice device = FakeDevice()
......
......@@ -186,7 +186,7 @@ void main() {
device = createDevice(enableObservatory: true);
});
testUsingContext('skips setting observatory port and uses the input port for for DDS instead', () async {
testUsingContext('skips setting observatory port and uses the input port for DDS instead', () async {
await device.start('example.dill');
await device.observatoryUri;
......
......@@ -237,7 +237,7 @@ void main() {
fileSystem = MemoryFileSystem.test();
});
testUsingContext('Exits with code 2 when when HttpException is thrown '
testUsingContext('Exits with code 2 when HttpException is thrown '
'during VM service connection', () async {
fileSystem.file('.packages')
..createSync(recursive: true)
......
......@@ -985,7 +985,7 @@ void main() {
expect(response.statusCode, 404);
}));
test('WebAssetServer strips leading base href off off asset requests', () => testbed.run(() async {
test('WebAssetServer strips leading base href off of asset requests', () => testbed.run(() async {
const String htmlContent = '<html><head><base href="/foo/"></head><body id="test"></body></html>';
globals.fs.currentDirectory
.childDirectory('web')
......
......@@ -23,7 +23,7 @@ String testOutputsDirectory =
/// succeeds.
typedef ResponseDataCallback = FutureOr<void> Function(Map<String, dynamic>?);
/// Writes a json-serializable json data to
/// Writes a json-serializable data to
/// [testOutputsDirectory]/`testOutputFilename.json`.
///
/// This is the default `responseDataCallback` in [integrationDriver].
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment