Dartdoc: рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рднреАрддрд░ рд╕рдВрджрд░реНрдн рд▓рд┐рдВрдХ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 3 рдЕрдХреНрддреВре░ 2019  ┬╖  12рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: dart-lang/dartdoc

рдЬреИрд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

extension Foo on String {
  /// Print this and [another].
  void doStuff(String another) {
    print(this + another);
  }
}

рд░рдирд┐рдВрдЧ рдбрд╛рд░реНрдЯ рдбреЙрдХ рдХреНрд░реИрд╢ред рдЕрдЧрд░ рдореИрдВ [another] рд╣рдЯрд╛ рджреВрдВ рддреЛ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЬрдм рдпрд╣ рд╕рдВрджрд░реНрдн рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рддреЛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИред

dartdoc failed: type 'Extension' is not a subtype of type 'Class'
package:dartdoc/src/markdown_processor.dart 209:66            _getMatchingLinkElement
package:dartdoc/src/markdown_processor.dart 758:12            _linkDocReference
package:dartdoc/src/markdown_processor.dart 1006:22           Documentation._renderMarkdownToHtml._linkResolver
package:markdown/src/inline_parser.dart 720:14                LinkSyntax._resolveReferenceLink
package:markdown/src/inline_parser.dart 742:9                 LinkSyntax._tryAddReferenceLink
package:markdown/src/inline_parser.dart 692:12                LinkSyntax.onMatchEnd
package:markdown/src/inline_parser.dart 1216:16               TagState.close
package:markdown/src/inline_parser.dart 1155:7                TagState.tryMatch
package:markdown/src/inline_parser.dart 106:57                InlineParser.parse.<fn>
dart:_internal                                                ListIterable.any
package:markdown/src/inline_parser.dart 106:12                InlineParser.parse
package:dartdoc/src/markdown_processor.dart 903:53            MarkdownDocument._parseInlineContent
package:dartdoc/src/markdown_processor.dart 908:9             MarkdownDocument._parseInlineContent
package:dartdoc/src/markdown_processor.dart 928:5             MarkdownDocument.renderLinesToHtml
package:dartdoc/src/markdown_processor.dart 1016:21           Documentation._renderMarkdownToHtml
package:dartdoc/src/markdown_processor.dart 986:9             Documentation._renderHtmlForDartdoc
package:dartdoc/src/markdown_processor.dart 977:7             Documentation.asOneLiner
package:dartdoc/src/model.dart 3901:25                        ModelElement.computeOneLineDoc
package:dartdoc/src/model.dart 3907:21                        ModelElement.oneLineDoc
dart:mirrors                                                  _InstanceMirror.getField
package:mustache/src/renderer.dart 245:29                     Renderer._getNamedProperty
package:mustache/src/renderer.dart 212:16                     Renderer.resolveValue
package:mustache/src/renderer.dart 90:17                      Renderer.visitVariable
package:mustache/src/node.dart 45:43                          VariableNode.accept
package:mustache/src/renderer.dart 64:53                      Renderer.render.<fn>
dart:_internal                                                ListIterable.forEach
package:mustache/src/renderer.dart 64:36                      Renderer.render
package:mustache/src/renderer.dart 195:16                     Renderer.visitPartial
package:mustache/src/node.dart 81:43                          PartialNode.accept
package:mustache/src/node.dart 66:37                          SectionNode.visitChildren.<fn>
dart:core                                                     List.forEach
package:mustache/src/node.dart 66:14                          SectionNode.visitChildren
package:mustache/src/renderer.dart 184:10                     Renderer._renderWithValue
package:mustache/src/renderer.dart 126:28                     Renderer._renderSection.<fn>
dart:core                                                     Iterable.forEach
package:mustache/src/renderer.dart 126:13                     Renderer._renderSection
package:mustache/src/renderer.dart 115:7                      Renderer.visitSection
package:mustache/src/node.dart 63:43                          SectionNode.accept
package:mustache/src/node.dart 66:37                          SectionNode.visitChildren.<fn>
dart:core                                                     List.forEach
package:mustache/src/node.dart 66:14                          SectionNode.visitChildren
package:mustache/src/renderer.dart 184:10                     Renderer._renderWithValue
package:mustache/src/renderer.dart 130:7                      Renderer._renderSection
package:mustache/src/renderer.dart 115:7                      Renderer.visitSection
package:mustache/src/node.dart 63:43                          SectionNode.accept
package:mustache/src/node.dart 66:37                          SectionNode.visitChildren.<fn>
dart:core                                                     List.forEach
package:mustache/src/node.dart 66:14                          SectionNode.visitChildren
package:mustache/src/renderer.dart 184:10                     Renderer._renderWithValue
package:mustache/src/renderer.dart 144:7                      Renderer._renderSection
package:mustache/src/renderer.dart 115:7                      Renderer.visitSection
package:mustache/src/node.dart 63:43                          SectionNode.accept
package:mustache/src/renderer.dart 58:30                      Renderer.render.<fn>
dart:core                                                     List.forEach
package:mustache/src/renderer.dart 58:13                      Renderer.render
package:mustache/src/template.dart 40:14                      Template.render
package:mustache/src/template.dart 33:5                       Template.renderString
package:dartdoc/src/html/html_generator_instance.dart 414:31  HtmlGeneratorInstance._build
package:dartdoc/src/html/html_generator_instance.dart 312:5   HtmlGeneratorInstance.generateExtension
package:dartdoc/src/html/html_generator_instance.dart 175:11  HtmlGeneratorInstance._generateDocs
package:dartdoc/src/html/html_generator_instance.dart 37:7    HtmlGeneratorInstance.generate
dart:async                                                    _AsyncAwaitCompleter.start
package:dartdoc/src/html/html_generator_instance.dart 35:18   HtmlGeneratorInstance.generate
package:dartdoc/src/html/html_generator.dart 117:23           HtmlGenerator.generate
dart:async                                                    _AsyncAwaitCompleter.start
package:dartdoc/src/html/html_generator.dart 83:18            HtmlGenerator.generate
package:dartdoc/dartdoc.dart 107:25                           Dartdoc.generateDocsBase
dart:async                                                    _completeOnAsyncReturn
package:dartdoc/src/model.dart                                PackageBuilder.buildPackageGraph

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЯрд┐рдкреНрдкрдгреА рд╕рдВрджрд░реНрдн рд▓реБрдХрдЕрдк рдХреЗ рдкреБрдирд░реНрд▓реЗрдЦрди рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдПрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реИ, рд▓реЗрдХрд┐рди, рдПрдХ рдмрдбрд╝рд╛ рдЯреБрдХрдбрд╝рд╛ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг, рдпрд╣ рдЕрдиреНрдп рдирдП рдлреАрдЪрд░ рдХрд╛рдо рдХреЗ рдкреАрдЫреЗ рдкрдЯрдХрддрд╛ рд░рд╣рддрд╛ рд╣реИред

рд╕рднреА 12 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреБрдЫ рд▓рд╛рдкрддрд╛ рдорд╛рдорд▓реЗ рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВред рдЗрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рд╣рдо рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐ рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╕рдВрджрд░реНрдн рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдФрд░ рдЬреЛрдЦрд┐рдо рдХреНрд░реИрд╢ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдмрдЧ рдХреЛ P0 рддрдХ рдмрдврд╝рд╛рдирд╛ред

@ jcollins-g рдпрд╣ D26 рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╡рд░реЛрдзрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рдореБрдЦреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ dart:ffi рдЕрдм рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП dartdoc рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ)

рдпрд╣ рдХреЗрд╡рд▓ рд╡рд┐рд╕реНрддрд╛рд░ рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдирд╣реАрдВ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдХреЛрдИ рд╕рдВрджрд░реНрдн рд╣реИред
рджреЛрдиреЛрдВ:

extension Foo on int {
  /// Returns [toRadixString] or something.
  String toHexString() => toRadixString(16);
}

рддрдерд╛

extension Foo on int {
  /// Returns [int.toRadixString] or something.
  String toHexString() => toRadixString(16);
}

рджреБрд░реНрдШрдЯрдирд╛ред рди рддреЛ рдХрд┐рд╕реА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕рджрд╕реНрдп рдХрд╛ рд╕рдВрджрд░реНрдн рд▓реЗрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдПрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╣рд╛рдВ, рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╣рд░ рдЪреАрдЬ рдЕрднреА рдЯреВрдЯреА рд╣реБрдИ рд╣реИред рдЖрдЬ рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рдЕрднреА рддрдХ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

2040 рдЗрд╕реЗ рдЦрддреНрдо рдХрд░ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЕрднреА рднреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЯрд┐рдкреНрдкрдгреА рд╕рдВрджрд░реНрдн рд▓реБрдХрдЕрдк рдХреЗ рдкреБрдирд░реНрд▓реЗрдЦрди рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдПрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реИ, рд▓реЗрдХрд┐рди, рдПрдХ рдмрдбрд╝рд╛ рдЯреБрдХрдбрд╝рд╛ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг, рдпрд╣ рдЕрдиреНрдп рдирдП рдлреАрдЪрд░ рдХрд╛рдо рдХреЗ рдкреАрдЫреЗ рдкрдЯрдХрддрд╛ рд░рд╣рддрд╛ рд╣реИред

рдХрд┐рд╕реА рднреА рдореМрдХреЗ рдкрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдмреИрдВрдбрдПрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╕рд┐рд░реНрдл рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рд╢рд╛рдВрдд рдХрд░рддрд╛ рд╣реИ? рдореИрдВ рдлрд╝реНрд▓рдЯрд░ рдХреЛрдбрдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдмрдЧ рдРрд╕рд╛ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рд╣рд░ рдЪреАрдЬ рдкрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ)ред (рд╡рд┐рдбрдВрдмрдирд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЖрдо рддреМрд░ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдХ рдмрд╣рд┐рд╖реНрдХрд░рдг рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╕рд╣рд╛рдпрддрд╛ рд╣реИ ...)

рдХрд┐рд╕реА рднреА рдореМрдХреЗ рдкрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдмреИрдВрдбрдПрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╕рд┐рд░реНрдл рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рд╢рд╛рдВрдд рдХрд░рддрд╛ рд╣реИ? рдореИрдВ рдлрд╝реНрд▓рдЯрд░ рдХреЛрдбрдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдмрдЧ рдРрд╕рд╛ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рд╣рд░ рдЪреАрдЬ рдкрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ)ред (рд╡рд┐рдбрдВрдмрдирд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЖрдо рддреМрд░ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдХ рдмрд╣рд┐рд╖реНрдХрд░рдг рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╕рд╣рд╛рдпрддрд╛ рд╣реИ ...)

рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рд╢рд╛рдВрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк dartdoc рдореЗрдВ "рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХреА рдЧрдИ" рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЖрд╣ рдХрдорд╛рд▓, рдзрдиреНрдпрд╡рд╛рджред

рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХ рд╕реНрд╡рдпрдВ рдЕрднреА рднреА рд╣рд▓ рдирд╣реАрдВ рд╣реБрдП рд╣реИрдВред :-) рд╡реИрд╕реЗ рднреА рдореИрдВ рдЕрднреА рдХреЗ рд▓рд┐рдП рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХреНрд╕ рдХреЛ рд╣рдЯрд╛ рджреВрдБрдЧрд╛ред

рдпрд╣ рдЕрдм dartdoc 1.0.0 рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Sfshaza picture Sfshaza  ┬╖  21рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mcmahonjohn picture mcmahonjohn  ┬╖  12рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

masteradit picture masteradit  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

chalin picture chalin  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

robbecker-wf picture robbecker-wf  ┬╖  12рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ