commercialhaskell / commercialhaskell/jump

Text quasiquoting with interpolation

Open
#5 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
155
Forks
4
PR merge metrics
No merged PRs in 30d

Description

Text quasiquoting with interpolation would be great to have without import

ex:
- neat-interpolation ([stackage](http://haddock.stackage.org/nightly-2016-03-30/neat-interpolation-0.3.2/NeatInterpolation.html)) (this is the closest to what I have in mind, or as it says:
A quasiquoter for producing Text values with support for a simple interpolation of input values. It removes the excessive indentation from the input and accurately manages the indentation of all lines of the interpolated variables.
)
- QuasiText ([stackage](http://haddock.stackage.org/lts-5.10/QuasiText-0.1.2.5/Text-QuasiText.html), [github](https://github.com/mikeplus64/QuasiText))
- string-qq [stackage](http://haddock.stackage.org/nightly-2016-03-30/string-qq-0.0.2/Data-String-QQ.html) (this one does not support interpolation, but supports all isString instance types)
- ...

As a starting point, neat-interpolation has those deps: `base`, `base-prelude`, `parsec`, `template-haskell`, `text`, but with some rewriting/tweaking, I think parsec dep could be removed

various aspects to consider:
- not to break indentation, should quoted text indentation be based on the closing bracket ?
- should we make the quasiquoter so it works with all isString instance (like `string-qq` does) ?

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by comparing neat-interpolation, QuasiText, and string-qq, especially their interpolation, indentation, and IsString behavior. Then inspect the project entry points for existing quasiquoting or text support and determine which semantics and dependencies are acceptable. Done means the feature scope and behavior are specified, including indentation and supported target types.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.