Skip to content

Commit fbccf44

Browse files
committed
update readme for haskell
1 parent 7d6fcd6 commit fbccf44

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed

README.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,53 @@ to 0.75 in Terminal.app (using a Size of 16px).
4444

4545
![terminal](screens/info.png "Terminal.app settings")
4646

47+
## Haskell arrows
48+
I've added support for better Haskell arrows. You could use them using
49+
[-XUnicodeSyntax](http://www.haskell.org/ghc/docs/7.4.1/html/users_guide/syntax-extns.html#unicode-syntax),
50+
but this will possibly drive your coauthors crazy. If you want a less drastic
51+
approach and you're a vim user, you could use the `conceal` capabilities:
52+
53+
```VimL
54+
" set correct conceal
55+
set conceallevel=1
56+
set concealcursor=nvi
57+
58+
" lambda's
59+
syntax match hsLambda "\\" conceal cchar=λ
60+
61+
" function composition
62+
syntax match hsCompose / \. /ms=s+1,me=e-1 conceal cchar=·
63+
64+
" ->
65+
syn match MHArrow /->/ contains=MHArrowM,MHArrowH
66+
syn match MHArrowM /-/ contained containedin=MHArrow conceal cchar=-
67+
syn match MHArrowH /-\@<=>/ contained containedin=MHArrow conceal cchar=→
68+
69+
" <-
70+
syn match HMArrow /<-/ contains=HMArrowM,HMArrowH
71+
syn match HMArrowH /</ contained containedin=HMArrow conceal cchar=←
72+
syn match HMArrowM /<\@<=-/ contained containedin=HMArrow conceal cchar=-
73+
74+
" =>
75+
syn match DMHArrow /=>/ contains=DMHArrowM,DMHArrowH
76+
syn match DMHArrowM /=/ contained containedin=DMHArrow conceal cchar==
77+
syn match DMHArrowH /=\@<=>/ contained containedin=DMHArrow conceal cchar=⇒
78+
79+
" -<
80+
syn match TMArrow /-</ contains=TMArrowT,TMArrowM
81+
syn match TMArrowT /-/ contained containedin=TMArrow conceal cchar=-
82+
syn match TMArrowM /-\@<=</ contained containedin=TMArrow conceal cchar=⤙
83+
84+
syn match DTMArrow /-<</ contains=DTMArrowT,DTMArrowM
85+
syn match DTMArrowT /-<</me=s+1 contained containedin=DTMArrow conceal cchar=-
86+
syn match DTMArrowM /-\@<=</ contained containedin=DTMArrow conceal cchar=⤛
87+
syn match DTMArrowM /\(-<\)\@<=</ contained containedin=DTMArrow conceal cchar=<
88+
```
89+
90+
This yields the following visual effect:
91+
![haskell](screens/haskell.png "haskell screenshot")
92+
93+
4794
## Attribution
4895
Before I created creep I was using Proggy Tiny, which is a great font
4996
and has given me a lot of inspiration.

screens/haskell.png

46.8 KB
Loading

0 commit comments

Comments
 (0)