Dartdoc: рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ 2 рд▓реЗрдЯ рдлреАрд▓реНрдб рддреНрд░реБрдЯрд┐ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 24 рдЬреБрд▓ре░ 2020  ┬╖  17рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: dart-lang/dartdoc

рдирд┐рдореНрди рдХреЛрдб рдХреА рддрд░рд╣ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ 2 рджреЗрд░ рд╕реЗ рдлрд╝реАрд▓реНрдб рдХреЗ рд╕рд╛рде:

class A {
  late double a;
  late double b;
}

dartdoc --enable-experiment=non-nullable рдЖрдЙрдЯрдкреБрдЯ рддреНрд░реБрдЯрд┐:

Generating docs for library a from package:hello_world/a.dart...
  error: failed to write file at: a/A/double.html, for symbol a.A.double: (file:///home/a14n/hello_world/lib/a.dart:2:8)
            Dartdoc generates a path and filename to write to for each symbol.
            a.A.double conflicts with another symbol in the generated path, and
            therefore can not be written out.  Changing the name, library name, or
            class name (if appropriate) of one of the conflicting items can resolve
            the conflict.   Alternatively, use the <strong i="10">@nodoc</strong> tag in one symbol's
            documentation comments to hide it.

рдХреЗрд╡рд▓ рдПрдХ рджреЗрд░ рд╕реЗ рдлрд╝реАрд▓реНрдб рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

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

FWIW рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╕реНрдкрдВрджрди рдкреНрд░рд╡рд╛рд╕ рдХреЛ рдирд▓рд╕реЗрдлреНрдЯреА рдореЗрдВ рд░реЛрдХ рд░рд╣реА рд╣реИред

рдЕрдЬреАрдм рдЪреЗрд╣рд░реЗ рд╡рд╛рд▓рд╛ рдЗрдореЛрдЬреА рдХрд╣рд╛рдВ рд╣реИ... рдХреНрдпрд╛ рдЕрдЬреАрдм рдмрдЧ рд╣реИред рдореИрдВ рдЖрдЬ рдЗрд╕реЗ рджреЗрдЦ рд▓реВрдВрдЧрд╛ред

dartdoc рдЖрдкрдХреЗ рд╕реНрд░реЛрдд рдХреЛ рдирд▓-рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реИред рдЗрд╕рдХреЗ 17 рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд╣рд╛ред рдХреНрдпрд╛ рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  1. рдХреНрдпрд╛ рдкреИрдХреЗрдЬ рдПрд╕рдбреАрдХреЗ рдмрд╛рдзрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╢реВрдиреНрдп-рд╕реБрд░рдХреНрд╖рд╛ рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдбрд╛рд░реНрдЯ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ 2.9 _or_ 2.10 рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
  2. рдХреНрдпрд╛ рдкреИрдХреЗрдЬ рдХреЛ рдПрдирд╛рд▓рд┐рд╕рд┐рд╕_рдСрдкреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд▓-рд╕реЗрдлреНрдЯреА рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИ?
analyzer:
  enable-experiment:
    - non-nullable
  1. рдХреНрдпрд╛ рдЖрдк null-safety рдкреНрд░рдпреЛрдЧ рдХреЗ рд╕рд╛рде dartdoc рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ? рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдкрдм рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╢рд╛рдпрдж рдпрд╣ pub global run dartdoc --enable-experiment=null-safety рдЬреИрд╕рд╛ рдХреБрдЫ рд╣реИред

рд╣рд╛рдБ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреИрдХреЗрдЬ рд╣реИ

//------ analysis_options.yaml
analyzer:
  enable-experiment:
  - non-nullable
//------ pubspec.yaml
name: hello_world
environment:
  sdk: ">=2.9.0-14.0.dev <3.0.0"
//------ lib/a.dart
class A {
  late double a;
  late double b;
}

рдФрд░ рдореИрдВ dartdoc --enable-experiment=non-nullable ( dartdoc --enable-experiment=null-safety рд╕рд╛рде рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐) рдЪрд▓рд╛рддрд╛ рд╣реВрдВред

рдЖрдк рдореЗрд░реЗ рд╕реНрдкрдВрджрди рдкреАрдЖрд░ рдкрд░ рд╡рд┐рдлрд▓рддрд╛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ https://cirrus-ci.com/task/4975447580606464?command=main#L137

@srawlins рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ?

FWIW рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╕реНрдкрдВрджрди рдкреНрд░рд╡рд╛рд╕ рдХреЛ рдирд▓рд╕реЗрдлреНрдЯреА рдореЗрдВ рд░реЛрдХ рд░рд╣реА рд╣реИ

рдХреНрдпрд╛ рдпрд╣ рдкрд▓рд╛рдпрди рдХреЛ рд░реЛрдХ рд░рд╣рд╛ рд╣реИ? рдЗрд╕рдХреЗ рдХреБрдЫ рдкрд╣рд▓реВ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдирд╛? рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдирд┐рдХрдЯ рдЕрд╡рдзрд┐ рдореЗрдВ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реИ?

pubspec рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрд╢рдХреНрдд рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╕рдордп рдореИрдВ рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рдкрд╛рдпрд╛:

environment:
  sdk: '>=2.9.0-18.0 <2.9.0'

рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг_рд╡рд┐рдХрд▓реНрдк:

analyzer:
  enable-experiment:
    - non-nullable

рдФрд░ рд╕рд┐рд░ рдкрд░ рдбрд╛рд░реНрдЯрдбреЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╕рд┐рд░ рдкрд░ dart рдЪрд▓ рд░рд╣рд╛ рд╣реИ:

~/code/dart-sdk/sdk/xcodebuild/ReleaseX64/dart-sdk/bin/dart
    --enable-experiment=non-nullable
    ../dart-dartdoc/bin/dartdoc.dart
    --enable-experiment=non-nullable

рдореИрдВ рдбрд╛рд░реНрдЯрдбреЙрдХ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╣реИред рдореИрдВ рд╡рд░реНрддрдорд╛рди рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рд░рд┐рд▓реАрдЬрд╝ рдкрд░ рднреА рдЬрд╛рдБрдЪ рдХрд░реВрдБрдЧрд╛ред

рдХреНрдпрд╛ рдпрд╣ рдкрд▓рд╛рдпрди рдХреЛ рд░реЛрдХ рд░рд╣рд╛ рд╣реИ? рдЗрд╕рдХреЗ рдХреБрдЫ рдкрд╣рд▓реВ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдирд╛?

рд╣рд╛рдБ рдХреНрдпреЛрдВрдХрд┐ docs-linux рдиреМрдХрд░реА рд╣рдореЗрд╢рд╛ рдЕрд╕рдлрд▓ рд╣реЛрддреА рд╣реИред (рджреЗрдЦреЗрдВ рд╕реНрдкрдВрджрди/рд╕реНрдкрдВрджрди#62157)

рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдирд┐рдХрдЯ рдЕрд╡рдзрд┐ рдореЗрдВ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реИ?

рд╕рднреА late рдирд┐рдХрд╛рд▓реЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рд╣рд░ рдЬрдЧрд╣ ! рдФрд░ ? рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА :-(

рдЕрд╕рдлрд▓ рдиреМрдХрд░реА рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рд╣реИ dartdoc version: 0.32.1 ред рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рдЖрдкрдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ? рдпрджрд┐ рдЖрдк рд╕рдорд╕реНрдпрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ рддреЛ рдЗрд╕рдХрд╛ рдЕрд░реНрде рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬрд╝ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░ рджреЗрдЧреАред

рдЧреЛрдЪрд╛; рдореИрдВ рдХреБрдЫ рдЭрдВрдбреЛрдВ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдбрд╛рд░реНрдЯрдбреЙрдХ (рдпрд╛ рдЭрдВрдбреЗ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ) рдХреЛ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рдЗрд╕ рдмреАрдЪ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рджреЗрдВрдЧреЗред

@srawlins - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ nnbd рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЛ рдЖрдо рддреМрд░ рдкрд░ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдПрдХ рдлрд┐рдХреНрд╕ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрдЧрд╛ред

рд╣рд╛рдБ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдбрд╛рд░реНрдЯ 2.10.0-dev.something рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ 0.32.1 рдкрд░ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдПрдХ рдЕрдкреНрд░рдХрд╛рд╢рд┐рдд 0.32.2 рд╣реИ рдЬреЛ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рднреА рдпрд╣реА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

рдореИрдВ v0.32.2 git рдЯреИрдЧ рдФрд░ рдорд╛рд╕реНрдЯрд░ рдкрд░ pub global run рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ pub рдЕрдкрд░рд╛рдзреА рдХреНрдпреЛрдВ рд╣реИред

рдирд╣реАрдВред рдореЗрд░реА рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рднрдЯрдХрд╛ рд╣реБрдЖ // @dart=2.9 рдерд╛ (рдЬреЛ рдЕрдм рд╢реВрдиреНрдп рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП _рдмрд╣реБрдд рдХрдо_ рд╣реИ)ред

рдореИрдВ рдбрд╛рд░реНрдЯрдбреЛрдХ 0.32.1 рдкрд░ pub run dartdoc рд╕рд╛рде рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рди рд╣реА рдЧрд┐рдЯ рд╢рд╛рдЦрд╛ v0.32.2, рди рд╣реА рд╕рд┐рд░ рдкрд░ред

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ, рдореБрдЭреЗ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рд▓рд┐рдирдХреНрд╕ рдмреЙрдЯ рдкрд░ рдбрд╛рд░реНрдЯрдбреЙрдХ рдЖрдордВрддреНрд░рдг рдореЗрдВ --enable-experiment=non-nullable рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИред

рдореБрдЭреЗ рдЖрдкрдХреЗ рд╕рд┐рд░рд╕ рд▓рд┐рдВрдХ рдореЗрдВ рди рддреЛ --enable-experiment=non-nullable рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИ, рди рд╣реА рдЖрдкрдХреЗ рдкреАрдЖрд░ рдкрд░ рдирд╡реАрдирддрдо рд╕рд┐рд░рд╕ рд▓рд┐рдВрдХ рдореЗрдВред

рдЕрдЪреНрдЫреА рдкрдХрдбрд╝! рдЗрд╕реЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

(рд▓реЗрдХрд┐рди рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд┐рдпрд╛)

рд╣рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдХрд▓ рд╕реБрдмрд╣ рдбрд╛рд░реНрдЯрдбреЙрдХ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рдХреЗ рдмрд╛рдж рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХреА рдЬрд╛рдПрдЧреАред

--enable-experiment=non-nullable рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЧрдИред рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

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

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

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

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

dnfield picture dnfield  ┬╖  11рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

rubensdemelo picture rubensdemelo  ┬╖  31рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ