From 1492427be5317478f040aff795439eb092173e6b Mon Sep 17 00:00:00 2001 From: NerdyPepper Date: Tue, 13 Feb 2018 13:37:54 +0530 Subject: Add plugins for ligatures --- ligature_plugins/cpp.vim | 25 ++++++++++++++ ligature_plugins/haskell.vim | 77 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 ligature_plugins/cpp.vim create mode 100644 ligature_plugins/haskell.vim diff --git a/ligature_plugins/cpp.vim b/ligature_plugins/cpp.vim new file mode 100644 index 0000000..a0b7c96 --- /dev/null +++ b/ligature_plugins/cpp.vim @@ -0,0 +1,25 @@ +syntax clear cppOperator + + +syntax match cppBelleOperator "<=" conceal cchar=≤ +syntax match cppBelleOperator ">=" conceal cchar=≥ +syntax match cppBelleOperator "!=" conceal cchar=≠ + + +" -> +syn match cppPointer /->/ contains=PointerTail,PointerHead +syn match PointerTail /-/ contained containedin=cppPointer conceal cchar= +syn match PointerHead /-\@<=>/ contained containedin=cppPointer conceal cchar=→ + +" == +syn match cppIsEqual /==/ contains=FirstEqual,SecondEqual +syn match FirstEqual /=/ contained containedin=cppIsEqual conceal cchar= +syn match SecondEqual /=\@<=>/ contained containedin=cppIsEqual conceal cchar= + + +hi link cppBelleOperator Operator +hi link cppPointer Keyword + + +hi! link Conceal Operator +setlocal conceallevel=1 diff --git a/ligature_plugins/haskell.vim b/ligature_plugins/haskell.vim new file mode 100644 index 0000000..b556b0a --- /dev/null +++ b/ligature_plugins/haskell.vim @@ -0,0 +1,77 @@ +" 5px wide equals  +" 5px wide minus  + + +" set correct conceal +set conceallevel=1 + +" lambda's +syntax match hsLambda "\\" conceal cchar=λ + +" function composition +syntax match hsCompose / \. /ms=s+1,me=e-1 conceal cchar=· + +" -> +syn match MHArrow /->/ contains=MHArrowM,MHArrowH +syn match MHArrowM /-/ contained containedin=MHArrow conceal cchar= +syn match MHArrowH /-\@<=>/ contained containedin=MHArrow conceal cchar=→ + +" <- +syn match HMArrow /<\ze-/ contains=HMArrowM,HMArrowH +syn match HMArrowH / +syn match DMHArrow /=>/ contains=DMHArrowM,DMHArrowH +syn match DMHArrowM /=/ contained containedin=DMHArrow conceal cchar= +syn match DMHArrowH /=\@<=>/ contained containedin=DMHArrow conceal cchar=⇒ + +" >>= +syn match DTTMArrow />>\ze=/ contains=DTTMArrowT,DTTMArrowTT +syn match DTTMArrowTT />/ contained containedin=DTTMArrow conceal cchar= +syn match DTTMArrowT />\@<=>/ contained containedin=DTTMArrow conceal cchar= + +" >=> +syn match DTMHArrow />=>/ contains=DTMHArrowT,DTMHArrowM,DTMHArrowH +syn match DTMHArrowT />/ contained containedin=DTMHArrow conceal cchar= +syn match DTMHArrowM /=/ contained containedin=DTMHArrow conceal cchar= +syn match DTMHArrowH /=\@<=>/ contained containedin=DTMHArrow conceal cchar=⇒ + +" <=< +syn match DHMTArrow /<=- +syn match TMArrow />\ze-/ contains=TMArrowT,TMArrowM +syn match TMArrowT />/ contained containedin=TMArrow conceal cchar=⤚ + +">>- +syn match TTMArrow />>\ze-/ contains=TTMArrowT,TTMArrowTT,TTMArrowTTT +syn match TTMArrowTT />/ contained containedin=TTMArrow conceal cchar= +syn match TTMArrowT />\@<=>/ contained containedin=TTMArrow conceal cchar=⤜ +syn match TTMArrowTTT /-<