summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Brown <greg.brown01@ed.ac.uk>2023-01-08 00:57:09 +0000
committerGreg Brown <greg.brown01@ed.ac.uk>2023-01-08 00:57:09 +0000
commit5e7936a7ecd9b3d3e2562d2c810bffa836558dbe (patch)
tree3492a20641f130e93ff5df04f54fbb7ca9faa215
parent9af1a41a58575508c8d2dff6e7b25a5caac8aadc (diff)
refactor: improve alignment in pretty printing.
-rw-r--r--src/Obs/Pretty.idr14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/Obs/Pretty.idr b/src/Obs/Pretty.idr
index bd163ee..656f352 100644
--- a/src/Obs/Pretty.idr
+++ b/src/Obs/Pretty.idr
@@ -6,7 +6,7 @@ import public Text.PrettyPrint.Prettyprinter
export
prettyDecl : (name : Maybe String) -> (ty : Doc ann) -> Doc ann
prettyDecl Nothing ty = parens $ group $ align ty
-prettyDecl (Just name) ty = parens $ group (pretty name <++> colon <+> line <+> align ty)
+prettyDecl (Just name) ty = parens $ align $ group (pretty name <++> colon <+> line <+> align ty)
-- names are rendered Open
export
@@ -17,6 +17,7 @@ prettyDeclForm : (prec : Prec) ->
Doc ann
prettyDeclForm d decls sep tail =
parenthesise (d > Open) $
+ align $
group $
concatWith (\x, y => x <++> pretty sep <+> line <+> y) $
decls ++ [align tail]
@@ -25,21 +26,24 @@ prettyDeclForm d decls sep tail =
export
prettyLambda : (prec : Prec) -> (name : String) -> (body : Doc ann) -> Doc ann
prettyLambda d name body =
- parenthesise (d >= App) $ group $ vsep [backslash <+> pretty name <++> pretty "=>", align body]
+ parenthesise (d >= App) $ align $ group $
+ vsep [backslash <+> pretty name <++> pretty "=>", align body]
-- head is rendered Open, tail are rendered App
export
prettyApp : (prec : Prec) -> (head : Doc ann) -> (tail : List (Doc ann)) -> Doc ann
-prettyApp d head tail = parenthesise (d >= App) $ group $ vsep (align head :: map (hang 2) tail)
+prettyApp d head tail =
+ parenthesise (d >= App) $ align $ group $ vsep (align head :: map (hang 2) tail)
-- first and second are rendered Open
export
prettyPair : (first, second : Doc ann) -> Doc ann
prettyPair first second =
- angles $ group (neutral <++> align first <+> comma <+> line <+> align second <++> neutral)
+ angles $ align $ group $
+ neutral <++> align first <+> comma <+> line <+> align second <++> neutral
-- left and right are rendered Equal
export
prettyEqual : (prec : Prec) -> (left, right : Doc ann) -> Doc ann
prettyEqual d left right =
- parenthesise (d >= Equal) $ group $ vsep [align left <++> pretty "~", align right]
+ parenthesise (d >= Equal) $ align $ group $ vsep [align left <++> pretty "~", align right]