1
1
mirror of https://github.com/github/semantic.git synced 2024-12-23 06:41:45 +03:00

Generalize patch rendering over the syntax functor.

This commit is contained in:
Rob Rix 2017-05-26 10:42:39 -04:00
parent ec66e575d3
commit 8c5d0bf2da
2 changed files with 2 additions and 3 deletions

View File

@ -26,7 +26,7 @@ import Term
data Renderer input output where data Renderer input output where
PatchRenderer :: HasField fields Range => Renderer (Both SourceBlob, Diff (Syntax Text) (Record fields)) File PatchRenderer :: (HasField fields Range, Traversable f) => Renderer (Both SourceBlob, Diff f (Record fields)) File
JSONRenderer :: (ToJSON a, Foldable t) => Renderer (t SourceBlob, a) [Value] JSONRenderer :: (ToJSON a, Foldable t) => Renderer (t SourceBlob, a) [Value]
SExpressionDiffRenderer :: (HasField fields Category, HasField fields SourceSpan, Foldable f) => Renderer (Both SourceBlob, Diff f (Record fields)) ByteString SExpressionDiffRenderer :: (HasField fields Category, HasField fields SourceSpan, Foldable f) => Renderer (Both SourceBlob, Diff f (Record fields)) ByteString
ToCRenderer :: (HasField fields Category, HasField fields (Maybe Declaration), HasField fields SourceSpan) => Renderer (Both SourceBlob, Diff (Syntax Text) (Record fields)) Summaries ToCRenderer :: (HasField fields Category, HasField fields (Maybe Declaration), HasField fields SourceSpan) => Renderer (Both SourceBlob, Diff (Syntax Text) (Record fields)) Summaries

View File

@ -18,7 +18,6 @@ import Prologue hiding (fst, snd)
import Range import Range
import qualified Source import qualified Source
import Source hiding (break, drop, length, null, take) import Source hiding (break, drop, length, null, take)
import Syntax
import SplitDiff import SplitDiff
-- | Render a timed out file as a truncated diff. -- | Render a timed out file as a truncated diff.
@ -26,7 +25,7 @@ truncatePatch :: Both SourceBlob -> Text
truncatePatch blobs = header blobs <> "#timed_out\nTruncating diff: timeout reached.\n" truncatePatch blobs = header blobs <> "#timed_out\nTruncating diff: timeout reached.\n"
-- | Render a diff in the traditional patch format. -- | Render a diff in the traditional patch format.
patch :: HasField fields Range => Both SourceBlob -> Diff (Syntax Text) (Record fields) -> Text patch :: (HasField fields Range, Traversable f) => Both SourceBlob -> Diff f (Record fields) -> Text
patch blobs diff = if not (Text.null text) && Text.last text /= '\n' patch blobs diff = if not (Text.null text) && Text.last text /= '\n'
then text <> "\n\\ No newline at end of file\n" then text <> "\n\\ No newline at end of file\n"
else text else text