From 6a39d4349aeeafa59775717c74d33deecc2336b2 Mon Sep 17 00:00:00 2001 From: rvcas Date: Sat, 18 Jun 2022 17:45:50 -0400 Subject: [PATCH] feat: everything lines up --- crates/uplc/src/pretty.rs | 56 ++++++++++++++++++++++++++------------- 1 file changed, 37 insertions(+), 19 deletions(-) diff --git a/crates/uplc/src/pretty.rs b/crates/uplc/src/pretty.rs index f50f1272..04259f68 100644 --- a/crates/uplc/src/pretty.rs +++ b/crates/uplc/src/pretty.rs @@ -5,9 +5,8 @@ use crate::ast::{Constant, Name, Program, Term}; impl Program { pub fn to_pretty(&self) -> String { let mut w = Vec::new(); - println!("here"); - self.to_doc().render(100, &mut w).unwrap(); + self.to_doc().render(80, &mut w).unwrap(); String::from_utf8(w).unwrap() } @@ -36,8 +35,9 @@ impl Term { RcDoc::text("delay") .append(RcDoc::line()) .append(term.to_doc()) - .append(RcDoc::line_()), + .nest(2), ) + .append(RcDoc::line_()) .append(RcDoc::text(")")), Term::Lambda { parameter_name, @@ -51,40 +51,58 @@ impl Term { parameter_name.text, parameter_name.unique ))) .append(RcDoc::line()) - .append(body.to_doc()), + .append(body.to_doc()) + .nest(2), ) .append(RcDoc::line_()) .append(RcDoc::text(")")), Term::Apply { function, argument } => RcDoc::text("[") - .append(RcDoc::line()) - .append(function.to_doc()) - .append(RcDoc::line()) - .append(argument.to_doc()) + .append( + RcDoc::line() + .append( + function + .to_doc() + .append(RcDoc::line()) + .append(argument.to_doc()) + .group(), + ) + .nest(2), + ) .append(RcDoc::line()) .append(RcDoc::text("]")), Term::Constant(constant) => RcDoc::text("(") - .append(RcDoc::text("con")) - .append(RcDoc::line()) - .append(constant.to_doc()) + .append( + RcDoc::text("con") + .append(RcDoc::line()) + .append(constant.to_doc()) + .nest(2), + ) .append(RcDoc::line_()) .append(RcDoc::text(")")), Term::Force(term) => RcDoc::text("(") - .append(RcDoc::text("force")) - .append(RcDoc::line()) - .append(term.to_doc()) + .append( + RcDoc::text("force") + .append(RcDoc::line()) + .append(term.to_doc()) + .nest(2), + ) .append(RcDoc::line_()) .append(RcDoc::text(")")), Term::Error => RcDoc::text("(") - .append(RcDoc::text("error")) + .append(RcDoc::text("error").nest(2)) + .append(RcDoc::line()) + .append(RcDoc::line_()) .append(RcDoc::text(")")), Term::Builtin(builtin) => RcDoc::text("(") - .append(RcDoc::text("builtin")) - .append(RcDoc::line()) - .append(RcDoc::text(builtin.to_string())) + .append( + RcDoc::text("builtin") + .append(RcDoc::line()) + .append(RcDoc::text(builtin.to_string())) + .nest(2), + ) .append(RcDoc::line_()) .append(RcDoc::text(")")), } - .nest(2) .group() } }