wryte: Pretty output for source generators

[ bsd3, library, web ] [ Propose Tags ]

Wryte provides a convenient API for semi-automatically indented source code output.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0, 0.1.1.0, 0.2.0.0
Dependencies base (>=4.7 && <5), mtl, text [details]
License BSD-3-Clause
Copyright 2017 Tobias Dammers
Author Tobias Dammers
Maintainer tdammers@gmail.com
Category Web
Home page https://github.com/tdammers/wryte#readme
Source repo head: git clone https://github.com/tdammers/wryte
Uploaded by TobiasDammers at 2017-05-27T09:22:49Z
Distributions NixOS:0.2.0.0
Reverse Dependencies 2 direct, 3 indirect [details]
Downloads 2200 total (15 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2017-05-27 [all 1 reports]

Readme for wryte-0.2.0.0

[back to package description]

wryte

Pretty-printed source code with semi-automatic indentation

Introduction

Wryte provides an API for generating textual source code with pretty indentation and alignment. To achieve this, it tracks source column position, newlines, and current indentation / alignment internally, and provides a monadic API to conveniently manage these.

Installation

The usual; cabal install wryte, or add wryte to your stack extra-dependencies.

Basic Usage

putStrLn . runWryte_ defWryteOptions $ do
  wryteLn "module Main where"
  wryteLn ""
  wryteLn "main = do"
  indented $ do
    wryteLn "putStrLn \"Hello, world!\"

Indentation is tracked monadically, such that indented acts as a wrapper that automatically prepends indentation to each new line. Indentations stack up, so you can safely nest them, and they will do the right thing.