aboutsummaryrefslogtreecommitdiff
path: root/vim/bundle/vim-snippets/snippets/haskell.snippets
diff options
context:
space:
mode:
Diffstat (limited to 'vim/bundle/vim-snippets/snippets/haskell.snippets')
-rw-r--r--vim/bundle/vim-snippets/snippets/haskell.snippets115
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