Prototype diff formatting for discussion#30
Open
agrrr3 wants to merge 2 commits intoperidot-php:masterfrom
Open
Prototype diff formatting for discussion#30agrrr3 wants to merge 2 commits intoperidot-php:masterfrom
agrrr3 wants to merge 2 commits intoperidot-php:masterfrom
Conversation
Feature request: It would be good to be able to see not only that actual and expected results are different, but also one would like to see in which way they differ. I couldnt find a way to extend leo for diffing in plugin-kind of way. So I started prototyping. This commit prototypes a possible implementation with the following properties * Because the relevant different depends on the type of matcher, each matcher supporting diffs (see SameMatcher) gets a $differ method to be called by the formatter * also the matcher adds a "diff" to the format template vars * on match, the abstract matcher adds the differ to match the result iff the result is unexpected * Formatter reads and prints the $diff member from the matcher * diffing is actually not implemented, that probably should be plugged in using a thirdparty lib This indicates * leo probably should not force diff calculation on users * there should be a kind of extension point to add a differ implementation So this bears the questions: * is there a way already to hook in diffing? * is there a better place than Matcher/Match/Formatter ? ** should diff calculation happen when matching or when formatting * where/how would I register a Differ? * should the Differ be added as mix-in on the Matchers?
|
@agrrr3 this is an interesting feature, can you paste some example output in here? |
Author
|
@ragboyjr this is the result of using cogpowered\FineDiff with word granularity, html-renderer and some black art: So if the html gets rendered somewhere: ...LIKE |
|
Ah, gotcha. I'm not opposed to this idea, let's make a list of tools that implementing diffing with nice output. Can you compare to what other matchers or test runners like PHPUnit, Kahlan, etc... use? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request contains a unfinished prototype for discussing an implementation of a feature.
It would be good to be able to see not only that actual and expected results are different,
but also one would like to see in which way they differ.
I couldnt find a way to extend leo for diffing in plugin-kind of way. So I started prototyping.
This commit prototypes a possible implementation with the following properties
each matcher supporting diffs (see SameMatcher) gets a $differ method to be called by the formatter
This indicates
So this bears the questions:
** should diff calculation happen when matching or when formatting