2module SourceSyntax.PrettyPrint where
5import qualified SourceSyntax.Helpers as Help
10instance Pretty () where
13renderPretty :: (Pretty a) => a -> String
14renderPretty e = render (pretty e)
16commaCat docs = cat (punctuate comma docs)
17commaSep docs = sep (punctuate comma docs)
19parensIf :: Bool -> Doc -> Doc
20parensIf bool doc = if bool then parens doc else doc
22variable :: String -> Doc
24 if Help.isOp x then parens (text x)
27reprime :: String -> String
28reprime = map (\c -> if c == '$' then '\'' else c)
30eightyCharLines :: Int -> String -> String
31eightyCharLines indent message = answer
33 (answer,_,_) = foldl step (spaces, indent-1, "") chunks
35 chunks = map (\w -> (w, length w)) (words message)
36 spaces = replicate indent ' '
37 step (sentence, slen, space) (word, wlen)
38 | slen + wlen > 79 = (sentence ++ "\n" ++ spaces ++ word, indent + wlen, " ")
39 | otherwise = (sentence ++ space ++ word, slen + wlen + length space, " ")
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list