From 806c1a8126f52ab7c68cade505e0107728aeeeeb Mon Sep 17 00:00:00 2001 From: Egil Hansen Date: Sat, 28 Dec 2019 22:38:18 +0000 Subject: [PATCH] V0.13.2 (#8) * Refactored diffing strategy pipeline categories * fixed bug in textnodefilter * Code clean up * 0.13.2 done --- .editorconfig | 16 -- CHANGELOG.md | 9 + src/.editorconfig | 227 ++++++++++++++++++ .../Core/AttributeComparisonSourceTest.cs | 6 +- .../Core/AttributeComparisonTest.cs | 1 + .../Core/ComparisonSourceTest.cs | 2 +- .../Core/DiffingEngineTestBase.cs | 2 +- .../Core/HtmlDifferenceEngineTest.cs | 11 +- .../Core/SourceCollectionTest.cs | 2 + .../Core/SourceMapTest.cs | 2 + .../DiffBuilderTest.cs | 4 +- .../DiffingTestBase.cs | 6 +- .../DiffingTestFixture.cs | 3 +- .../ShouldlyTestExtensions.cs | 1 + .../AttributeComparerTest.cs | 2 + .../AttributeNameMatcherTest.cs | 8 +- .../BooleanAttributeComparerTest.cs | 9 +- .../ClassAttributeComparerTest.cs | 2 + .../IgnoreAttributeComparerTest.cs | 2 + .../IgnoreDiffAttributesFilterTest.cs | 2 + .../PostfixedAttributeMatcherTest.cs | 4 +- .../StyleAttributeComparerTest.cs | 7 +- .../IgnoreCommentsFilterTest.cs | 2 + .../Strategies/DiffingStrategyPipelineTest.cs | 96 ++++---- .../CssSelectorElementMatcherTest.cs | 10 +- .../IgnoreElementComparerTest.cs | 5 +- .../ForwardSearchingNodeMatcherTest.cs | 5 +- .../NodeStrategies/NodeComparerTest.cs | 2 + .../NodeStrategies/OneToOneNodeMatcherTest.cs | 6 +- .../StyleSheetTextNodeComparerTest.cs | 9 +- .../TextNodeComparerTest.cs | 6 +- .../TextNodeStrategies/TextNodeFilterTest.cs | 22 +- src/AngleSharp.Diffing.sln | 5 - .../AngleSharp.Diffing.csproj | 2 +- .../Core/AttributeComparison.cs | 10 +- .../Core/AttributeComparisonSource.cs | 23 +- src/AngleSharp.Diffing/Core/CompareResult.cs | 10 + src/AngleSharp.Diffing/Core/Comparison.cs | 36 ++- .../Core/ComparisonSource.cs | 81 +++++-- src/AngleSharp.Diffing/Core/DiffContext.cs | 31 ++- src/AngleSharp.Diffing/Core/DiffResult.cs | 13 +- src/AngleSharp.Diffing/Core/DiffTarget.cs | 28 +++ src/AngleSharp.Diffing/Core/Diffs/AttrDiff.cs | 6 + src/AngleSharp.Diffing/Core/Diffs/DiffBase.cs | 15 ++ .../Core/Diffs/MissingAttrDiff.cs | 8 +- .../Core/Diffs/MissingDiffBase.cs | 12 + .../Core/Diffs/MissingNodeDiff.cs | 6 + src/AngleSharp.Diffing/Core/Diffs/NodeDiff.cs | 6 + .../Core/Diffs/UnexpectedAttrDiff.cs | 6 + .../Core/Diffs/UnexpectedDiffBase.cs | 11 + .../Core/Diffs/UnexpectedNodeDiff.cs | 6 + src/AngleSharp.Diffing/Core/FilterDecision.cs | 19 ++ .../Core/HtmlDifferenceEngine.cs | 15 +- .../Core/IComparisonSource.cs | 12 + src/AngleSharp.Diffing/Core/IDiff.cs | 3 + src/AngleSharp.Diffing/Core/IDiffContext.cs | 18 +- .../Core/SourceCollection.cs | 28 ++- .../Core/SourceCollectionRemovePredicate.cs | 7 + src/AngleSharp.Diffing/Core/SourceMap.cs | 45 +++- .../Core/SourceMapRemovePredicate.cs | 7 + src/AngleSharp.Diffing/Core/SourceType.cs | 9 + src/AngleSharp.Diffing/DiffBuilder.cs | 29 ++- .../Extensions/CollectionExtensions.cs | 12 +- .../Extensions/ElementExtensions.cs | 54 ++++- .../Extensions/EmptyHtmlCollection.cs | 15 ++ .../Extensions/EnumExtensions.cs | 6 + .../Extensions/NodeExtensions.cs | 30 +++ .../Extensions/NodeListExtensions.cs | 18 +- .../Extensions/NodeNotFoundException.cs | 25 -- src/AngleSharp.Diffing/HtmlDiffer.cs | 56 ++++- .../AttributeStrategies/AttributeComparer.cs | 13 +- .../AttributeNameMatcher.cs | 13 +- .../BooleanAttributeComparer.cs | 25 +- .../BooleanAttributeComparision.cs | 9 + .../ClassAttributeComparer.cs | 16 +- ...iffingStrategyPipelineBuilderExtensions.cs | 20 +- .../IgnoreAttributeComparer.cs | 10 +- .../IgnoreDiffAttributesFilter.cs | 12 +- .../PostfixedAttributeMatcher.cs | 16 +- .../StyleAttributeComparer.cs | 12 +- .../CommentStrategies/CommentComparer.cs | 11 +- ...iffingStrategyPipelineBuilderExtensions.cs | 8 +- .../CommentStrategies/IgnoreCommentsFilter.cs | 14 +- .../Strategies/CompareStrategy.cs | 16 ++ .../Strategies/DiffingStrategyPipeline.cs | 98 +++----- ...iffingStrategyPipelineBuilderExtensions.cs | 3 +- .../CssSelectorElementMatcher.cs | 20 +- ...SelectorReturnedTooManyResultsException.cs | 16 ++ ...iffingStrategyPipelineBuilderExtensions.cs | 7 +- .../ElementStrategies/ElementComparer.cs | 11 +- .../IgnoreElementComparer.cs | 15 +- .../Strategies/FilterStrategy.cs | 17 ++ .../Strategies/IDiffingStrategyCollection.cs | 30 +-- .../Strategies/MatchStrategy.cs | 22 ++ ...iffingStrategyPipelineBuilderExtensions.cs | 7 +- .../ForwardSearchingNodeMatcher.cs | 13 +- .../NodeStrategies/OneToOneNodeMatcher.cs | 13 +- .../Strategies/StrategyType.cs | 17 ++ ...iffingStrategyPipelineBuilderExtensions.cs | 7 +- .../StyleSheetTextNodeComparer.cs | 13 +- .../TextNodeStrategies/TextNodeComparer.cs | 23 +- .../TextNodeStrategies/TextNodeFilter.cs | 30 ++- .../TextNodeStrategies/WhitespaceOption.cs | 13 + 103 files changed, 1414 insertions(+), 370 deletions(-) delete mode 100644 .editorconfig create mode 100644 src/.editorconfig create mode 100644 src/AngleSharp.Diffing/Core/SourceCollectionRemovePredicate.cs create mode 100644 src/AngleSharp.Diffing/Core/SourceMapRemovePredicate.cs delete mode 100644 src/AngleSharp.Diffing/Extensions/NodeNotFoundException.cs create mode 100644 src/AngleSharp.Diffing/Strategies/CompareStrategy.cs create mode 100644 src/AngleSharp.Diffing/Strategies/FilterStrategy.cs create mode 100644 src/AngleSharp.Diffing/Strategies/MatchStrategy.cs create mode 100644 src/AngleSharp.Diffing/Strategies/StrategyType.cs diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index b8b7013..0000000 --- a/.editorconfig +++ /dev/null @@ -1,16 +0,0 @@ -# http://editorconfig.org -root = true - -[*] -indent_style = space -indent_size = 4 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true - -[*.csproj] -indent_style = space -indent_size = 2 - -# CS1591: Missing XML comment for publicly visible type or member -dotnet_diagnostic.CS1591.severity = suggestion diff --git a/CHANGELOG.md b/CHANGELOG.md index bed5753..771792b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +# 0.13.2 + +Released on Thursday, December 27, 2019. + +- Added code documentation to all public methods. +- Refactored IDiffingStrategyCollection's methods to take a `StrategyType strategyType = StrategyType.Specialized` as input instead of `bool isSpecialized* = true` argument. +- Fixed bug where `TextNodeFilter` would not give `