From 2aa103acb369429264c5f7c557e5e72cd1317b56 Mon Sep 17 00:00:00 2001 From: Kallen Tu Date: Fri, 23 Feb 2024 19:01:39 +0000 Subject: [PATCH] Remove SourceCodeRenderer and TypeParametersRenderer. --- lib/src/model/accessor.dart | 7 ++- lib/src/model/field.dart | 7 ++- lib/src/model/model_element.dart | 6 +-- lib/src/model/type_parameter.dart | 27 +++++++++--- lib/src/render/source_code_renderer.dart | 27 ------------ lib/src/render/type_parameters_renderer.dart | 45 -------------------- 6 files changed, 27 insertions(+), 92 deletions(-) delete mode 100644 lib/src/render/source_code_renderer.dart delete mode 100644 lib/src/render/type_parameters_renderer.dart diff --git a/lib/src/model/accessor.dart b/lib/src/model/accessor.dart index eeae79a2d6..b9b8fa2780 100644 --- a/lib/src/model/accessor.dart +++ b/lib/src/model/accessor.dart @@ -2,6 +2,8 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. +import 'dart:convert'; + import 'package:analyzer/dart/element/element.dart'; import 'package:analyzer/source/line_info.dart'; // ignore: implementation_imports @@ -10,7 +12,6 @@ import 'package:collection/collection.dart' show IterableExtension; import 'package:dartdoc/src/element_type.dart'; import 'package:dartdoc/src/model/comment_referable.dart'; import 'package:dartdoc/src/model/model.dart'; -import 'package:dartdoc/src/render/source_code_renderer.dart'; import 'package:dartdoc/src/utils.dart'; import 'package:dartdoc/src/warnings.dart'; @@ -49,8 +50,6 @@ class Accessor extends ModelElement implements EnclosedElement { bool get isSynthetic => element.isSynthetic; - SourceCodeRenderer get _sourceCodeRenderer => const SourceCodeRendererHtml(); - // The [enclosingCombo] where this element was defined. late final GetterSetterCombo definingCombo = getModelForElement(element.variable) as GetterSetterCombo; @@ -62,7 +61,7 @@ class Accessor extends ModelElement implements EnclosedElement { var modelNode = packageGraph.getModelNodeFor(definingCombo.element); return modelNode == null ? '' - : _sourceCodeRenderer.renderSourceCode(modelNode.sourceCode); + : const HtmlEscape().convert(modelNode.sourceCode); } @override diff --git a/lib/src/model/field.dart b/lib/src/model/field.dart index 22162872c7..cc5cfaa710 100644 --- a/lib/src/model/field.dart +++ b/lib/src/model/field.dart @@ -2,10 +2,11 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. +import 'dart:convert'; + import 'package:analyzer/dart/element/element.dart'; import 'package:dartdoc/src/model/attribute.dart'; import 'package:dartdoc/src/model/model.dart'; -import 'package:dartdoc/src/render/source_code_renderer.dart'; class Field extends ModelElement with GetterSetterCombo, ContainerMember, Inheritable @@ -149,8 +150,6 @@ class Field extends ModelElement @override String? get belowSidebarPath => null; - SourceCodeRenderer get _sourceCodeRenderer => const SourceCodeRendererHtml(); - late final String _sourceCode = () { // We could use a set to figure the dupes out, but that would lose ordering. var fieldSourceCode = modelNode?.sourceCode ?? ''; @@ -158,7 +157,7 @@ class Field extends ModelElement var setterSourceCode = setter?.sourceCode ?? ''; var buffer = StringBuffer(); if (fieldSourceCode.isNotEmpty) { - fieldSourceCode = _sourceCodeRenderer.renderSourceCode(fieldSourceCode); + fieldSourceCode = const HtmlEscape().convert(fieldSourceCode); buffer.write(fieldSourceCode); } if (buffer.isNotEmpty) buffer.write('\n\n'); diff --git a/lib/src/model/model_element.dart b/lib/src/model/model_element.dart index 77f27c1002..231f4a7b69 100644 --- a/lib/src/model/model_element.dart +++ b/lib/src/model/model_element.dart @@ -25,7 +25,6 @@ import 'package:dartdoc/src/model/prefix.dart'; import 'package:dartdoc/src/model_utils.dart' as utils; import 'package:dartdoc/src/render/model_element_renderer.dart'; import 'package:dartdoc/src/render/parameter_renderer.dart'; -import 'package:dartdoc/src/render/source_code_renderer.dart'; import 'package:dartdoc/src/runtime_stats.dart'; import 'package:dartdoc/src/source_linker.dart'; import 'package:dartdoc/src/special_elements.dart'; @@ -686,8 +685,6 @@ abstract class ModelElement extends Canonicalization ParameterRenderer get _parameterRendererDetailed => const ParameterRendererHtmlList(); - SourceCodeRenderer get _sourceCodeRenderer => const SourceCodeRendererHtml(); - String get linkedParams => _parameterRenderer.renderLinkedParams(parameters); String get linkedParamsLines => @@ -757,8 +754,7 @@ abstract class ModelElement extends Canonicalization }(); @override - late final String sourceCode = - _sourceCodeRenderer.renderSourceCode(super.sourceCode); + late final String sourceCode = const HtmlEscape().convert(super.sourceCode); @override int compareTo(Object other) { diff --git a/lib/src/model/type_parameter.dart b/lib/src/model/type_parameter.dart index 1b2dbcdeff..b948703479 100644 --- a/lib/src/model/type_parameter.dart +++ b/lib/src/model/type_parameter.dart @@ -6,7 +6,6 @@ import 'package:analyzer/dart/element/element.dart'; import 'package:dartdoc/src/element_type.dart'; import 'package:dartdoc/src/model/comment_referable.dart'; import 'package:dartdoc/src/model/model.dart'; -import 'package:dartdoc/src/render/type_parameters_renderer.dart'; class TypeParameter extends ModelElement with HasNoPage { @override @@ -73,14 +72,28 @@ mixin TypeParameters implements ModelElement { bool get hasGenericParameters => typeParameters.isNotEmpty; - String get genericParameters => - _typeParametersRenderer.renderGenericParameters(this); + String get genericParameters => _renderTypeParameters(); - String get linkedGenericParameters => - _typeParametersRenderer.renderLinkedGenericParameters(this); + String get linkedGenericParameters => _renderTypeParameters(isLinked: true); List get typeParameters; - TypeParametersRenderer get _typeParametersRenderer => - const TypeParametersRendererHtml(); + String _renderTypeParameters({bool isLinked = false}) { + if (typeParameters.isEmpty) { + return ''; + } + var joined = typeParameters + .map((t) => [ + ...t.annotations.map((a) => a.linkedNameWithParameters), + isLinked ? t.linkedName : t.name + ].join(' ')) + .join(', '); + var typeParametersString = + '<$joined>'; + if (isLinked) { + typeParametersString = + '$typeParametersString'; + } + return typeParametersString; + } } diff --git a/lib/src/render/source_code_renderer.dart b/lib/src/render/source_code_renderer.dart deleted file mode 100644 index 7f81cb8e76..0000000000 --- a/lib/src/render/source_code_renderer.dart +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file -// for details. All rights reserved. Use of this source code is governed by a -// BSD-style license that can be found in the LICENSE file. - -import 'dart:convert'; - -/// Renderer for source code snippets extracted from source files. -abstract class SourceCodeRenderer { - String renderSourceCode(String source); -} - -class SourceCodeRendererNoop implements SourceCodeRenderer { - const SourceCodeRendererNoop(); - - @override - String renderSourceCode(String source) => source; -} - -/// [SourceCodeRenderer] that escapes characters for HTML. -class SourceCodeRendererHtml implements SourceCodeRenderer { - const SourceCodeRendererHtml(); - - @override - String renderSourceCode(String source) { - return const HtmlEscape().convert(source); - } -} diff --git a/lib/src/render/type_parameters_renderer.dart b/lib/src/render/type_parameters_renderer.dart deleted file mode 100644 index ac97a0bf47..0000000000 --- a/lib/src/render/type_parameters_renderer.dart +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file -// for details. All rights reserved. Use of this source code is governed by a -// BSD-style license that can be found in the LICENSE file. - -import 'package:dartdoc/src/model/type_parameter.dart'; - -abstract class TypeParametersRenderer { - const TypeParametersRenderer(); - - String renderGenericParameters(TypeParameters typeParameters); - - String renderLinkedGenericParameters(TypeParameters typeParameters); -} - -class TypeParametersRendererHtml implements TypeParametersRenderer { - const TypeParametersRendererHtml(); - - @override - String renderGenericParameters(TypeParameters typeParameters) { - if (typeParameters.typeParameters.isEmpty) { - return ''; - } - var joined = typeParameters.typeParameters - .map((t) => [ - ...t.annotations.map((a) => a.linkedNameWithParameters), - t.name - ].join(' ')) - .join(', '); - return '<$joined>'; - } - - @override - String renderLinkedGenericParameters(TypeParameters typeParameters) { - if (typeParameters.typeParameters.isEmpty) { - return ''; - } - var joined = typeParameters.typeParameters - .map((t) => [ - ...t.annotations.map((a) => a.linkedNameWithParameters), - t.linkedName - ].join(' ')) - .join(', '); - return '<$joined>'; - } -}