dbg
diff --git a/src/Init/Data/Format/PrettyPrint.lean b/src/Init/Data/Format/PrettyPrint.lean index bf407d7..1abc3a4 100644 --- a/src/Init/Data/Format/PrettyPrint.lean +++ b/src/Init/Data/Format/PrettyPrint.lean
@@ -22,6 +22,21 @@ | tag (t : Nat) (f : ResolvedFormat) deriving Inhabited +instance : ToString Format.GroupBehavior where + toString + | .uniform => "uniform" + | .fill => "fill" + +private partial def ResolvedFormat.toString : ResolvedFormat → String + | .hardBreak indent => s!"(line {indent})" + | .text s => s!"(text \"{s}\")" + | .softBreak s indent => s!"(softLine \"{s}\" {indent})" + | .group behavior fmts => s!"(group {behavior} {fmts.map toString})" + | .tag t f => s!"(tag {t} {toString f})" + +instance : ToString ResolvedFormat where + toString f := f.toString + partial def Format.resolve (f : Format) (indent := 0) : ResolvedFormat := .group none (go indent f) where @@ -97,6 +112,7 @@ -- try to fit as many parts of the flattened group in the current line let (line, rest) := fillLine (← currColumn) width (behavior matches some .fill) fmts + dbg_trace (line, rest) if rest.isEmpty then -- entire group fits fmts.forM (prettyM true) @@ -115,6 +131,7 @@ prettyM false <| .group behavior (rest.extract 1 rest.size) def Format.prettyM [Monad m] [MonadPrettyFormat m] (fmt : Format) (width : Nat := defWidth) (indent := 0) : m Unit := + dbg_trace fmt.resolve fmt.resolve indent |>.prettyM width false -- default instances for `PrettyMonad`