diff options
Diffstat (limited to 'vim/bundle/vim-snippets/snippets/haskell.snippets')
-rw-r--r-- | vim/bundle/vim-snippets/snippets/haskell.snippets | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/vim/bundle/vim-snippets/snippets/haskell.snippets b/vim/bundle/vim-snippets/snippets/haskell.snippets new file mode 100644 index 0000000..e4957e4 --- /dev/null +++ b/vim/bundle/vim-snippets/snippets/haskell.snippets @@ -0,0 +1,115 @@ +snippet lang + {-# LANGUAGE ${0:OverloadedStrings} #-} +snippet haddock + {-# OPTIONS_HADDOCK ${0:hide} #-} +snippet ghc + {-# OPTIONS_GHC ${0:-fno-warn-unused-imports} #-} +snippet inline + {-# INLINE ${0:name} #-} +snippet info + -- | + -- Module : ${1:`substitute(substitute(expand('%:r'), '[/\\]','.','g'),'^\%(\l*\.\)\?','','')`} + -- Copyright : ${2:Author} ${3:2011-2012} + -- License : ${4:BSD3} + -- + -- Maintainer : ${5:email@something.com} + -- Stability : ${6:experimental} + -- Portability : ${7:unknown} + -- + -- ${0:Description} + -- +snippet imp + import ${0:Data.Text} +snippet import + import ${0:Data.Text} +snippet import2 + import ${1:Data.Text} (${0:head}) +snippet impq + import qualified ${1:Data.Text} as ${0:T} +snippet importq + import qualified ${1:Data.Text} as ${0:T} +snippet inst + instance ${1:Monoid} ${2:Type} where + ${0} +snippet type + type ${1:Type} = ${0:Type} +snippet data + data ${1:Type} = ${2:$1} ${0:Int} +snippet newtype + newtype ${1:Type} = ${2:$1} ${0:Int} +snippet class + class ${1:Class} a where + ${0} +snippet module + module `substitute(substitute(expand('%:r'), '[/\\]','.','g'),'^\%(\l*\.\)\?','','')` ( + ) where + `expand('%') =~ 'Main' ? "\nmain :: IO ()\nmain = undefined" : ""` + +snippet main + main :: IO () + main = ${0:undefined} +snippet const + ${1:name} :: ${2:a} + $1 = ${0:undefined} +snippet fn + ${1:fn} :: ${2:a} -> ${3:a} + $1 ${4} = ${0:undefined} +snippet fn2 + ${1:fn} :: ${2:a} -> ${3:a} -> ${4:a} + $1 ${5} = ${0:undefined} +snippet fn3 + ${1:fn} :: ${2:a} -> ${3:a} -> ${4:a} -> ${5:a} + $1 ${6} = ${0:undefined} +snippet => "Type constraint" + (${1:Class} ${2:a}) => $2 +snippet ap + ${1:map} ${2:fn} ${0:list} +snippet \ + \\${1:x} -> ${0:expression} +snippet (\ + (\\${1:x} -> ${0:expression}) +snippet <- + ${1:a} <- ${0:m a} +snippet -> + ${1:m a} -> ${0:a} +snippet tup + (${1:a}, ${0:b}) +snippet tup2 + (${1:a}, ${2:b}, ${0:c}) +snippet tup3 + (${1:a}, ${2:b}, ${3:c}, ${0:d}) +snippet rec + ${1:Record} { ${2:recFieldA} = ${3:undefined} + , ${4:recFieldB} = ${0:undefined} + } +snippet case + case ${1:something} of + ${2} -> ${0} +snippet let + let ${1} = ${2} + in ${3} +snippet where + where + ${1:fn} = ${0:undefined} +snippet spec + module `substitute(substitute(expand('%:r'), '[/\\]','.','g'),'^\%(\l*\.\)\?','','')` (main, spec) where + + import Test.Hspec + import Test.QuickCheck + + main :: IO () + main = hspec spec + + spec :: Spec + spec = + describe "${1}" $ do + $0 +snippet desc + describe "${1}" $ do + $0 +snippet it + it "${1}" $ + $0 +snippet itp + it "${1}" $ property $ + $0 |