1
Fork 0
satellite/home/features/neovim/snippets/purescript.miros

109 lines
2.2 KiB
Plaintext
Raw Normal View History

2024-04-16 23:25:20 +02:00
block start auto
string val
name value definition
desc Create a value-level declaration
snip
$1 :: $2
$1 $3 = $4
for kind <- @⟨type,newtype,data⟩
string @kind
name @kind definition
desc Define a @⟨@kind:type,newtype,adt⟩
snip data $1 = $2
string example
name example docstring
desc Provide example usage for some piece of code
snip
-- | Example:
-- | ```purs
-- | $0
-- | ```
string class
name typeclass declaration
desc Declare a typeclass
snip
class $1 $|2⟨
where
$2,
$2
string instance
name typeclass instance
desc Declare a typeclass instance
snip
instance $1 $|2⟨
where
$2,
$2
string derive
name derive typeclass instance
desc Derive a typeclass instance
snip
derive $|1⟨$1,newtype $1⟩instance $0
for typeclass <- @⟨Eq,Ord,Functor⟩
string d@⟨@typeclass:eq,ord,functor⟩
name derive @typeclass
snip derive @typeclass $0
for typeclass <- @⟨Newtype,Generic⟩
string d@⟨@typeclass:newtype,generic⟩
name derive @typeclass
snip derive @typeclass $1 _
for typeclass <- @⟨Show,Debug⟩
for lower <- @⟨@typeclass:show,debug⟩
string g@lower
name generic @lower instance
snip
instance @typeclass $1 where
@lower = generic@typeclass
string djson
name derive json instances
snip
derive newtype instance EncodeJson $",
derive newtype instance DecodeJson $1
string gjson
name generic json instances
snip
instance EncodeJson $1 where
encodeJson = genericEncodeJson
instance DecodeJson $1 where
decodeJson = genericDecodeJson
block auto
string ite
name if-then-else
snip if $1 then $2 else $0
string caseof
name pattern match
snip
case $1 of
$2 -> $0
block start
for module <- @⟨
Map,
HashMap,
Set,
HashSet,
Array,
List,
String,
Int,
Number
string imp@⟨@module:map,hashmap,set,hashset,array,list,string,int,number⟩
name import Data.@module
snip import Data.@module as @module