aboutsummaryrefslogtreecommitdiff
path: root/vim/.vim/syntax
diff options
context:
space:
mode:
authorTucker Evans <tuckerevans24@gmail.com>2019-01-07 16:56:48 -0500
committerTucker Evans <tuckerevans24@gmail.com>2019-01-07 16:56:48 -0500
commitf391c9a87cb0b3e6acfb1d8cb64660f1fd2edc09 (patch)
tree63e50e2fd9d7576418c4475ca374a26560c2f27f /vim/.vim/syntax
parent8aa9df6189da355b52a94134ad1079e6b9bb2794 (diff)
Updates vim
Diffstat (limited to 'vim/.vim/syntax')
-rw-r--r--vim/.vim/syntax/c.vim286
-rw-r--r--vim/.vim/syntax/haskell.vim208
2 files changed, 494 insertions, 0 deletions
diff --git a/vim/.vim/syntax/c.vim b/vim/.vim/syntax/c.vim
new file mode 100644
index 0000000..4c47c43
--- /dev/null
+++ b/vim/.vim/syntax/c.vim
@@ -0,0 +1,286 @@
+" Vim syntax file
+" Language: C Additions
+" Maintainer: Mikhail Wolfson <mywolfson@gmail.com>
+" URL: http://web.mit.edu/wolfsonm
+" Last Change: 2010 Dec. 3
+" Version: 0.4
+"
+" Changelog:
+" 0.4 - updates and fixes to cDelimiter to fix break with foldmethod=syntax,
+" entirely suggested and solved by Ivan Freitas
+" <ivansichfreitas@gmail.com>
+" 0.3 - updates and fixes to cUserFunctionPointer, thanks to
+" Alexei <lxmzhv@gmail.com>
+" 0.2 - change [] to operator
+" 0.1 - initial upload, modification from vimscript#1201, Extended c.vim
+
+
+" Common ANSI-standard functions
+syn keyword cAnsiFunction MULU_ DIVU_ MODU_ MUL_ DIV_ MOD_
+syn keyword cAnsiFunction main typeof
+syn keyword cAnsiFunction open close read write lseek dup dup2
+syn keyword cAnsiFunction fcntl ioctl
+syn keyword cAnsiFunction wctrans towctrans towupper
+syn keyword cAnsiFunction towlower wctype iswctype
+syn keyword cAnsiFunction iswxdigit iswupper iswspace
+syn keyword cAnsiFunction iswpunct iswprint iswlower
+syn keyword cAnsiFunction iswgraph iswdigit iswcntrl
+syn keyword cAnsiFunction iswalpha iswalnum wcsrtombs
+syn keyword cAnsiFunction mbsrtowcs wcrtomb mbrtowc
+syn keyword cAnsiFunction mbrlen mbsinit wctob
+syn keyword cAnsiFunction btowc wcsfxtime wcsftime
+syn keyword cAnsiFunction wmemset wmemmove wmemcpy
+syn keyword cAnsiFunction wmemcmp wmemchr wcstok
+syn keyword cAnsiFunction wcsstr wcsspn wcsrchr
+syn keyword cAnsiFunction wcspbrk wcslen wcscspn
+syn keyword cAnsiFunction wcschr wcsxfrm wcsncmp
+syn keyword cAnsiFunction wcscoll wcscmp wcsncat
+syn keyword cAnsiFunction wcscat wcsncpy wcscpy
+syn keyword cAnsiFunction wcstoull wcstoul wcstoll
+syn keyword cAnsiFunction wcstol wcstold wcstof
+syn keyword cAnsiFunction wcstod ungetwc putwchar
+syn keyword cAnsiFunction putwc getwchar getwc
+syn keyword cAnsiFunction fwide fputws fputwc
+syn keyword cAnsiFunction fgetws fgetwc wscanf
+syn keyword cAnsiFunction wprintf vwscanf vwprintf
+syn keyword cAnsiFunction vswscanf vswprintf vfwscanf
+syn keyword cAnsiFunction vfwprintf swscanf swprintf
+syn keyword cAnsiFunction fwscanf fwprintf zonetime
+syn keyword cAnsiFunction strfxtime strftime localtime
+syn keyword cAnsiFunction gmtime ctime asctime
+syn keyword cAnsiFunction time mkxtime mktime
+syn keyword cAnsiFunction difftime clock strlen
+syn keyword cAnsiFunction strerror memset strtok
+syn keyword cAnsiFunction strstr strspn strrchr
+syn keyword cAnsiFunction strpbrk strcspn strchr
+syn keyword cAnsiFunction memchr strxfrm strncmp
+syn keyword cAnsiFunction strcoll strcmp memcmp
+syn keyword cAnsiFunction strncat strcat strncpy
+syn keyword cAnsiFunction strcpy memmove memcpy
+syn keyword cAnsiFunction wcstombs mbstowcs wctomb
+syn keyword cAnsiFunction mbtowc mblen lldiv
+syn keyword cAnsiFunction ldiv div llabs
+syn keyword cAnsiFunction labs abs qsort
+syn keyword cAnsiFunction bsearch system getenv
+syn keyword cAnsiFunction exit atexit abort
+syn keyword cAnsiFunction realloc malloc free
+syn keyword cAnsiFunction calloc srand rand
+syn keyword cAnsiFunction strtoull strtoul strtoll
+syn keyword cAnsiFunction strtol strtold strtof
+syn keyword cAnsiFunction strtod atoll atol
+syn keyword cAnsiFunction atoi atof perror
+syn keyword cAnsiFunction ferror feof clearerr
+syn keyword cAnsiFunction rewind ftell fsetpos
+syn keyword cAnsiFunction fseek fgetpos fwrite
+syn keyword cAnsiFunction fread ungetc puts
+syn keyword cAnsiFunction putchar putc gets
+syn keyword cAnsiFunction getchar getc fputs
+syn keyword cAnsiFunction fputc fgets fgetc
+syn keyword cAnsiFunction vsscanf vsprintf vsnprintf
+syn keyword cAnsiFunction vscanf vprintf vfscanf
+syn keyword cAnsiFunction vfprintf sscanf sprintf
+syn keyword cAnsiFunction snprintf scanf printf
+syn keyword cAnsiFunction fscanf fprintf setvbuf
+syn keyword cAnsiFunction setbuf freopen fopen
+syn keyword cAnsiFunction fflush fclose tmpnam
+syn keyword cAnsiFunction tmpfile rename remove
+syn keyword cAnsiFunction offsetof va_start va_end
+syn keyword cAnsiFunction va_copy va_arg raise signal
+syn keyword cAnsiFunction longjmp setjmp isunordered
+syn keyword cAnsiFunction islessgreater islessequal isless
+syn keyword cAnsiFunction isgreaterequal isgreater fmal
+syn keyword cAnsiFunction fmaf fma fminl
+syn keyword cAnsiFunction fminf fmin fmaxl
+syn keyword cAnsiFunction fmaxf fmax fdiml
+syn keyword cAnsiFunction fdimf fdim nextafterxl
+syn keyword cAnsiFunction nextafterxf nextafterx nextafterl
+syn keyword cAnsiFunction nextafterf nextafter nanl
+syn keyword cAnsiFunction nanf nan copysignl
+syn keyword cAnsiFunction copysignf copysign remquol
+syn keyword cAnsiFunction remquof remquo remainderl
+syn keyword cAnsiFunction remainderf remainder fmodl
+syn keyword cAnsiFunction fmodf fmod truncl
+syn keyword cAnsiFunction truncf trunc llroundl
+syn keyword cAnsiFunction llroundf llround lroundl
+syn keyword cAnsiFunction lroundf lround roundl
+syn keyword cAnsiFunction roundf round llrintl
+syn keyword cAnsiFunction llrintf llrint lrintl
+syn keyword cAnsiFunction lrintf lrint rintl
+syn keyword cAnsiFunction rintf rint nearbyintl
+syn keyword cAnsiFunction nearbyintf nearbyint floorl
+syn keyword cAnsiFunction floorf floor ceill
+syn keyword cAnsiFunction ceilf ceil tgammal
+syn keyword cAnsiFunction tgammaf tgamma lgammal
+syn keyword cAnsiFunction lgammaf lgamma erfcl
+syn keyword cAnsiFunction erfcf erfc erfl
+syn keyword cAnsiFunction erff erf sqrtl
+syn keyword cAnsiFunction sqrtf sqrt powl
+syn keyword cAnsiFunction powf pow hypotl
+syn keyword cAnsiFunction hypotf hypot fabsl
+syn keyword cAnsiFunction fabsf fabs cbrtl
+syn keyword cAnsiFunction cbrtf cbrt scalblnl
+syn keyword cAnsiFunction scalblnf scalbln scalbnl
+syn keyword cAnsiFunction scalbnf scalbn modfl
+syn keyword cAnsiFunction modff modf logbl
+syn keyword cAnsiFunction logbf logb log2l
+syn keyword cAnsiFunction log2f log2 log1pl
+syn keyword cAnsiFunction log1pf log1p log10l
+syn keyword cAnsiFunction log10f log10 logl
+syn keyword cAnsiFunction logf log ldexpl
+syn keyword cAnsiFunction ldexpf ldexp ilogbl
+syn keyword cAnsiFunction ilogbf ilogb frexpl
+syn keyword cAnsiFunction frexpf frexp expm1l
+syn keyword cAnsiFunction expm1f expm1 exp2l
+syn keyword cAnsiFunction exp2f exp2 expl
+syn keyword cAnsiFunction expf exp tanhl
+syn keyword cAnsiFunction tanhf tanh sinhl
+syn keyword cAnsiFunction sinhf sinh coshl
+syn keyword cAnsiFunction coshf cosh atanhl
+syn keyword cAnsiFunction atanhf atanh asinhl
+syn keyword cAnsiFunction asinhf asinh acoshl
+syn keyword cAnsiFunction acoshf acosh tanl
+syn keyword cAnsiFunction tanf tan sinl
+syn keyword cAnsiFunction sinf sin cosl
+syn keyword cAnsiFunction cosf cos atan2l
+syn keyword cAnsiFunction atan2f atan2 atanl
+syn keyword cAnsiFunction atanf atan asinl
+syn keyword cAnsiFunction asinf asin acosl
+syn keyword cAnsiFunction acosf acos signbit
+syn keyword cAnsiFunction isnormal isnan isinf
+syn keyword cAnsiFunction isfinite fpclassify localeconv
+syn keyword cAnsiFunction setlocale wcstoumax wcstoimax
+syn keyword cAnsiFunction strtoumax strtoimax feupdateenv
+syn keyword cAnsiFunction fesetenv feholdexcept fegetenv
+syn keyword cAnsiFunction fesetround fegetround fetestexcept
+syn keyword cAnsiFunction fesetexceptflag feraiseexcept fegetexceptflag
+syn keyword cAnsiFunction feclearexcept toupper tolower
+syn keyword cAnsiFunction isxdigit isupper isspace
+syn keyword cAnsiFunction ispunct isprint islower
+syn keyword cAnsiFunction isgraph isdigit iscntrl
+syn keyword cAnsiFunction isalpha isalnum creall
+syn keyword cAnsiFunction crealf creal cprojl
+syn keyword cAnsiFunction cprojf cproj conjl
+syn keyword cAnsiFunction conjf conj cimagl
+syn keyword cAnsiFunction cimagf cimag cargl
+syn keyword cAnsiFunction cargf carg csqrtl
+syn keyword cAnsiFunction csqrtf csqrt cpowl
+syn keyword cAnsiFunction cpowf cpow cabsl
+syn keyword cAnsiFunction cabsf cabs clogl
+syn keyword cAnsiFunction clogf clog cexpl
+syn keyword cAnsiFunction cexpf cexp ctanhl
+syn keyword cAnsiFunction ctanhf ctanh csinhl
+syn keyword cAnsiFunction csinhf csinh ccoshl
+syn keyword cAnsiFunction ccoshf ccosh catanhl
+syn keyword cAnsiFunction catanhf catanh casinhl
+syn keyword cAnsiFunction casinhf casinh cacoshl
+syn keyword cAnsiFunction cacoshf cacosh ctanl
+syn keyword cAnsiFunction ctanf ctan csinl
+syn keyword cAnsiFunction csinf csin ccosl
+syn keyword cAnsiFunction ccosf ccos catanl
+syn keyword cAnsiFunction catanf catan casinl
+syn keyword cAnsiFunction casinf casin cacosl
+syn keyword cAnsiFunction cacosf cacos assert
+syn keyword cAnsiFunction UINTMAX_C INTMAX_C UINT64_C
+syn keyword cAnsiFunction UINT32_C UINT16_C UINT8_C
+syn keyword cAnsiFunction INT64_C INT32_C INT16_C INT8_C
+
+" Common ANSI-standard Names
+syn keyword cAnsiName PRId8 PRIi16 PRIo32 PRIu64
+syn keyword cAnsiName PRId16 PRIi32 PRIo64 PRIuLEAST8
+syn keyword cAnsiName PRId32 PRIi64 PRIoLEAST8 PRIuLEAST16
+syn keyword cAnsiName PRId64 PRIiLEAST8 PRIoLEAST16 PRIuLEAST32
+syn keyword cAnsiName PRIdLEAST8 PRIiLEAST16 PRIoLEAST32 PRIuLEAST64
+syn keyword cAnsiName PRIdLEAST16 PRIiLEAST32 PRIoLEAST64 PRIuFAST8
+syn keyword cAnsiName PRIdLEAST32 PRIiLEAST64 PRIoFAST8 PRIuFAST16
+syn keyword cAnsiName PRIdLEAST64 PRIiFAST8 PRIoFAST16 PRIuFAST32
+syn keyword cAnsiName PRIdFAST8 PRIiFAST16 PRIoFAST32 PRIuFAST64
+syn keyword cAnsiName PRIdFAST16 PRIiFAST32 PRIoFAST64 PRIuMAX
+syn keyword cAnsiName PRIdFAST32 PRIiFAST64 PRIoMAX PRIuPTR
+syn keyword cAnsiName PRIdFAST64 PRIiMAX PRIoPTR PRIx8
+syn keyword cAnsiName PRIdMAX PRIiPTR PRIu8 PRIx16
+syn keyword cAnsiName PRIdPTR PRIo8 PRIu16 PRIx32
+syn keyword cAnsiName PRIi8 PRIo16 PRIu32 PRIx64
+
+syn keyword cAnsiName PRIxLEAST8 SCNd8 SCNiFAST32 SCNuLEAST32
+syn keyword cAnsiName PRIxLEAST16 SCNd16 SCNiFAST64 SCNuLEAST64
+syn keyword cAnsiName PRIxLEAST32 SCNd32 SCNiMAX SCNuFAST8
+syn keyword cAnsiName PRIxLEAST64 SCNd64 SCNiPTR SCNuFAST16
+syn keyword cAnsiName PRIxFAST8 SCNdLEAST8 SCNo8 SCNuFAST32
+syn keyword cAnsiName PRIxFAST16 SCNdLEAST16 SCNo16 SCNuFAST64
+syn keyword cAnsiName PRIxFAST32 SCNdLEAST32 SCNo32 SCNuMAX
+syn keyword cAnsiName PRIxFAST64 SCNdLEAST64 SCNo64 SCNuPTR
+syn keyword cAnsiName PRIxMAX SCNdFAST8 SCNoLEAST8 SCNx8
+syn keyword cAnsiName PRIxPTR SCNdFAST16 SCNoLEAST16 SCNx16
+syn keyword cAnsiName PRIX8 SCNdFAST32 SCNoLEAST32 SCNx32
+syn keyword cAnsiName PRIX16 SCNdFAST64 SCNoLEAST64 SCNx64
+syn keyword cAnsiName PRIX32 SCNdMAX SCNoFAST8 SCNxLEAST8
+syn keyword cAnsiName PRIX64 SCNdPTR SCNoFAST16 SCNxLEAST16
+syn keyword cAnsiName PRIXLEAST8 SCNi8 SCNoFAST32 SCNxLEAST32
+syn keyword cAnsiName PRIXLEAST16 SCNi16 SCNoFAST64 SCNxLEAST64
+syn keyword cAnsiName PRIXLEAST32 SCNi32 SCNoMAX SCNxFAST8
+syn keyword cAnsiName PRIXLEAST64 SCNi64 SCNoPTR SCNxFAST16
+syn keyword cAnsiName PRIXFAST8 SCNiLEAST8 SCNu8 SCNxFAST32
+syn keyword cAnsiName PRIXFAST16 SCNiLEAST16 SCNu16 SCNxFAST64
+syn keyword cAnsiName PRIXFAST32 SCNiLEAST32 SCNu32 SCNxMAX
+syn keyword cAnsiName PRIXFAST64 SCNiLEAST64 SCNu64 SCNxPTR
+syn keyword cAnsiName PRIXMAX SCNiFAST8 SCNuLEAST8
+syn keyword cAnsiName PRIXPTR SCNiFAST16 SCNuLEAST16
+
+syn keyword cAnsiName errno environ
+
+syn keyword cAnsiName STDC CX_LIMITED_RANGE
+syn keyword cAnsiName STDC FENV_ACCESS
+syn keyword cAnsiName STDC FP_CONTRACT
+
+syn keyword cAnsiName AF_INET SOCK_STREAM INADDR_ANY AF_INET
+syn keyword cAnsiName SOL_SOCKET SO_REUSEPORT SO_REUSEADDR
+syn keyword cAnsiName SO_RCVTIMEO IPPROTO_TCP TCP_NODELAY
+syn keyword cAnsiName SOCK_DGRAM POLLIN
+
+syn keyword cAnsiName and bitor not_eq xor
+syn keyword cAnsiName and_eq compl or xor_eq
+syn keyword cAnsiName bitand not or_eq
+
+hi def link cAnsiFunction cFunction
+hi def link cAnsiName cIdentifier
+
+" Operators
+syn match cOperator "\(<<\|>>\|[-+*/%&^|<>!=]\)="
+syn match cOperator "<<\|>>\|&&\|||\|++\|--\|->"
+syn match cOperator "[.!~*&%<>^|=,+-]"
+syn match cOperator "/[^/*=]"me=e-1
+syn match cOperator "/$"
+syn match cOperator "&&\|||"
+syn match cOperator "[][]"
+
+" Preprocs
+syn keyword cDefined defined contained containedin=cDefine
+hi def link cDefined cDefine
+
+" Functions
+syn match cUserFunction "\<\h\w*\>\(\s\|\n\)*("me=e-1 contains=cType,cDelimiter,cDefine
+syn match cUserFunctionPointer "(\s*\*\s*\h\w*\s*)\(\s\|\n\)*(" contains=cDelimiter,cOperator
+
+hi def link cUserFunction cFunction
+hi def link cUserFunctionPointer cFunction
+
+" Delimiters
+syn match cDelimiter "[();\\]"
+" foldmethod=syntax fix, courtesy of Ivan Freitas
+syn match cBraces display "[{}]"
+
+
+" Booleans
+syn keyword cBoolean true false TRUE FALSE
+
+
+" Links
+hi def link cFunction Function
+hi def link cIdentifier Identifier
+hi def link cDelimiter Delimiter
+" foldmethod=syntax fix, courtesy of Ivan Freitas
+hi def link cBraces Delimiter
+hi def link cBoolean Boolean
+
+syn match cPreprocessor "#.*$"
+syn match cTypedef "int" containedin=ALL Contains=ALL
diff --git a/vim/.vim/syntax/haskell.vim b/vim/.vim/syntax/haskell.vim
new file mode 100644
index 0000000..f59a766
--- /dev/null
+++ b/vim/.vim/syntax/haskell.vim
@@ -0,0 +1,208 @@
+" syntax highlighting for haskell
+"
+" Heavily modified version of the haskell syntax
+" highlighter to support haskell.
+"
+" author: raichoo (raichoo@googlemail.com)
+
+if version < 600
+ syn clear
+elseif exists("b:current_syntax")
+ finish
+endif
+
+if get(g:, 'haskell_backpack', 0)
+ syn keyword haskellBackpackStructure unit signature
+ syn keyword haskellBackpackDependency dependency
+endif
+
+syn spell notoplevel
+syn match haskellRecordField contained containedin=haskellBlock
+ \ "[_a-z][a-zA-Z0-9_']*\(,\s*[_a-z][a-zA-Z0-9_']*\)*\_s\+::\_s"
+ \ contains=
+ \ haskellIdentifier,
+ \ haskellOperators,
+ \ haskellSeparator,
+ \ haskellParens
+syn match haskellTypeSig
+ \ "^\s*\(where\s\+\|let\s\+\|default\s\+\)\?[_a-z][a-zA-Z0-9_']*#\?\(,\s*[_a-z][a-zA-Z0-9_']*#\?\)*\_s\+::\_s"
+ \ contains=
+ \ haskellWhere,
+ \ haskellLet,
+ \ haskellDefault,
+ \ haskellIdentifier,
+ \ haskellOperators,
+ \ haskellSeparator,
+ \ haskellParens
+syn keyword haskellWhere where
+syn keyword haskellLet let
+syn match HaskellDerive "\<deriving\>\(\s\+\<\(anyclass\|instance\|newtype\|stock\)\>\)\?"
+syn keyword haskellDeclKeyword module class instance newtype in
+syn match haskellDecl "\<\(type\|data\)\>\s\+\(\<family\>\)\?"
+syn keyword haskellDefault default
+syn keyword haskellImportKeywords import qualified safe as hiding contained
+syn keyword haskellForeignKeywords foreign export import ccall safe unsafe interruptible capi prim contained
+syn region haskellForeignImport start="\<foreign\>" end="\_s\+::\s" keepend
+ \ contains=
+ \ haskellString,
+ \ haskellOperators,
+ \ haskellForeignKeywords,
+ \ haskellIdentifier
+syn match haskellImport "^\s*\<import\>\s\+\(\<safe\>\s\+\)\?\(\<qualified\>\s\+\)\?.\+\(\s\+\<as\>\s\+.\+\)\?\(\s\+\<hiding\>\)\?"
+ \ contains=
+ \ haskellParens,
+ \ haskellOperators,
+ \ haskellImportKeywords,
+ \ haskellType,
+ \ haskellLineComment,
+ \ haskellBlockComment,
+ \ haskellString,
+ \ haskellPragma
+syn keyword haskellKeyword do case of
+if get(g:, 'haskell_enable_static_pointers', 0)
+ syn keyword haskellStatic static
+endif
+syn keyword haskellConditional if then else
+syn match haskellNumber "\<[0-9]\+\>\|\<0[xX][0-9a-fA-F]\+\>\|\<0[oO][0-7]\+\>\|\<0[bB][10]\+\>"
+syn match haskellFloat "\<[0-9]\+\.[0-9]\+\([eE][-+]\=[0-9]\+\)\=\>"
+syn match haskellSeparator "[,;]"
+syn region haskellParens matchgroup=haskellDelimiter start="(" end=")" contains=TOP,haskellTypeSig,@Spell
+syn region haskellBrackets matchgroup=haskellDelimiter start="\[" end="]" contains=TOP,haskellTypeSig,@Spell
+syn region haskellBlock matchgroup=haskellDelimiter start="{" end="}" contains=TOP,@Spell
+syn keyword haskellInfix infix infixl infixr
+syn keyword haskellBottom undefined error
+syn match haskellOperators "[-!#$%&\*\+/<=>\?@\\^|~:.]\+\|\<_\>"
+syn match haskellQuote "\<'\+" contained
+syn match haskellQuotedType "[A-Z][a-zA-Z0-9_']*\>" contained
+syn region haskellQuoted start="\<'\+" end="\>"
+ \ contains=
+ \ haskellType,
+ \ haskellQuote,
+ \ haskellQuotedType,
+ \ haskellSeparator,
+ \ haskellParens,
+ \ haskellOperators,
+ \ haskellIdentifier
+syn match haskellLineComment "---*\([^-!#$%&\*\+./<=>\?@\\^|~].*\)\?$"
+ \ contains=
+ \ haskellTodo,
+ \ @Spell
+syn match haskellBacktick "`[A-Za-z_][A-Za-z0-9_\.']*#\?`"
+syn region haskellString start=+"+ skip=+\\\\\|\\"+ end=+"+
+ \ contains=@Spell
+syn match haskellIdentifier "[_a-z][a-zA-z0-9_']*" contained
+syn match haskellChar "\<'[^'\\]'\|'\\.'\|'\\u[0-9a-fA-F]\{4}'\>"
+syn match haskellType "\<[A-Z][a-zA-Z0-9_']*\>"
+syn region haskellBlockComment start="{-" end="-}"
+ \ contains=
+ \ haskellBlockComment,
+ \ haskellTodo,
+ \ @Spell
+syn region haskellPragma start="{-#" end="#-}"
+syn region haskellLiquid start="{-@" end="@-}"
+syn match haskellPreProc "^#.*$"
+syn keyword haskellTodo TODO FIXME contained
+" Treat a shebang line at the start of the file as a comment
+syn match haskellShebang "\%^#!.*$"
+if !get(g:, 'haskell_disable_TH', 0)
+ syn match haskellQuasiQuoted "." containedin=haskellQuasiQuote contained
+ syn region haskellQuasiQuote matchgroup=haskellTH start="\[[_a-zA-Z][a-zA-z0-9._']*|" end="|\]"
+ syn region haskellTHBlock matchgroup=haskellTH start="\[\(d\|t\|p\)\?|" end="|]" contains=TOP
+ syn region haskellTHDoubleBlock matchgroup=haskellTH start="\[||" end="||]" contains=TOP
+endif
+if get(g:, 'haskell_enable_typeroles', 0)
+ syn keyword haskellTypeRoles phantom representational nominal contained
+ syn region haskellTypeRoleBlock matchgroup=haskellTypeRoles start="type\s\+role" end="$" keepend
+ \ contains=
+ \ haskellType,
+ \ haskellTypeRoles
+endif
+if get(g:, 'haskell_enable_quantification', 0)
+ syn keyword haskellForall forall
+endif
+if get(g:, 'haskell_enable_recursivedo', 0)
+ syn keyword haskellRecursiveDo mdo rec
+endif
+if get(g:, 'haskell_enable_arrowsyntax', 0)
+ syn keyword haskellArrowSyntax proc
+endif
+if get(g:, 'haskell_enable_pattern_synonyms', 0)
+ syn keyword haskellPatternKeyword pattern
+endif
+
+highlight def link haskellBottom Macro
+highlight def link haskellTH Boolean
+highlight def link haskellIdentifier Identifier
+highlight def link haskellForeignKeywords Structure
+highlight def link haskellKeyword Keyword
+highlight def link haskellDefault Keyword
+highlight def link haskellConditional Conditional
+highlight def link haskellNumber Number
+highlight def link haskellFloat Float
+highlight def link haskellSeparator Delimiter
+highlight def link haskellDelimiter Delimiter
+highlight def link haskellInfix Keyword
+highlight def link haskellOperators Operator
+highlight def link haskellQuote Operator
+highlight def link haskellShebang Comment
+highlight def link haskellLineComment Comment
+highlight def link haskellBlockComment Comment
+highlight def link haskellPragma SpecialComment
+highlight def link haskellLiquid SpecialComment
+highlight def link haskellString String
+highlight def link haskellChar String
+highlight def link haskellBacktick Operator
+highlight def link haskellQuasiQuoted String
+highlight def link haskellTodo Todo
+highlight def link haskellPreProc PreProc
+highlight def link haskellAssocType Type
+highlight def link haskellQuotedType Type
+highlight def link haskellType Type
+highlight def link haskellImportKeywords Include
+if get(g:, 'haskell_classic_highlighting', 0)
+ highlight def link haskellDeclKeyword Keyword
+ highlight def link HaskellDerive Keyword
+ highlight def link haskellDecl Keyword
+ highlight def link haskellWhere Keyword
+ highlight def link haskellLet Keyword
+else
+ highlight def link haskellDeclKeyword Structure
+ highlight def link HaskellDerive Structure
+ highlight def link haskellDecl Structure
+ highlight def link haskellWhere Structure
+ highlight def link haskellLet Structure
+endif
+
+if get(g:, 'haskell_enable_quantification', 0)
+ highlight def link haskellForall Operator
+endif
+if get(g:, 'haskell_enable_recursivedo', 0)
+ highlight def link haskellRecursiveDo Keyword
+endif
+if get(g:, 'haskell_enable_arrowsyntax', 0)
+ highlight def link haskellArrowSyntax Keyword
+endif
+if get(g:, 'haskell_enable_static_pointers', 0)
+ highlight def link haskellStatic Keyword
+endif
+if get(g:, 'haskell_classic_highlighting', 0)
+ if get(g:, 'haskell_enable_pattern_synonyms', 0)
+ highlight def link haskellPatternKeyword Keyword
+ endif
+ if get(g:, 'haskell_enable_typeroles', 0)
+ highlight def link haskellTypeRoles Keyword
+ endif
+else
+ if get(g:, 'haskell_enable_pattern_synonyms', 0)
+ highlight def link haskellPatternKeyword Structure
+ endif
+ if get(g:, 'haskell_enable_typeroles', 0)
+ highlight def link haskellTypeRoles Structure
+ endif
+endif
+
+if get(g:, 'haskell_backpack', 0)
+ highlight def link haskellBackpackStructure Structure
+ highlight def link haskellBackpackDependency Include
+endif
+let b:current_syntax = "haskell"