System.Console.CmdArgs.Text

cmdargs-0.10.18: Command line argument processing

Safe Haskell | Safe
Language | Haskell2010

System.Console.CmdArgs.Text

Description

A module to represent text with very basic formatting. Values are of type [`Text`] and shown with `showText`.

As an example of the formatting:

    [Line "Cooking for hungry people."
    ,Line "Welcome to my cookery recipe program, I sure hope you enjoy using it!"
    ,Line ""
    ,Cols ["Omlette","  A tasty eggy treat."]
    ,Cols ["  -m"," --mushrooms","  Some mushrooms, or in fact any other ingredients you have in the cupboards"]
    ,Cols ["  -e"," --eggs", "  But always you need eggs"]
    ,Line ""
    ,Cols ["Spagetti Bolognaise", "  An Italian delight."]
    ,Cols ["  -s"," --spagetti","  The first word in the name"]
    ,Cols ["  -b"," --bolognaise","  The second word in the name"]
    ,Cols ["  -d"," --dolmio","  The magic ingredient!"]
    ,Line ""
    ,Line "    The author of this program explicitly disclaims any liability for poisoning people who get their recipes off the internet."]

With `putStrLn (`showText` (`Wrap` 50) demo)` gives:

    Cooking for hungry people.
    Welcome to my cookery recipe program, I sure hope
    you enjoy using it!

    Omlette              A tasty eggy treat.
      -m --mushrooms   Some mushrooms, or in fact
                       any other ingredients you have
                       in the cupboards
      -e --eggs        But always you need eggs

    Spagetti Bolognaise  An Italian delight.
      -s --spagetti    The first word in the name
      -b --bolognaise  The second word in the name
      -d --dolmio      The magic ingredient!

        The author of this program explicitly
        disclaims any liability for poisoning people
        who get their recipes off the internet.

Synopsis

- data TextFormat
  - = HTML
  - | Wrap Int
- defaultWrap :: TextFormat
- data Text
  - = Line String
  - | Cols [String]
- showText :: TextFormat -> [Text] -> String

# Documentation

data TextFormat #

How to output the text.

Constructors

HTML | Display as HTML.
Wrap Int | Display as text wrapped at a certain width (see `defaultWrap`).

Instances

Eq TextFormat # |
Methods (==) :: TextFormat -> TextFormat -> Bool # (/=) :: TextFormat -> TextFormat -> Bool #
Ord TextFormat # |
Methods compare :: TextFormat -> TextFormat -> Ordering # (<) :: TextFormat -> TextFormat -> Bool # (<=) :: TextFormat -> TextFormat -> Bool # (>) :: TextFormat -> TextFormat -> Bool # (>=) :: TextFormat -> TextFormat -> Bool # max :: TextFormat -> TextFormat -> TextFormat # min :: TextFormat -> TextFormat -> TextFormat #
Read TextFormat # |
Methods readsPrec :: Int -> ReadS TextFormat # readList :: ReadS [TextFormat] # readPrec :: ReadPrec TextFormat # readListPrec :: ReadPrec [TextFormat] #
Show TextFormat # |
Methods showsPrec :: Int -> TextFormat -> ShowS # show :: TextFormat -> String # showList :: [TextFormat] -> ShowS #
Default TextFormat # |
Methods def :: TextFormat #

defaultWrap :: TextFormat #

Wrap with the default width of 80 characters.

data Text #

The data type representing some text, typically used as `[Text]`. The formatting is described by:

- `Line` values represent a paragraph of text, and may be wrapped depending on the `TextFormat`. If a `Line` value is wrapped then all leading space will be treated as an indent.
- `Cols` values represent columns of text. Within any `[Text]` all columns of the same length are grouped in tabs, with the final column being wrapped if necessary. All columns are placed adjacent with no space between them - for this reason most columns will start with a space.

Constructors

Line String |
Cols [String] |

Instances

Show Text # |
Methods showsPrec :: Int -> Text -> ShowS # show :: Text -> String # showList :: [Text] -> ShowS #

showText :: TextFormat -> [Text] -> String #

Show some text using the given formatting.