qm-interpolated-string: Implementation of interpolated multiline strings

[ data, interpolated, library, public-domain ] [ Propose Tags ]

Implementation of interpolated multiline strings that ignores indentation and trailing whitespaces


[Skip to Readme]

Modules

[Index]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0.0, 0.1.1.0, 0.2.0.0, 0.2.1.0, 0.3.0.0, 0.3.1.0
Dependencies base (>=4 && <5), bytestring (>=0.10 && <0.11), haskell-src-meta (>=0.3 && <0.8), template-haskell (>=2.5 && <3), text (>=1 && <2) [details]
License LicenseRef-PublicDomain
Copyright Viacheslav Lotsmanov
Author Viacheslav Lotsmanov
Maintainer Viacheslav Lotsmanov <lotsmanov89@gmail.com>
Category Data
Home page https://github.com/unclechu/haskell-qm-interpolated-string
Source repo head: git clone git://github.com/unclechu/haskell-qm-interpolated-string.git
Uploaded by unclechu at 2017-03-08T19:53:52Z
Distributions LTSHaskell:0.3.1.0, NixOS:0.3.1.0
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 3665 total (22 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for qm-interpolated-string-0.1.0.0

[back to package description]

[qm|interpolated-string|]

Hackage Build Status

Implementation of interpolated multiline strings that ignores indentation and trailing whitespaces.

It's QuasiQuoter.

Actually it's modification of interpolatedstring-perl6 package. I used it to implemenent my own strings I really like.

This implementation looks just like qc from interpolatedstring-perl6 package but ignores any indentation, line-breaks (except explicitly written using \n char) and trailing whitespaces.

'm' in 'qm' means 'multiline'.

You could write a decoratively formatted string and your decorative indentation and line-breaks wont go to the string, but when you really need it, you could just escape it using backslash.

Simple usage example

{-# LANGUAGE QuasiQuotes #-}

import Text.InterpolatedString.QM (qm)

main :: IO ()
main = putStrLn [qm| hello
                   \ world |]

More examples

[qm|   hello world,
     \ what's going on here?  |]
-- Result: "hello world, what's going on here?"
[qm|
      it's actual
      ly ignored
   |]
-- Result: "it's actually ignored"
[qm|  \  You could explicitly escape indentation or\n
         line-breaks when you really need it!  \
   |]
-- Result: "  You could explicitly escape indentation or\nline-breaks when you really need it!  "
[qm| {1+2} \{3+4} |]
-- Result: "3 {3+4}"

Author

Viacheslav Lotsmanov

License

The Unlicense