Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the @macro annotation in Flutter and Dart documentation

When I'm reading the source code I often see something like this (from TextField):

/// {@macro flutter.widgets.editableText.keyboardType}
final TextInputType keyboardType;

What does the @macro mean?

I found the answer so I'm posting it below as a self-answer Q&A.

like image 426
Suragch Avatar asked Nov 26 '25 09:11

Suragch


1 Answers

A @macro is a way to insert some dartdoc documentation that has been written somewhere else. That way you don't have duplicate docs that you have to maintain.

The string that follows @macro is the name of a template, which includes the documentation you'll insert. So in the TextField example:

/// {@macro flutter.widgets.editableText.keyboardType}
final TextInputType keyboardType;

the template name is flutter.widgets.editableText.keyboardType. If you go to the source code for EditableText, you'll find the template with it's documentation text:

/// {@template flutter.widgets.editableText.keyboardType}
/// The type of keyboard to use for editing the text.
///
/// Defaults to [TextInputType.text] if [maxLines] is one and
/// [TextInputType.multiline] otherwise.
/// {@endtemplate}
final TextInputType keyboardType;

The annotation @template starts the template and is followed by its name. @endtemplate finishes it.

When you view the documentation for EditableText.keyboardType and TextField.keyboardType, you can see they are exactly the same:

  • https://api.flutter.dev/flutter/widgets/EditableText/keyboardType.html
  • https://api.flutter.dev/flutter/material/TextField/keyboardType.html

Read more in the dartdoc documentation.

like image 74
Suragch Avatar answered Nov 29 '25 11:11

Suragch



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!