]> git.rmz.io Git - dotfiles.git/commitdiff
vim: add extended c syntax
authorSamir Benmendil <samir.benmendil@gmail.com>
Sun, 19 Apr 2015 02:55:10 +0000 (03:55 +0100)
committerSamir Benmendil <samir.benmendil@gmail.com>
Sun, 19 Apr 2015 02:55:10 +0000 (03:55 +0100)
vim/after/syntax/c.vim [new file with mode: 0644]

diff --git a/vim/after/syntax/c.vim b/vim/after/syntax/c.vim
new file mode 100644 (file)
index 0000000..eb78d8d
--- /dev/null
@@ -0,0 +1,279 @@
+" Vim syntax file
+" Language:    C Additions
+" Maintainer:  Mikhail Wolfson <mywolfson@gmail.com>
+" URL: http://www.vim.org/scripts/script.php?script_id=3064
+" 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       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
+