Skip to content

Commit 2b175f8

Browse files
authored
Add super-mixin support to dartdoc (#1555)
1 parent 95a45b1 commit 2b175f8

File tree

86 files changed

+2204
-2
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+2204
-2
lines changed

analysis_options.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ analyzer:
22
strong-mode: true
33
language:
44
enableGenericMethods: true
5+
enableSuperMixins: true
56
exclude:
67
- 'doc/**'
78
- 'lib/templates/*.html'

lib/src/model.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4967,8 +4967,9 @@ class PackageBuilder {
49674967
AnalysisContext get context {
49684968
if (_context == null) {
49694969
// TODO(jcollins-g): fix this so it actually obeys analyzer options files.
4970-
var options = new AnalysisOptionsImpl()..enableAssertInitializer = true;
4971-
4970+
var options = new AnalysisOptionsImpl();
4971+
options.enableAssertInitializer = true;
4972+
options.enableSuperMixins = true;
49724973
AnalysisEngine.instance.processRequiredPlugins();
49734974

49744975
_context = AnalysisEngine.instance.createAnalysisContext()

testing/test_package/lib/fake.dart

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,18 @@ abstract class Interface {}
173173
/// Yet another interface that can be implemented.
174174
abstract class AnotherInterface {}
175175

176+
class NotAMixin {
177+
String get superString => "A string that's clearly important";
178+
}
179+
180+
class AMixinCallingSuper extends NotAMixin {
181+
@override
182+
String get superString => "${super.superString} but not as important as this";
183+
}
184+
185+
/// Verify super-mixins don't break Dartdoc.
186+
class AClassUsingASuperMixin extends AnotherInterface with AMixinCallingSuper {}
187+
176188
/// A super class, with many powers. Link to [Apple] from another library.
177189
@deprecated
178190
class SuperAwesomeClass {
Lines changed: 284 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,284 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8">
5+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
6+
<meta name="viewport" content="width=device-width, initial-scale=1">
7+
<meta name="description" content="API docs for the AClassUsingASuperMixin class from the fake library, for the Dart programming language.">
8+
<title>AClassUsingASuperMixin class - fake library - Dart API</title>
9+
<!-- required because all the links are pseudo-absolute -->
10+
<base href="..">
11+
12+
<link href="https://fonts.googleapis.com/css?family=Source+Code+Pro:500,400i,400,300|Source+Sans+Pro:400,300,700" rel="stylesheet">
13+
<link rel="stylesheet" href="static-assets/github.css">
14+
<link rel="stylesheet" href="static-assets/styles.css">
15+
<link rel="icon" href="static-assets/favicon.png">
16+
17+
</head>
18+
19+
<body>
20+
21+
<div id="overlay-under-drawer"></div>
22+
23+
<header id="title">
24+
<button id="sidenav-left-toggle" type="button">&nbsp;</button>
25+
<ol class="breadcrumbs gt-separated dark hidden-xs">
26+
<li><a href="index.html">test_package</a></li>
27+
<li><a href="fake/fake-library.html">fake</a></li>
28+
<li class="self-crumb">class AClassUsingASuperMixin</li>
29+
</ol>
30+
<div class="self-name">AClassUsingASuperMixin</div>
31+
<form class="search navbar-right" role="search">
32+
<input type="text" id="search-box" autocomplete="off" disabled class="form-control typeahead" placeholder="Loading search...">
33+
</form>
34+
</header>
35+
36+
<main>
37+
38+
<div class="col-xs-6 col-sm-3 col-md-2 sidebar sidebar-offcanvas-left">
39+
<h5>library fake</h5>
40+
<ol>
41+
<li class="section-title"><a href="fake/fake-library.html#classes">Classes</a></li>
42+
<li><a href="fake/AClassUsingASuperMixin-class.html">AClassUsingASuperMixin</a></li>
43+
<li><a href="fake/AMixinCallingSuper-class.html">AMixinCallingSuper</a></li>
44+
<li><a href="fake/Annotation-class.html">Annotation</a></li>
45+
<li><a href="fake/AnotherInterface-class.html">AnotherInterface</a></li>
46+
<li><a href="fake/BaseForDocComments-class.html">BaseForDocComments</a></li>
47+
<li><a href="fake/BaseThingy-class.html">BaseThingy</a></li>
48+
<li><a href="fake/BaseThingy2-class.html">BaseThingy2</a></li>
49+
<li><a href="fake/ClassWithUnusualProperties-class.html">ClassWithUnusualProperties</a></li>
50+
<li><a href="fake/ConstantClass-class.html">ConstantClass</a></li>
51+
<li><a href="fake/Cool-class.html">Cool</a></li>
52+
<li><a href="fake/ExtraSpecialList-class.html">ExtraSpecialList</a></li>
53+
<li><a href="fake/Foo2-class.html">Foo2</a></li>
54+
<li><a href="fake/HasGenerics-class.html">HasGenerics</a></li>
55+
<li><a href="fake/HasGenericWithExtends-class.html">HasGenericWithExtends</a></li>
56+
<li><a href="fake/ImplementingThingy-class.html">ImplementingThingy</a></li>
57+
<li><a href="fake/ImplementingThingy2-class.html">ImplementingThingy2</a></li>
58+
<li><a href="fake/ImplicitProperties-class.html">ImplicitProperties</a></li>
59+
<li><a href="fake/Interface-class.html">Interface</a></li>
60+
<li><a href="fake/LongFirstLine-class.html">LongFirstLine</a></li>
61+
<li><a href="fake/MixMeIn-class.html">MixMeIn</a></li>
62+
<li><a href="fake/NotAMixin-class.html">NotAMixin</a></li>
63+
<li><a href="fake/OperatorReferenceClass-class.html">OperatorReferenceClass</a></li>
64+
<li><a href="fake/OtherGenericsThing-class.html">OtherGenericsThing</a></li>
65+
<li><a href="fake/SpecialList-class.html">SpecialList</a></li>
66+
<li><a href="fake/SubForDocComments-class.html">SubForDocComments</a></li>
67+
<li><a class="deprecated" href="fake/SuperAwesomeClass-class.html">SuperAwesomeClass</a></li>
68+
<li><a href="fake/WithGetterAndSetter-class.html">WithGetterAndSetter</a></li>
69+
70+
<li class="section-title"><a href="fake/fake-library.html#constants">Constants</a></li>
71+
<li><a href="fake/CUSTOM_CLASS-constant.html">CUSTOM_CLASS</a></li>
72+
<li><a class="deprecated" href="fake/DOWN-constant.html">DOWN</a></li>
73+
<li><a href="fake/greatAnnotation-constant.html">greatAnnotation</a></li>
74+
<li><a href="fake/greatestAnnotation-constant.html">greatestAnnotation</a></li>
75+
<li><a href="fake/incorrectDocReference-constant.html">incorrectDocReference</a></li>
76+
<li><a href="fake/NAME_SINGLEUNDERSCORE-constant.html">NAME_SINGLEUNDERSCORE</a></li>
77+
<li><a href="fake/NAME_WITH_TWO_UNDERSCORES-constant.html">NAME_WITH_TWO_UNDERSCORES</a></li>
78+
<li><a href="fake/PI-constant.html">PI</a></li>
79+
<li><a href="fake/required-constant.html">required</a></li>
80+
<li><a href="fake/testingCodeSyntaxInOneLiners-constant.html">testingCodeSyntaxInOneLiners</a></li>
81+
<li><a href="fake/UP-constant.html">UP</a></li>
82+
<li><a href="fake/ZERO-constant.html">ZERO</a></li>
83+
84+
<li class="section-title"><a href="fake/fake-library.html#properties">Properties</a></li>
85+
<li><a href="fake/dynamicGetter.html">dynamicGetter</a></li>
86+
<li><a href="fake/getterSetterNodocGetter.html">getterSetterNodocGetter</a></li>
87+
<li><a href="fake/getterSetterNodocSetter.html">getterSetterNodocSetter</a></li>
88+
<li><a href="fake/justGetter.html">justGetter</a></li>
89+
<li><a href="fake/justSetter.html">justSetter</a></li>
90+
<li><a href="fake/mapWithDynamicKeys.html">mapWithDynamicKeys</a></li>
91+
<li><a class="deprecated" href="fake/meaningOfLife.html">meaningOfLife</a></li>
92+
<li><a href="fake/setAndGet.html">setAndGet</a></li>
93+
<li><a href="fake/simpleProperty.html">simpleProperty</a></li>
94+
95+
<li class="section-title"><a href="fake/fake-library.html#functions">Functions</a></li>
96+
<li><a href="fake/addCallback.html">addCallback</a></li>
97+
<li><a href="fake/addCallback2.html">addCallback2</a></li>
98+
<li><a href="fake/functionWithFunctionParameters.html">functionWithFunctionParameters</a></li>
99+
<li><a href="fake/myGenericFunction.html">myGenericFunction</a></li>
100+
<li><a href="fake/onlyPositionalWithNoDefaultNoType.html">onlyPositionalWithNoDefaultNoType</a></li>
101+
<li><a href="fake/paintImage1.html">paintImage1</a></li>
102+
<li><a href="fake/paintImage2.html">paintImage2</a></li>
103+
<li><a href="fake/paramFromAnotherLib.html">paramFromAnotherLib</a></li>
104+
<li><a href="fake/short.html">short</a></li>
105+
<li><a href="fake/soIntense.html">soIntense</a></li>
106+
<li><a href="fake/thisIsAlsoAsync.html">thisIsAlsoAsync</a></li>
107+
<li><a href="fake/thisIsAsync.html">thisIsAsync</a></li>
108+
<li><a class="deprecated" href="fake/topLevelFunction.html">topLevelFunction</a></li>
109+
110+
<li class="section-title"><a href="fake/fake-library.html#enums">Enums</a></li>
111+
<li><a href="fake/Color-class.html">Color</a></li>
112+
113+
<li class="section-title"><a href="fake/fake-library.html#typedefs">Typedefs</a></li>
114+
<li><a href="fake/Callback2.html">Callback2</a></li>
115+
<li><a class="deprecated" href="fake/FakeProcesses.html">FakeProcesses</a></li>
116+
<li><a href="fake/GenericTypedef.html">GenericTypedef</a></li>
117+
<li><a href="fake/LotsAndLotsOfParameters.html">LotsAndLotsOfParameters</a></li>
118+
<li><a href="fake/myCoolTypedef.html">myCoolTypedef</a></li>
119+
<li><a href="fake/NewGenericTypedef.html">NewGenericTypedef</a></li>
120+
<li><a href="fake/VoidCallback.html">VoidCallback</a></li>
121+
122+
<li class="section-title"><a href="fake/fake-library.html#exceptions">Exceptions</a></li>
123+
<li><a class="deprecated" href="fake/Doh-class.html">Doh</a></li>
124+
<li><a href="fake/Oops-class.html">Oops</a></li>
125+
</ol>
126+
</div>
127+
128+
<div class="col-xs-12 col-sm-9 col-md-8 main-content">
129+
130+
<section class="desc markdown">
131+
<p>Verify super-mixins don't break Dartdoc.</p>
132+
</section>
133+
134+
<section>
135+
<dl class="dl-horizontal">
136+
<dt>Inheritance</dt>
137+
<dd><ul class="gt-separated dark clazz-relationships">
138+
<li>Object</li>
139+
<li><a href="fake/AnotherInterface-class.html">AnotherInterface</a></li>
140+
<li>AClassUsingASuperMixin</li>
141+
</ul></dd>
142+
143+
144+
<dt>Mixes-in</dt>
145+
<dd><ul class="comma-separated clazz-relationships">
146+
<li><a href="fake/AMixinCallingSuper-class.html">AMixinCallingSuper</a></li>
147+
</ul></dd>
148+
149+
150+
</dl>
151+
</section>
152+
153+
<section class="summary offset-anchor" id="constructors">
154+
<h2>Constructors</h2>
155+
156+
<dl class="constructor-summary-list">
157+
<dt id="AClassUsingASuperMixin" class="callable">
158+
<span class="name"><a href="fake/AClassUsingASuperMixin/AClassUsingASuperMixin.html">AClassUsingASuperMixin</a></span><span class="signature">()</span>
159+
</dt>
160+
<dd>
161+
162+
</dd>
163+
</dl>
164+
</section>
165+
166+
<section class="summary offset-anchor inherited" id="instance-properties">
167+
<h2>Properties</h2>
168+
169+
<dl class="properties">
170+
<dt id="hashCode" class="property inherited">
171+
<span class="name"><a href="fake/AnotherInterface/hashCode.html">hashCode</a></span>
172+
<span class="signature">&#8594; int</span>
173+
</dt>
174+
<dd class="inherited">
175+
176+
<div class="features">read-only, inherited</div>
177+
</dd>
178+
<dt id="runtimeType" class="property inherited">
179+
<span class="name"><a href="fake/AnotherInterface/runtimeType.html">runtimeType</a></span>
180+
<span class="signature">&#8594; Type</span>
181+
</dt>
182+
<dd class="inherited">
183+
184+
<div class="features">read-only, inherited</div>
185+
</dd>
186+
<dt id="superString" class="property inherited">
187+
<span class="name"><a href="fake/AMixinCallingSuper/superString.html">superString</a></span>
188+
<span class="signature">&#8594; String</span>
189+
</dt>
190+
<dd class="inherited">
191+
192+
<div class="features">read-only, inherited</div>
193+
</dd>
194+
</dl>
195+
</section>
196+
197+
<section class="summary offset-anchor inherited" id="instance-methods">
198+
<h2>Methods</h2>
199+
<dl class="callables">
200+
<dt id="noSuchMethod" class="callable inherited">
201+
<span class="name"><a href="fake/AnotherInterface/noSuchMethod.html">noSuchMethod</a></span><span class="signature">(<wbr><span class="parameter" id="noSuchMethod-param-invocation"><span class="type-annotation">Invocation</span> <span class="parameter-name">invocation</span></span>)
202+
<span class="returntype parameter">&#8594; dynamic</span>
203+
</span>
204+
</dt>
205+
<dd class="inherited">
206+
207+
<div class="features">inherited</div>
208+
</dd>
209+
<dt id="toString" class="callable inherited">
210+
<span class="name"><a href="fake/AnotherInterface/toString.html">toString</a></span><span class="signature">(<wbr>)
211+
<span class="returntype parameter">&#8594; String</span>
212+
</span>
213+
</dt>
214+
<dd class="inherited">
215+
216+
<div class="features">inherited</div>
217+
</dd>
218+
</dl>
219+
</section>
220+
221+
<section class="summary offset-anchor inherited" id="operators">
222+
<h2>Operators</h2>
223+
<dl class="callables">
224+
<dt id="operator ==" class="callable inherited">
225+
<span class="name"><a href="fake/AnotherInterface/operator_equals.html">operator ==</a></span><span class="signature">(<wbr><span class="parameter" id="==-param-other"><span class="parameter-name">other</span></span>)
226+
<span class="returntype parameter">&#8594; bool</span>
227+
</span>
228+
</dt>
229+
<dd class="inherited">
230+
231+
<div class="features">inherited</div>
232+
</dd>
233+
</dl>
234+
</section>
235+
236+
237+
238+
239+
</div> <!-- /.main-content -->
240+
241+
<div class="col-xs-6 col-sm-6 col-md-2 sidebar sidebar-offcanvas-right">
242+
<h5>class AClassUsingASuperMixin</h5>
243+
<ol>
244+
<li class="section-title"><a href="fake/AClassUsingASuperMixin-class.html#constructors">Constructors</a></li>
245+
<li><a href="fake/AClassUsingASuperMixin/AClassUsingASuperMixin.html">AClassUsingASuperMixin</a></li>
246+
247+
<li class="section-title inherited">
248+
<a href="fake/AClassUsingASuperMixin-class.html#instance-properties">Properties</a>
249+
</li>
250+
<li class="inherited"><a href="fake/AnotherInterface/hashCode.html">hashCode</a></li>
251+
<li class="inherited"><a href="fake/AnotherInterface/runtimeType.html">runtimeType</a></li>
252+
<li class="inherited"><a href="fake/AMixinCallingSuper/superString.html">superString</a></li>
253+
254+
<li class="section-title inherited"><a href="fake/AClassUsingASuperMixin-class.html#instance-methods">Methods</a></li>
255+
<li class="inherited"><a href="fake/AnotherInterface/noSuchMethod.html">noSuchMethod</a></li>
256+
<li class="inherited"><a href="fake/AnotherInterface/toString.html">toString</a></li>
257+
258+
<li class="section-title inherited"><a href="fake/AClassUsingASuperMixin-class.html#operators">Operators</a></li>
259+
<li class="inherited"><a href="fake/AnotherInterface/operator_equals.html">operator ==</a></li>
260+
261+
262+
263+
</ol>
264+
</div><!--/.sidebar-offcanvas-->
265+
266+
</main>
267+
268+
<footer>
269+
<span class="no-break">
270+
test_package 0.0.1
271+
</span>
272+
273+
</footer>
274+
275+
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
276+
<script src="static-assets/typeahead.bundle.min.js"></script>
277+
<script src="static-assets/highlight.pack.js"></script>
278+
<script src="static-assets/URI.js"></script>
279+
<script src="static-assets/script.js"></script>
280+
281+
282+
</body>
283+
284+
</html>

0 commit comments

Comments
 (0)