diff options
-rw-r--r-- | vim/.vim/after/ftplugin/nroff.vim | 1 | ||||
-rw-r--r-- | vim/.vim/after/ftplugin/tex.vim~HEAD | 2 | ||||
-rw-r--r-- | vim/.vim/after/ftplugin/tex.vim~HEAD_0 | 2 | ||||
-rw-r--r-- | vim/.vim/ftplugin/nroff.vim | 2 | ||||
-rw-r--r-- | vim/.vim/syntax/c.vim | 286 | ||||
-rw-r--r-- | vim/.vim/syntax/haskell.vim | 208 | ||||
-rw-r--r-- | vim/.vimrc | 2 |
7 files changed, 499 insertions, 4 deletions
diff --git a/vim/.vim/after/ftplugin/nroff.vim b/vim/.vim/after/ftplugin/nroff.vim index 031c8d9..87f4512 100644 --- a/vim/.vim/after/ftplugin/nroff.vim +++ b/vim/.vim/after/ftplugin/nroff.vim @@ -1,2 +1 @@ set spell -autocmd BufWritePost * silent! !grap % | pic | tbl | eqn | troff -ms | grops > %:r.ps diff --git a/vim/.vim/after/ftplugin/tex.vim~HEAD b/vim/.vim/after/ftplugin/tex.vim~HEAD new file mode 100644 index 0000000..95e50d4 --- /dev/null +++ b/vim/.vim/after/ftplugin/tex.vim~HEAD @@ -0,0 +1,2 @@ +set spell +au BufWritePost * silent! execute "!pdflatex %" | redraw! diff --git a/vim/.vim/after/ftplugin/tex.vim~HEAD_0 b/vim/.vim/after/ftplugin/tex.vim~HEAD_0 new file mode 100644 index 0000000..95e50d4 --- /dev/null +++ b/vim/.vim/after/ftplugin/tex.vim~HEAD_0 @@ -0,0 +1,2 @@ +set spell +au BufWritePost * silent! execute "!pdflatex %" | redraw! diff --git a/vim/.vim/ftplugin/nroff.vim b/vim/.vim/ftplugin/nroff.vim index fd5afa6..87f4512 100644 --- a/vim/.vim/ftplugin/nroff.vim +++ b/vim/.vim/ftplugin/nroff.vim @@ -1,3 +1 @@ set spell - -autocmd BufWritePost * silent! execute "!grap % | pic | tbl | eqn | troff -ms | grops > %:r.ps" | redraw! 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" @@ -1,4 +1,4 @@ -set number +set number relativenumber syntax enable set tabstop=8 set cursorline |