vim-snippets/snippets/haskell.snippets

116 lines
2.5 KiB
Plaintext
Raw Normal View History

2012-04-30 15:24:30 -04:00
snippet lang
{-# LANGUAGE ${0:OverloadedStrings} #-}
2014-03-24 04:46:51 -04:00
snippet haddock
{-# OPTIONS_HADDOCK ${0:hide} #-}
snippet ghc
{-# OPTIONS_GHC ${0:-fno-warn-unused-imports} #-}
2014-11-19 16:44:39 -05:00
snippet inline
{-# INLINE ${0:name} #-}
2012-04-30 15:24:30 -04:00
snippet info
-- |
2015-11-27 19:50:02 -05:00
-- Module : ${1:`substitute(substitute(expand('%:r'), '[/\\]','.','g'),'^\%(\l*\.\)\?','','')`}
2012-04-30 15:24:30 -04:00
-- Copyright : ${2:Author} ${3:2011-2012}
-- License : ${4:BSD3}
--
-- Maintainer : ${5:email@something.com}
-- Stability : ${6:experimental}
-- Portability : ${7:unknown}
--
-- ${0:Description}
2012-04-30 15:24:30 -04:00
--
2014-10-31 08:43:46 -04:00
snippet imp
import ${0:Data.Text}
2012-05-02 12:31:05 -04:00
snippet import
import ${0:Data.Text}
2012-05-02 12:31:05 -04:00
snippet import2
import ${1:Data.Text} (${0:head})
2014-10-31 08:43:46 -04:00
snippet impq
import qualified ${1:Data.Text} as ${0:T}
2012-05-02 12:31:05 -04:00
snippet importq
import qualified ${1:Data.Text} as ${0:T}
2012-04-30 15:24:30 -04:00
snippet inst
instance ${1:Monoid} ${2:Type} where
${0}
2012-04-30 15:24:30 -04:00
snippet type
type ${1:Type} = ${0:Type}
2012-04-30 15:24:30 -04:00
snippet data
data ${1:Type} = ${2:$1} ${0:Int}
2012-04-30 15:24:30 -04:00
snippet newtype
newtype ${1:Type} = ${2:$1} ${0:Int}
2012-04-30 15:24:30 -04:00
snippet class
class ${1:Class} a where
${0}
2012-04-30 15:24:30 -04:00
snippet module
2012-04-30 16:59:15 -04:00
module `substitute(substitute(expand('%:r'), '[/\\]','.','g'),'^\%(\l*\.\)\?','','')` (
) where
2015-11-28 17:56:04 -05:00
`expand('%') =~ 'Main' ? "\nmain :: IO ()\nmain = undefined" : ""`
2012-04-30 16:59:15 -04:00
2015-11-27 19:50:02 -05:00
snippet main
main :: IO ()
main = ${0:undefined}
2012-04-30 15:24:30 -04:00
snippet const
${1:name} :: ${2:a}
$1 = ${0:undefined}
2012-04-30 15:24:30 -04:00
snippet fn
${1:fn} :: ${2:a} -> ${3:a}
$1 ${4} = ${0:undefined}
2012-04-30 15:24:30 -04:00
snippet fn2
${1:fn} :: ${2:a} -> ${3:a} -> ${4:a}
$1 ${5} = ${0:undefined}
2015-11-27 19:50:02 -05:00
snippet fn3
${1:fn} :: ${2:a} -> ${3:a} -> ${4:a} -> ${5:a}
$1 ${6} = ${0:undefined}
snippet => "Type constraint"
(${1:Class} ${2:a}) => $2
2012-04-30 15:24:30 -04:00
snippet ap
${1:map} ${2:fn} ${0:list}
2012-04-30 15:24:30 -04:00
snippet \
2014-10-30 12:11:58 -04:00
\\${1:x} -> ${0:expression}
2014-10-28 12:13:17 -04:00
snippet (\
2014-10-30 12:11:58 -04:00
(\\${1:x} -> ${0:expression})
2012-04-30 15:24:30 -04:00
snippet <-
${1:a} <- ${0:m a}
2012-04-30 15:24:30 -04:00
snippet ->
${1:m a} -> ${0:a}
2012-04-30 15:24:30 -04:00
snippet tup
(${1:a}, ${0:b})
2012-04-30 15:24:30 -04:00
snippet tup2
(${1:a}, ${2:b}, ${0:c})
2012-04-30 15:24:30 -04:00
snippet tup3
(${1:a}, ${2:b}, ${3:c}, ${0:d})
2012-04-30 15:24:30 -04:00
snippet rec
${1:Record} { ${2:recFieldA} = ${3:undefined}
, ${4:recFieldB} = ${0:undefined}
2012-04-30 15:24:30 -04:00
}
snippet case
case ${1:something} of
${2} -> ${0}
2012-04-30 15:24:30 -04:00
snippet let
let ${1} = ${2}
in ${3}
snippet where
where
${1:fn} = ${0:undefined}
2015-11-28 17:16:16 -05:00
snippet spec
2015-11-28 17:58:14 -05:00
module `substitute(substitute(expand('%:r'), '[/\\]','.','g'),'^\%(\l*\.\)\?','','')` (main spec) where
2015-11-28 17:16:16 -05:00
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