Skip to content

Commit 4e7ce46

Browse files
committed
Clean up language feature
1 parent 53222e2 commit 4e7ce46

25 files changed

+2014
-2200
lines changed

lib/resources/docs.dart.js

Lines changed: 1702 additions & 1654 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/resources/docs.dart.js.map

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/src/generator/templates.aot_renderers_for_html.dart

Lines changed: 197 additions & 242 deletions
Large diffs are not rendered by default.

lib/src/generator/templates.dart

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ import 'package:dartdoc/src/generator/templates.aot_renderers_for_html.dart'
4949
import 'package:dartdoc/src/generator/templates.runtime_renderers.dart'
5050
as runtime_renderers;
5151
import 'package:dartdoc/src/model/annotation.dart';
52-
import 'package:dartdoc/src/model/feature_set.dart';
5352
import 'package:dartdoc/src/model/language_feature.dart';
5453
import 'package:dartdoc/src/model/model.dart';
5554
import 'package:dartdoc/src/mustachio/annotations.dart';
@@ -73,7 +72,6 @@ const _visibleTypes = {
7372
Extension,
7473
ExtensionType,
7574
ExternalItem,
76-
FeatureSet,
7775
FunctionTypeElementType,
7876
InheritingContainer,
7977
LanguageFeature,

lib/src/generator/templates.runtime_renderers.dart

Lines changed: 27 additions & 154 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import 'package:dartdoc/src/generator/template_data.dart';
1313
import 'package:dartdoc/src/model/annotation.dart';
1414
import 'package:dartdoc/src/model/attribute.dart';
1515
import 'package:dartdoc/src/model/comment_referable.dart';
16-
import 'package:dartdoc/src/model/feature_set.dart';
1716
import 'package:dartdoc/src/model/language_feature.dart';
1817
import 'package:dartdoc/src/model/model.dart';
1918
import 'package:dartdoc/src/mustachio/parser.dart';
@@ -2362,7 +2361,7 @@ class _Renderer_Category extends RendererBase<Category> {
23622361
}
23632362
}
23642363

2365-
String renderCategory(CategoryTemplateData context, Template template) {
2364+
String renderCategoryRedirect(CategoryTemplateData context, Template template) {
23662365
var buffer = StringBuffer();
23672366
_render_CategoryTemplateData(context, template.ast, template, buffer);
23682367
return buffer.toString();
@@ -2612,7 +2611,7 @@ class _Renderer_CategoryTemplateData
26122611
}
26132612
}
26142613

2615-
String renderCategoryRedirect(CategoryTemplateData context, Template template) {
2614+
String renderCategory(CategoryTemplateData context, Template template) {
26162615
var buffer = StringBuffer();
26172616
_render_CategoryTemplateData(context, template.ast, template, buffer);
26182617
return buffer.toString();
@@ -9122,133 +9121,6 @@ class _Renderer_ExternalItem extends RendererBase<ExternalItem> {
91229121
}
91239122
}
91249123

9125-
class _Renderer_FeatureSet extends RendererBase<FeatureSet> {
9126-
static final Map<Type, Object> _propertyMapCache = {};
9127-
static Map<String, Property<CT_>> propertyMap<CT_ extends FeatureSet>() =>
9128-
_propertyMapCache.putIfAbsent(
9129-
CT_,
9130-
() => {
9131-
'displayedLanguageFeatures': Property(
9132-
getValue: (CT_ c) => c.displayedLanguageFeatures,
9133-
renderVariable:
9134-
(CT_ c, Property<CT_> self, List<String> remainingNames) =>
9135-
self.renderSimpleVariable(
9136-
c,
9137-
remainingNames,
9138-
'Iterable<LanguageFeature>',
9139-
),
9140-
9141-
renderIterable:
9142-
(
9143-
CT_ c,
9144-
RendererBase<CT_> r,
9145-
List<MustachioNode> ast,
9146-
StringSink sink,
9147-
) {
9148-
return c.displayedLanguageFeatures.map(
9149-
(e) => _render_LanguageFeature(
9150-
e,
9151-
ast,
9152-
r.template,
9153-
sink,
9154-
parent: r,
9155-
),
9156-
);
9157-
},
9158-
),
9159-
'hasFeatureSet': Property(
9160-
getValue: (CT_ c) => c.hasFeatureSet,
9161-
renderVariable:
9162-
(CT_ c, Property<CT_> self, List<String> remainingNames) =>
9163-
self.renderSimpleVariable(c, remainingNames, 'bool'),
9164-
9165-
getBool: (CT_ c) => c.hasFeatureSet,
9166-
),
9167-
'library': Property(
9168-
getValue: (CT_ c) => c.library,
9169-
renderVariable:
9170-
(CT_ c, Property<CT_> self, List<String> remainingNames) {
9171-
if (remainingNames.isEmpty) {
9172-
return self.getValue(c).toString();
9173-
}
9174-
var name = remainingNames.first;
9175-
var nextProperty = _Renderer_Library.propertyMap()
9176-
.getValue(name);
9177-
return nextProperty.renderVariable(
9178-
self.getValue(c) as Library,
9179-
nextProperty,
9180-
[...remainingNames.skip(1)],
9181-
);
9182-
},
9183-
9184-
isNullValue: (CT_ c) => false,
9185-
9186-
renderValue:
9187-
(
9188-
CT_ c,
9189-
RendererBase<CT_> r,
9190-
List<MustachioNode> ast,
9191-
StringSink sink,
9192-
) {
9193-
_render_Library(
9194-
c.library,
9195-
ast,
9196-
r.template,
9197-
sink,
9198-
parent: r,
9199-
);
9200-
},
9201-
),
9202-
'packageGraph': Property(
9203-
getValue: (CT_ c) => c.packageGraph,
9204-
renderVariable:
9205-
(CT_ c, Property<CT_> self, List<String> remainingNames) =>
9206-
self.renderSimpleVariable(
9207-
c,
9208-
remainingNames,
9209-
'PackageGraph',
9210-
),
9211-
9212-
isNullValue: (CT_ c) => false,
9213-
9214-
renderValue:
9215-
(
9216-
CT_ c,
9217-
RendererBase<CT_> r,
9218-
List<MustachioNode> ast,
9219-
StringSink sink,
9220-
) {
9221-
renderSimple(
9222-
c.packageGraph,
9223-
ast,
9224-
r.template,
9225-
sink,
9226-
parent: r,
9227-
getters: _invisibleGetters['PackageGraph']!,
9228-
);
9229-
},
9230-
),
9231-
},
9232-
)
9233-
as Map<String, Property<CT_>>;
9234-
9235-
_Renderer_FeatureSet(
9236-
FeatureSet context,
9237-
RendererBase<Object>? parent,
9238-
Template template,
9239-
StringSink sink,
9240-
) : super(context, parent, template, sink);
9241-
9242-
@override
9243-
Property<FeatureSet>? getProperty(String key) {
9244-
if (propertyMap<FeatureSet>().containsKey(key)) {
9245-
return propertyMap<FeatureSet>()[key];
9246-
} else {
9247-
return null;
9248-
}
9249-
}
9250-
}
9251-
92529124
void _render_Field(
92539125
Field context,
92549126
List<MustachioNode> ast,
@@ -11631,8 +11503,8 @@ class _Renderer_InheritingContainer extends RendererBase<InheritingContainer> {
1163111503
);
1163211504
},
1163311505
),
11634-
'displayedLanguageFeatures': Property(
11635-
getValue: (CT_ c) => c.displayedLanguageFeatures,
11506+
'displayedClassModifiers': Property(
11507+
getValue: (CT_ c) => c.displayedClassModifiers,
1163611508
renderVariable:
1163711509
(CT_ c, Property<CT_> self, List<String> remainingNames) =>
1163811510
self.renderSimpleVariable(
@@ -11648,7 +11520,7 @@ class _Renderer_InheritingContainer extends RendererBase<InheritingContainer> {
1164811520
List<MustachioNode> ast,
1164911521
StringSink sink,
1165011522
) {
11651-
return c.displayedLanguageFeatures.map(
11523+
return c.displayedClassModifiers.map(
1165211524
(e) => _render_LanguageFeature(
1165311525
e,
1165411526
ast,
@@ -11758,6 +11630,14 @@ class _Renderer_InheritingContainer extends RendererBase<InheritingContainer> {
1175811630
);
1175911631
},
1176011632
),
11633+
'hasDisplayedClassModifiers': Property(
11634+
getValue: (CT_ c) => c.hasDisplayedClassModifiers,
11635+
renderVariable:
11636+
(CT_ c, Property<CT_> self, List<String> remainingNames) =>
11637+
self.renderSimpleVariable(c, remainingNames, 'bool'),
11638+
11639+
getBool: (CT_ c) => c.hasDisplayedClassModifiers,
11640+
),
1176111641
'hasModifiers': Property(
1176211642
getValue: (CT_ c) => c.hasModifiers,
1176311643
renderVariable:
@@ -12594,8 +12474,8 @@ class _Renderer_LanguageFeature extends RendererBase<LanguageFeature> {
1259412474
CT_,
1259512475
() => {
1259612476
..._Renderer_Object.propertyMap<CT_>(),
12597-
'featureDescription': Property(
12598-
getValue: (CT_ c) => c.featureDescription,
12477+
'description': Property(
12478+
getValue: (CT_ c) => c.description,
1259912479
renderVariable:
1260012480
(CT_ c, Property<CT_> self, List<String> remainingNames) {
1260112481
if (remainingNames.isEmpty) {
@@ -12611,7 +12491,7 @@ class _Renderer_LanguageFeature extends RendererBase<LanguageFeature> {
1261112491
);
1261212492
},
1261312493

12614-
isNullValue: (CT_ c) => c.featureDescription == null,
12494+
isNullValue: (CT_ c) => c.description == null,
1261512495

1261612496
renderValue:
1261712497
(
@@ -12621,7 +12501,7 @@ class _Renderer_LanguageFeature extends RendererBase<LanguageFeature> {
1262112501
StringSink sink,
1262212502
) {
1262312503
_render_String(
12624-
c.featureDescription!,
12504+
c.description!,
1262512505
ast,
1262612506
r.template,
1262712507
sink,
@@ -12664,8 +12544,8 @@ class _Renderer_LanguageFeature extends RendererBase<LanguageFeature> {
1266412544
);
1266512545
},
1266612546
),
12667-
'featureUrl': Property(
12668-
getValue: (CT_ c) => c.featureUrl,
12547+
'name': Property(
12548+
getValue: (CT_ c) => c.name,
1266912549
renderVariable:
1267012550
(CT_ c, Property<CT_> self, List<String> remainingNames) {
1267112551
if (remainingNames.isEmpty) {
@@ -12681,7 +12561,7 @@ class _Renderer_LanguageFeature extends RendererBase<LanguageFeature> {
1268112561
);
1268212562
},
1268312563

12684-
isNullValue: (CT_ c) => c.featureUrl == null,
12564+
isNullValue: (CT_ c) => false,
1268512565

1268612566
renderValue:
1268712567
(
@@ -12690,17 +12570,11 @@ class _Renderer_LanguageFeature extends RendererBase<LanguageFeature> {
1269012570
List<MustachioNode> ast,
1269112571
StringSink sink,
1269212572
) {
12693-
_render_String(
12694-
c.featureUrl!,
12695-
ast,
12696-
r.template,
12697-
sink,
12698-
parent: r,
12699-
);
12573+
_render_String(c.name, ast, r.template, sink, parent: r);
1270012574
},
1270112575
),
12702-
'name': Property(
12703-
getValue: (CT_ c) => c.name,
12576+
'url': Property(
12577+
getValue: (CT_ c) => c.url,
1270412578
renderVariable:
1270512579
(CT_ c, Property<CT_> self, List<String> remainingNames) {
1270612580
if (remainingNames.isEmpty) {
@@ -12716,7 +12590,7 @@ class _Renderer_LanguageFeature extends RendererBase<LanguageFeature> {
1271612590
);
1271712591
},
1271812592

12719-
isNullValue: (CT_ c) => false,
12593+
isNullValue: (CT_ c) => c.url == null,
1272012594

1272112595
renderValue:
1272212596
(
@@ -12725,7 +12599,7 @@ class _Renderer_LanguageFeature extends RendererBase<LanguageFeature> {
1272512599
List<MustachioNode> ast,
1272612600
StringSink sink,
1272712601
) {
12728-
_render_String(c.name, ast, r.template, sink, parent: r);
12602+
_render_String(c.url!, ast, r.template, sink, parent: r);
1272912603
},
1273012604
),
1273112605
},
@@ -16150,7 +16024,6 @@ class _Renderer_ModelElement extends RendererBase<ModelElement> {
1615016024
..._Renderer_Locatable.propertyMap<CT_>(),
1615116025
..._Renderer_Nameable.propertyMap<CT_>(),
1615216026
..._Renderer_SourceCode.propertyMap<CT_>(),
16153-
..._Renderer_FeatureSet.propertyMap<CT_>(),
1615416027
..._Renderer_DocumentationComment.propertyMap<CT_>(),
1615516028
'annotations': Property(
1615616029
getValue: (CT_ c) => c.annotations,
@@ -19779,7 +19652,7 @@ class _Renderer_Package extends RendererBase<Package> {
1977919652
}
1978019653
}
1978119654

19782-
String renderIndex(PackageTemplateData context, Template template) {
19655+
String renderError(PackageTemplateData context, Template template) {
1978319656
var buffer = StringBuffer();
1978419657
_render_PackageTemplateData(context, template.ast, template, buffer);
1978519658
return buffer.toString();
@@ -20137,7 +20010,7 @@ class _Renderer_PackageTemplateData extends RendererBase<PackageTemplateData> {
2013720010
}
2013820011
}
2013920012

20140-
String renderError(PackageTemplateData context, Template template) {
20013+
String renderIndex(PackageTemplateData context, Template template) {
2014120014
var buffer = StringBuffer();
2014220015
_render_PackageTemplateData(context, template.ast, template, buffer);
2014320016
return buffer.toString();

lib/src/model/container_modifiers.dart

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
import 'package:dartdoc/src/model/language_feature.dart';
6-
75
/// Represents a single modifier applicable to containers.
86
class ContainerModifier implements Comparable<ContainerModifier> {
97
final String name;
@@ -42,10 +40,22 @@ class ContainerModifier implements Comparable<ContainerModifier> {
4240
static const ContainerModifier mixin = ContainerModifier._('mixin', order: 4);
4341
}
4442

45-
extension BuildLanguageFeatureSet on Iterable<ContainerModifier> {
46-
/// Transforms [ContainerModifier]s into a series of [LanguageFeature] objects
47-
/// suitable for rendering as chips. Assumes iterable is sorted.
48-
Iterable<LanguageFeature> get asLanguageFeatureSet =>
49-
where((m) => !m.hideIfPresent.any(contains))
50-
.map((m) => LanguageFeature(m.name));
51-
}
43+
const Map<String, String> classModifierDescriptions = {
44+
'sealed':
45+
'The direct subtypes of this class will be checked for exhaustiveness in switches.',
46+
'abstract': 'This type can not be directly constructed.',
47+
'base':
48+
'This class or mixin can only be extended (not implemented or mixed in).',
49+
'interface': 'This class can only be implemented (not extended or mixed in).',
50+
'final': 'This class can neither be extended, implemented, nor mixed in.',
51+
'mixin': 'This class can be used as a class and a mixin.',
52+
};
53+
54+
const Map<String, String> classModifierUrls = {
55+
'sealed': 'https://dart.dev/language/class-modifiers#sealed',
56+
'abstract': 'https://dart.dev/language/class-modifiers#abstract',
57+
'base': 'https://dart.dev/language/class-modifiers#base',
58+
'interface': 'https://dart.dev/language/class-modifiers#interface',
59+
'final': 'https://dart.dev/language/class-modifiers#final',
60+
'mixin': 'https://dart.dev/language/mixins#class-mixin-or-mixin-class',
61+
};

lib/src/model/feature_set.dart

Lines changed: 0 additions & 19 deletions
This file was deleted.

0 commit comments

Comments
 (0)