mirror of
				https://github.com/amix/vimrc
				synced 2025-10-31 06:33:35 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			152 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			152 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 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 ty
 | |
| 	type ${1:Type} = ${0:Type}
 | |
| snippet type
 | |
| 	type ${1:Type} = ${0:Type}
 | |
| snippet da
 | |
| 	data ${1:Type} = ${2:$1} ${0:Int}
 | |
| 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 mod
 | |
| 	module `substitute(substitute(expand('%:r'), '[/\\]','.','g'),'^\%(\l*\.\)\?','','')`
 | |
| 		( ${1}
 | |
| 		) 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 fn0
 | |
| 	${1:fn} :: ${2:a}
 | |
| 	$1 = ${0:undefined}
 | |
| snippet fn1
 | |
| 	${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
 | |
| 			it "${2}" $
 | |
| 				$0
 | |
| snippet specf
 | |
| 	module `substitute(substitute(expand('%:r'), '[/\\]','.','g'),'^\%(\l*\.\)\?','','')` (main, spec) where
 | |
| 
 | |
| 	import Test.Hspec
 | |
| 	import Test.Hspec.Runner (configFastFail, defaultConfig, hspecWith)
 | |
| 
 | |
| 	main :: IO ()
 | |
| 	main = hspecWith defaultConfig {configFastFail = True} spec
 | |
| 
 | |
| 	spec :: Spec
 | |
| 	spec =
 | |
| 		describe "${1}" $ do
 | |
| 			it "${2}" $
 | |
| 				$0
 | |
| snippet desc
 | |
| 	describe "${1}" $ do
 | |
| 		$0
 | |
| snippet it
 | |
| 	it "${1}" $
 | |
| 		$0
 | |
| snippet itp
 | |
| 	it "${1}" $ property $
 | |
| 		$0
 | |
| snippet sb
 | |
| 	\`shouldBe\` $0
 | |
| snippet doc
 | |
| 	{-| ${0}
 | |
| 	-}
 | 
