diff --git a/lib/src/io_utils.dart b/lib/src/io_utils.dart index 7709a3641a..33a8c6117e 100644 --- a/lib/src/io_utils.dart +++ b/lib/src/io_utils.dart @@ -77,11 +77,20 @@ Iterable<String> _doList( /// * dart.dartdoc => dart_dartdoc.html /// * dart:core => dart_core.html String getFileNameFor(String name) => - '${name.replaceAll(libraryNameRegexp, '-')}.html'; + '${name.replaceAll(_libraryNameRegExp, '-')}.html'; -final libraryNameRegexp = RegExp('[.:]'); -final partOfRegexp = RegExp('part of '); -final newLinePartOfRegexp = RegExp('\npart of '); +final _libraryNameRegExp = RegExp('[.:]'); +@Deprecated('Public variable intended to be private; will be removed as early ' + 'as Dartdoc 1.0.0') +RegExp get libraryNameRegexp => _libraryNameRegExp; + +@Deprecated('Public variable intended to be private; will be removed as early ' + 'as Dartdoc 1.0.0') +final RegExp partOfRegexp = RegExp('part of '); + +@Deprecated('Public variable intended to be private; will be removed as early ' + 'as Dartdoc 1.0.0') +final RegExp newLinePartOfRegexp = RegExp('\npart of '); /// Best used with Future<void>. class MultiFutureTracker<T> { diff --git a/lib/src/model/categorization.dart b/lib/src/model/categorization.dart index 5202a03e30..afed68b8ce 100644 --- a/lib/src/model/categorization.dart +++ b/lib/src/model/categorization.dart @@ -4,10 +4,14 @@ import 'package:dartdoc/src/model/model.dart'; -final categoryRegexp = RegExp( +final RegExp _categoryRegExp = RegExp( r'[ ]*{@(api|category|subCategory|image|samples) (.+?)}[ ]*\n?', multiLine: true); +@Deprecated('Public variable intended to be private; will be removed as early ' + 'as Dartdoc 1.0.0') +RegExp get categoryRegexp => _categoryRegExp; + /// Mixin implementing dartdoc categorization for ModelElements. abstract class Categorization implements ModelElement { @override @@ -22,7 +26,7 @@ abstract class Categorization implements ModelElement { var _subCategorySet = <String>{}; _hasCategorization = false; - rawDocs = rawDocs.replaceAllMapped(categoryRegexp, (match) { + rawDocs = rawDocs.replaceAllMapped(_categoryRegExp, (match) { _hasCategorization = true; switch (match[1]) { case 'category': diff --git a/lib/src/model/model_element.dart b/lib/src/model/model_element.dart index 87f4f29687..0fc0edcfc9 100644 --- a/lib/src/model/model_element.dart +++ b/lib/src/model/model_element.dart @@ -65,11 +65,17 @@ int byFeatureOrdering(String a, String b) { /// This doc may need to be processed in case it has a template or html /// fragment. -final needsPrecacheRegExp = RegExp(r'{@(template|tool|inject-html)'); +final RegExp needsPrecacheRegExp = RegExp(r'{@(template|tool|inject-html)'); -final htmlInjectRegExp = RegExp(r'<dartdoc-html>([a-f0-9]+)</dartdoc-html>'); +final _htmlInjectRegExp = RegExp(r'<dartdoc-html>([a-f0-9]+)</dartdoc-html>'); +@Deprecated('Public variable intended to be private; will be removed as early ' + 'as Dartdoc 1.0.0') +RegExp get htmlInjectRegExp => _htmlInjectRegExp; -final macroRegExp = RegExp(r'{@macro\s+([^}]+)}'); +final _macroRegExp = RegExp(r'{@macro\s+([^}]+)}'); +@Deprecated('Public variable intended to be private; will be removed as early ' + 'as Dartdoc 1.0.0') +RegExp get macroRegExp => _macroRegExp; // TODO(jcollins-g): Implement resolution per ECMA-408 4th edition, page 39 #22. /// Resolves this very rare case incorrectly by picking the closest element in @@ -1198,7 +1204,7 @@ abstract class ModelElement extends Canonicalization String _injectHtmlFragments(String rawDocs) { if (!config.injectHtml) return rawDocs; - return rawDocs.replaceAllMapped(htmlInjectRegExp, (match) { + return rawDocs.replaceAllMapped(_htmlInjectRegExp, (match) { var fragment = packageGraph.getHtmlFragment(match[1]); if (fragment == null) { warn(PackageWarning.unknownHtmlFragment, message: match[1]); @@ -1234,7 +1240,7 @@ abstract class ModelElement extends Canonicalization /// More comments /// String _injectMacros(String rawDocs) { - return rawDocs.replaceAllMapped(macroRegExp, (match) { + return rawDocs.replaceAllMapped(_macroRegExp, (match) { var macro = packageGraph.getMacro(match[1]); if (macro == null) { warn(PackageWarning.unknownMacro, message: match[1]); diff --git a/lib/src/model/package_builder.dart b/lib/src/model/package_builder.dart index 44ecb5919c..8d90216a79 100644 --- a/lib/src/model/package_builder.dart +++ b/lib/src/model/package_builder.dart @@ -338,8 +338,8 @@ class PubPackageBuilder implements PackageBuilder { // Only add the file if it does not contain 'part of' var contents = File(lib).readAsStringSync(); - if (contents.contains(newLinePartOfRegexp) || - contents.startsWith(partOfRegexp)) { + if (contents.startsWith('part of ') || + contents.contains('\npart of ')) { // NOOP: it's a part file } else { yield lib; diff --git a/lib/src/source_linker.dart b/lib/src/source_linker.dart index 10cd0bfce4..f4dafdbf9a 100644 --- a/lib/src/source_linker.dart +++ b/lib/src/source_linker.dart @@ -10,7 +10,10 @@ import 'package:dartdoc/src/model/model.dart'; import 'package:meta/meta.dart'; import 'package:path/path.dart' as path; -final uriTemplateRegexp = RegExp(r'(%[frl]%)'); +final _uriTemplateRegExp = RegExp(r'(%[frl]%)'); +@Deprecated('Public variable intended to be private; will be removed as early ' + 'as Dartdoc 1.0.0') +RegExp get uriTemplateRegexp => _uriTemplateRegExp; abstract class SourceLinkerOptionContext implements DartdocOptionContextBase { List<String> get linkToSourceExcludes => @@ -105,7 +108,7 @@ class SourceLinker { .any((String exclude) => path.isWithin(exclude, sourceFileName))) { return ''; } - return uriTemplate.replaceAllMapped(uriTemplateRegexp, (match) { + return uriTemplate.replaceAllMapped(_uriTemplateRegExp, (match) { switch (match[1]) { case '%f%': var urlContext = path.Context(style: path.Style.url); diff --git a/lib/src/tool_runner.dart b/lib/src/tool_runner.dart index 7071a8e56e..b8f7d5374f 100644 --- a/lib/src/tool_runner.dart +++ b/lib/src/tool_runner.dart @@ -163,8 +163,9 @@ class ToolRunner { // or $VAR form. var envWithInput = { 'INPUT': tmpFile.absolute.path, - 'TOOL_COMMAND': toolDefinition.command[0] - }..addAll(environment); + 'TOOL_COMMAND': toolDefinition.command[0], + ...environment, + }; if (toolDefinition is DartToolDefinition) { // Put the original command path into the environment, because when it // runs as a snapshot, Platform.script (inside the tool script) refers to diff --git a/lib/src/warnings.dart b/lib/src/warnings.dart index c56afef3b5..6f60b5677f 100644 --- a/lib/src/warnings.dart +++ b/lib/src/warnings.dart @@ -380,7 +380,7 @@ class PackageWarningOptions { } class PackageWarningCounter { - final countedWarnings = <Element, Set<Tuple2<PackageWarning, String>>>{}; + final Map<Element, Set<Tuple2<PackageWarning, String>>> countedWarnings = {}; final _items = <Jsonable>[]; final _displayedWarningCounts = <PackageWarning, int>{}; final PackageGraph packageGraph;