mirror of
https://github.com/unisonweb/unison.git
synced 2024-09-22 07:48:10 +03:00
box art around the type updates
This commit is contained in:
parent
b5b5ef7e8c
commit
b1f042d008
@ -1,5 +1,5 @@
|
|||||||
{-# OPTIONS_GHC -Wno-unused-top-binds #-}
|
{-# OPTIONS_GHC -Wno-unused-top-binds #-}
|
||||||
{-# OPTIONS_GHC -Wno-unused-local-binds #-}
|
-- {-# OPTIONS_GHC -Wno-unused-local-binds #-}
|
||||||
{-# OPTIONS_GHC -Wno-unused-imports #-}
|
{-# OPTIONS_GHC -Wno-unused-imports #-}
|
||||||
{-# OPTIONS_GHC -Wno-unused-matches #-}
|
{-# OPTIONS_GHC -Wno-unused-matches #-}
|
||||||
{-# OPTIONS_GHC -fno-warn-partial-type-signatures #-}
|
{-# OPTIONS_GHC -fno-warn-partial-type-signatures #-}
|
||||||
@ -1080,7 +1080,6 @@ renderEditConflicts ppe Patch{..} =
|
|||||||
editConflicts =
|
editConflicts =
|
||||||
(fmap Left . Map.toList . R.toMultimap . R.filterManyDom $ _typeEdits) <>
|
(fmap Left . Map.toList . R.toMultimap . R.filterManyDom $ _typeEdits) <>
|
||||||
(fmap Right . Map.toList . R.toMultimap . R.filterManyDom $ _termEdits)
|
(fmap Right . Map.toList . R.toMultimap . R.filterManyDom $ _termEdits)
|
||||||
name = either (typeName . fst) (termName . fst)
|
|
||||||
typeName r = styleHashQualified P.bold (PPE.typeName ppe r)
|
typeName r = styleHashQualified P.bold (PPE.typeName ppe r)
|
||||||
termName r = styleHashQualified P.bold (PPE.termName ppe (Referent.Ref r))
|
termName r = styleHashQualified P.bold (PPE.termName ppe (Referent.Ref r))
|
||||||
formatTypeEdits (r, toList -> es) = P.wrap $
|
formatTypeEdits (r, toList -> es) = P.wrap $
|
||||||
@ -1207,7 +1206,7 @@ showDiffNamespace ppe d@OBD.BranchDiffOutput{..} =
|
|||||||
else pure mempty
|
else pure mempty
|
||||||
]
|
]
|
||||||
where
|
where
|
||||||
updateIndicator = " └─ "
|
-- updateIndicator = " └─ "
|
||||||
|
|
||||||
prettyUpdateType :: OBD.UpdateTypeDisplay v Ann -> _ Pretty
|
prettyUpdateType :: OBD.UpdateTypeDisplay v Ann -> _ Pretty
|
||||||
{-
|
{-
|
||||||
@ -1219,40 +1218,41 @@ showDiffNamespace ppe d@OBD.BranchDiffOutput{..} =
|
|||||||
6. + MIT : License
|
6. + MIT : License
|
||||||
-}
|
-}
|
||||||
prettyUpdateType (Nothing, mdUps) =
|
prettyUpdateType (Nothing, mdUps) =
|
||||||
fmap P.linesNonEmpty $ traverse mdLine mdUps
|
fmap P.linesNonEmpty $ traverse mdTypeLine mdUps
|
||||||
{-
|
{-
|
||||||
1. ability Foo#pqr x y
|
1. ┌ ability Foo#pqr x y
|
||||||
2. ability Foo#xyz a b
|
2. └ ability Foo#xyz a b
|
||||||
↓
|
⧩ replaced with
|
||||||
4. ability Foo#abc
|
4. ┌ ability Foo#abc
|
||||||
5. - apiDocs : Doc
|
│ 5. - apiDocs : Doc
|
||||||
6. + MIT : License
|
│ 6. + MIT : License
|
||||||
-}
|
7. └ ability Foo#def
|
||||||
{-
|
8. - apiDocs : Doc
|
||||||
1. ability Foo#pqr x y
|
9. + MIT : License
|
||||||
2. ability Foo#xyz a b
|
|
||||||
↓
|
1. ┌ foo#abc : Nat -> Nat -> Poop
|
||||||
4. ability Foo#abc
|
2. └ foo#xyz : Nat
|
||||||
5. - apiDocs : License
|
⧩ replaced with
|
||||||
6. + MIT : License
|
4. [ foo : Poop
|
||||||
7. ability Foo#abc
|
5. + foo.docs : Doc
|
||||||
8. - apiDocs : License
|
|
||||||
6. + MIT : License
|
|
||||||
-}
|
-}
|
||||||
prettyUpdateType (Just olds, news) =
|
prettyUpdateType (Just olds, news) =
|
||||||
fmap P.linesNonEmpty $ do
|
fmap P.linesNonEmpty $ do
|
||||||
olds <- traverse mdLine [ (name,decl,mempty) | (name,decl) <- olds ]
|
olds <- P.boxLeft <$>
|
||||||
news <- traverse mdLine news
|
traverse mdTypeLine [ (name,decl,mempty) | (name,decl) <- olds ]
|
||||||
|
news <- P.boxLeft <$>
|
||||||
|
traverse mdTypeLine news
|
||||||
pure $ olds <> [downArrow] <> news
|
pure $ olds <> [downArrow] <> news
|
||||||
|
|
||||||
downArrow = P.bold "↓"
|
downArrow = P.bold "⧩ replaced with"
|
||||||
mdLine (hq, otype, mddiff) = do
|
mdTypeLine (hq, otype, mddiff) = do
|
||||||
n <- num
|
n <- num
|
||||||
fmap P.linesNonEmpty . sequence $
|
fmap P.linesNonEmpty . sequence $
|
||||||
[ pure $ n <> prettyDecl hq otype
|
[ pure $ n <> prettyDecl hq otype
|
||||||
, P.indentN leftNumsWidth <$> prettyMetadataDiff mddiff ]
|
, P.indentN leftNumsWidth <$> prettyMetadataDiff mddiff ]
|
||||||
|
|
||||||
prettyUpdateTerm hmm = undefined
|
prettyUpdateTerm (Nothing, terms) = undefined
|
||||||
|
|
||||||
prettyMetadataDiff OBD.MetadataDiff{..} = P.column2M $
|
prettyMetadataDiff OBD.MetadataDiff{..} = P.column2M $
|
||||||
map (elem " - ") removedMetadata <>
|
map (elem " - ") removedMetadata <>
|
||||||
map (elem " + ") addedMetadata
|
map (elem " + ") addedMetadata
|
||||||
@ -1300,7 +1300,6 @@ listOfDefinitions' ppe detailed results =
|
|||||||
(P.text . Referent.toText)) missingBuiltins)
|
(P.text . Referent.toText)) missingBuiltins)
|
||||||
]
|
]
|
||||||
where
|
where
|
||||||
len = length results
|
|
||||||
prettyNumberedResults = P.numberedList prettyResults
|
prettyNumberedResults = P.numberedList prettyResults
|
||||||
-- todo: group this by namespace
|
-- todo: group this by namespace
|
||||||
prettyResults =
|
prettyResults =
|
||||||
|
@ -10,6 +10,7 @@ module Unison.Util.Pretty (
|
|||||||
ColorText,
|
ColorText,
|
||||||
align,
|
align,
|
||||||
backticked,
|
backticked,
|
||||||
|
boxLeft,
|
||||||
bulleted,
|
bulleted,
|
||||||
bracket,
|
bracket,
|
||||||
-- breakable
|
-- breakable
|
||||||
@ -580,6 +581,18 @@ callout header p = header <> "\n\n" <> p
|
|||||||
bracket :: (LL.ListLike s Char, IsString s) => Pretty s -> Pretty s
|
bracket :: (LL.ListLike s Char, IsString s) => Pretty s -> Pretty s
|
||||||
bracket = indent " "
|
bracket = indent " "
|
||||||
|
|
||||||
|
boxLeft :: forall s . (LL.ListLike s Char, IsString s) => [Pretty s] -> [Pretty s]
|
||||||
|
boxLeft ps = go ps where
|
||||||
|
go [] = []
|
||||||
|
go [p] = [decorate singleton p]
|
||||||
|
go (Seq.fromList -> a Seq.:<| (mid Seq.:|> b)) =
|
||||||
|
[decorate first a] ++ toList (decorate middle <$> mid) ++ [decorate last b]
|
||||||
|
decorate (first, mid) p = first <> indentAfterNewline mid p
|
||||||
|
first = ("┌", "│")
|
||||||
|
middle = ("├", "|")
|
||||||
|
last = ("└", " ")
|
||||||
|
singleton = ("[", " ")
|
||||||
|
|
||||||
warnCallout, blockedCallout, fatalCallout, okCallout
|
warnCallout, blockedCallout, fatalCallout, okCallout
|
||||||
:: (LL.ListLike s Char, IsString s) => Pretty s -> Pretty s
|
:: (LL.ListLike s Char, IsString s) => Pretty s -> Pretty s
|
||||||
warnCallout = callout "⚠️"
|
warnCallout = callout "⚠️"
|
||||||
|
Loading…
Reference in New Issue
Block a user