commercialhaskell / commercialhaskell/jump
Text quasiquoting with interpolation
- 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