Skip to content

Commit 380bbe8

Browse files
authored
Deprecate some _public_ top-level variables. (#2307)
Deprecate some _public_ top-level variables. * io_utils.dart: `libraryNameRegexp`, `partOfRegexp`, `newLinePartOfRegexp` * categorization.dart: `categoryRegexp` * model_element.dart: `needsPrecacheRegExp`, `htmlInjectRegExp`, `macroRegExp` * source_linker.dart: `uriTemplateRegexp` Also, simplify use of RegExp in package_builder.dart. Also, use spread in tool_runner.dart Also document public APIs.
1 parent dfe219c commit 380bbe8

File tree

7 files changed

+41
-18
lines changed

7 files changed

+41
-18
lines changed

lib/src/io_utils.dart

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,20 @@ Iterable<String> _doList(
7777
/// * dart.dartdoc => dart_dartdoc.html
7878
/// * dart:core => dart_core.html
7979
String getFileNameFor(String name) =>
80-
'${name.replaceAll(libraryNameRegexp, '-')}.html';
80+
'${name.replaceAll(_libraryNameRegExp, '-')}.html';
8181

82-
final libraryNameRegexp = RegExp('[.:]');
83-
final partOfRegexp = RegExp('part of ');
84-
final newLinePartOfRegexp = RegExp('\npart of ');
82+
final _libraryNameRegExp = RegExp('[.:]');
83+
@Deprecated('Public variable intended to be private; will be removed as early '
84+
'as Dartdoc 1.0.0')
85+
RegExp get libraryNameRegexp => _libraryNameRegExp;
86+
87+
@Deprecated('Public variable intended to be private; will be removed as early '
88+
'as Dartdoc 1.0.0')
89+
final RegExp partOfRegexp = RegExp('part of ');
90+
91+
@Deprecated('Public variable intended to be private; will be removed as early '
92+
'as Dartdoc 1.0.0')
93+
final RegExp newLinePartOfRegexp = RegExp('\npart of ');
8594

8695
/// Best used with Future<void>.
8796
class MultiFutureTracker<T> {

lib/src/model/categorization.dart

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,14 @@
44

55
import 'package:dartdoc/src/model/model.dart';
66

7-
final categoryRegexp = RegExp(
7+
final RegExp _categoryRegExp = RegExp(
88
r'[ ]*{@(api|category|subCategory|image|samples) (.+?)}[ ]*\n?',
99
multiLine: true);
1010

11+
@Deprecated('Public variable intended to be private; will be removed as early '
12+
'as Dartdoc 1.0.0')
13+
RegExp get categoryRegexp => _categoryRegExp;
14+
1115
/// Mixin implementing dartdoc categorization for ModelElements.
1216
abstract class Categorization implements ModelElement {
1317
@override
@@ -22,7 +26,7 @@ abstract class Categorization implements ModelElement {
2226
var _subCategorySet = <String>{};
2327
_hasCategorization = false;
2428

25-
rawDocs = rawDocs.replaceAllMapped(categoryRegexp, (match) {
29+
rawDocs = rawDocs.replaceAllMapped(_categoryRegExp, (match) {
2630
_hasCategorization = true;
2731
switch (match[1]) {
2832
case 'category':

lib/src/model/model_element.dart

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,17 @@ int byFeatureOrdering(String a, String b) {
6565

6666
/// This doc may need to be processed in case it has a template or html
6767
/// fragment.
68-
final needsPrecacheRegExp = RegExp(r'{@(template|tool|inject-html)');
68+
final RegExp needsPrecacheRegExp = RegExp(r'{@(template|tool|inject-html)');
6969

70-
final htmlInjectRegExp = RegExp(r'<dartdoc-html>([a-f0-9]+)</dartdoc-html>');
70+
final _htmlInjectRegExp = RegExp(r'<dartdoc-html>([a-f0-9]+)</dartdoc-html>');
71+
@Deprecated('Public variable intended to be private; will be removed as early '
72+
'as Dartdoc 1.0.0')
73+
RegExp get htmlInjectRegExp => _htmlInjectRegExp;
7174

72-
final macroRegExp = RegExp(r'{@macro\s+([^}]+)}');
75+
final _macroRegExp = RegExp(r'{@macro\s+([^}]+)}');
76+
@Deprecated('Public variable intended to be private; will be removed as early '
77+
'as Dartdoc 1.0.0')
78+
RegExp get macroRegExp => _macroRegExp;
7379

7480
// TODO(jcollins-g): Implement resolution per ECMA-408 4th edition, page 39 #22.
7581
/// Resolves this very rare case incorrectly by picking the closest element in
@@ -1198,7 +1204,7 @@ abstract class ModelElement extends Canonicalization
11981204
String _injectHtmlFragments(String rawDocs) {
11991205
if (!config.injectHtml) return rawDocs;
12001206

1201-
return rawDocs.replaceAllMapped(htmlInjectRegExp, (match) {
1207+
return rawDocs.replaceAllMapped(_htmlInjectRegExp, (match) {
12021208
var fragment = packageGraph.getHtmlFragment(match[1]);
12031209
if (fragment == null) {
12041210
warn(PackageWarning.unknownHtmlFragment, message: match[1]);
@@ -1234,7 +1240,7 @@ abstract class ModelElement extends Canonicalization
12341240
/// More comments
12351241
///
12361242
String _injectMacros(String rawDocs) {
1237-
return rawDocs.replaceAllMapped(macroRegExp, (match) {
1243+
return rawDocs.replaceAllMapped(_macroRegExp, (match) {
12381244
var macro = packageGraph.getMacro(match[1]);
12391245
if (macro == null) {
12401246
warn(PackageWarning.unknownMacro, message: match[1]);

lib/src/model/package_builder.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -338,8 +338,8 @@ class PubPackageBuilder implements PackageBuilder {
338338
// Only add the file if it does not contain 'part of'
339339
var contents = File(lib).readAsStringSync();
340340

341-
if (contents.contains(newLinePartOfRegexp) ||
342-
contents.startsWith(partOfRegexp)) {
341+
if (contents.startsWith('part of ') ||
342+
contents.contains('\npart of ')) {
343343
// NOOP: it's a part file
344344
} else {
345345
yield lib;

lib/src/source_linker.dart

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,10 @@ import 'package:dartdoc/src/model/model.dart';
1010
import 'package:meta/meta.dart';
1111
import 'package:path/path.dart' as path;
1212

13-
final uriTemplateRegexp = RegExp(r'(%[frl]%)');
13+
final _uriTemplateRegExp = RegExp(r'(%[frl]%)');
14+
@Deprecated('Public variable intended to be private; will be removed as early '
15+
'as Dartdoc 1.0.0')
16+
RegExp get uriTemplateRegexp => _uriTemplateRegExp;
1417

1518
abstract class SourceLinkerOptionContext implements DartdocOptionContextBase {
1619
List<String> get linkToSourceExcludes =>
@@ -105,7 +108,7 @@ class SourceLinker {
105108
.any((String exclude) => path.isWithin(exclude, sourceFileName))) {
106109
return '';
107110
}
108-
return uriTemplate.replaceAllMapped(uriTemplateRegexp, (match) {
111+
return uriTemplate.replaceAllMapped(_uriTemplateRegExp, (match) {
109112
switch (match[1]) {
110113
case '%f%':
111114
var urlContext = path.Context(style: path.Style.url);

lib/src/tool_runner.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,8 +163,9 @@ class ToolRunner {
163163
// or $VAR form.
164164
var envWithInput = {
165165
'INPUT': tmpFile.absolute.path,
166-
'TOOL_COMMAND': toolDefinition.command[0]
167-
}..addAll(environment);
166+
'TOOL_COMMAND': toolDefinition.command[0],
167+
...environment,
168+
};
168169
if (toolDefinition is DartToolDefinition) {
169170
// Put the original command path into the environment, because when it
170171
// runs as a snapshot, Platform.script (inside the tool script) refers to

lib/src/warnings.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,7 @@ class PackageWarningOptions {
380380
}
381381

382382
class PackageWarningCounter {
383-
final countedWarnings = <Element, Set<Tuple2<PackageWarning, String>>>{};
383+
final Map<Element, Set<Tuple2<PackageWarning, String>>> countedWarnings = {};
384384
final _items = <Jsonable>[];
385385
final _displayedWarningCounts = <PackageWarning, int>{};
386386
final PackageGraph packageGraph;

0 commit comments

Comments
 (0)