public-member-api-docs
Same as public_member_api_docs in Dart lints
- Group
- Style
- Path
lint/style/public-member-api-docs- Default
- Off, opt in
- Origin
- Dart lints
- Rule
- 427 of 512
Documents public declarations and members in package libraries.
Private declarations, top-level functions named main, and overriding members are
exempt; like the analyzer, package:meta's @internal exempts a top-level
declaration with its members, but not a member on its own. Ordinary constructors
of enums and of sealed, abstract final and abstract interface classes are exempt.
A doc comment
before, between or after the metadata documents the declaration, including
the analyzer's empty /**/ documentation. @override alone does not exempt
a member. Fields and getters override inherited getters, methods and fields
(not setters);
setters override inherited setters and are checked only when their paired
getter is reported. Extension-type
representation fields are not field declarations visited by the upstream
rule.
A class primary constructor is checked separately from its type; header
constructors are reported at their name without closed-type exemptions,
and implementations at this. Header parameters are not field declarations.
An override exemption requires a combined inherited member, not merely a
same-named declaration among incompatible inherited interface signatures.
Invalid
import 'package:meta/meta.dart';
class Api {
Api();
int field = 0;
void method() {}
int get value => 0;
set value(int v) {}
}
void function() {}
int variable = 0;
typedef Alias = int;
enum Choice {
one,
two
}
mixin Features {
void method() {}
}
extension Named on int {
int get doubled => this * 2;
}
extension type Wrapper(int value) {
static void utility() {}
}
int get setting => 0;
set setting(int value) {}
/// Members do not inherit their own `@internal`.
class Internals {
@internal
void hidden() {}
}
/// Declares only a setter.
abstract class SetterBase {
/// Sink.
set sink(int value);
}
/// A field does not override an inherited setter.
class SetterField extends SetterBase {
int sink = 0;
}
/// A getter does not override an inherited setter.
class SetterGetter extends SetterBase {
int get sink => 0;
set sink(int value) {}
}
/// An annotation alone does not make a member an override.
class NonOverrides {
@override
void absent() {}
@override
int field = 0;
@override
int get value => 0;
@override
set value(int next) {}
@override
static void utility() {}
}
@override
void annotatedFunction() {}
/* Ordinary block comments are not documentation. */
class PlainComment {}
/// Setter diagnostics retain declaration order even when their getter comes later.
class SetterBeforeGetter {
set later(int value) {}
int get later => 0;
}
set laterTopLevel(int value) {}
int get laterTopLevel => 0; class Api {class Api { Api(); Api(); int field = 0; int field = 0; void method() {} void method() {} int get value => 0; int get value => 0; set value(int v) {}}void function() {}void function() {}int variable = 0;int variable = 0;typedef Alias = int;typedef Alias = int;enum Choice {enum Choice { one, one, two}mixin Features {mixin Features { void method() {}}extension Named on int {extension Named on int { int get doubled => this * 2;}extension type Wrapper(int value) {extension type Wrapper(int value) { static void utility() {}}int get setting => 0;int get setting => 0;set setting(int value) {} @internal void hidden() {}class SetterField extends SetterBase { int sink = 0;class SetterGetter extends SetterBase { int get sink => 0; @override void absent() {} @override int field = 0; @override int get value => 0; @override set value(int next) {} @override static void utility() {}@overridevoid annotatedFunction() {}/* Ordinary block comments are not documentation. */class PlainComment {}class SetterBeforeGetter { set later(int value) {} set later(int value) {} int get later => 0; set laterTopLevel(int value) {}set laterTopLevel(int value) {}int get laterTopLevel => 0;Valid
// Documentation lints do not apply outside a package lib directory.
class Outside { void method() {} }Configure public-member-api-docs
Set its severity in falcon.json. See the configuration guide.
{
"linter": {
"rules": {
"style": {
"public-member-api-docs": "error"
}
}
}
}Or silence one occurrence with a suppression comment; the reason is required.
// falcon-ignore lint/style/public-member-api-docs: <reason>More style rules
- record-fields-ordering
Flags named record type fields that violate the configured order.
- require-trailing-commas
require_trailing_commasFlags a multi-line call, declaration, assert, or collection literal that is missing a trailing comma.
- sized-box-shrink-expand
sized_box_shrink_expandrecommendedflutterPrefers
SizedBox.shrink()/SizedBox.expand()over aSizedBoxsized to zero or infinity. - slash-for-doc-comments
slash_for_doc_commentsrecommendedFlags
/** ... - sort-child-properties-last
sort_child_properties_lastrecommendedflutterSort Widget-valued child properties last, except before closure arguments.
- sort-constructors-first
sort_constructors_firstFlags a constructor declared after a non-constructor member.
- sort-unnamed-constructors-first
sort_unnamed_constructors_firstFlags an unnamed constructor declared after a named constructor.
- tighten-type-of-initializing-formals
tighten_type_of_initializing_formalsFlags a nullable
this.xorsuper.xinitializing formal whose constructor assertsx != null.