2 changed files with 0 additions and 583 deletions
@ -1,265 +0,0 @@ |
|||||||
" Vim syntax file |
|
||||||
" Language: C Additions |
|
||||||
" Maintainer: Mikhail Wolfson <mywolfson@gmail.com> |
|
||||||
" URL: http://web.mit.edu/wolfsonm |
|
||||||
" Last Change: 2010 Apr 13 |
|
||||||
" Version: 0.1 |
|
||||||
" |
|
||||||
" Changelog: |
|
||||||
" 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 |
|
||||||
|
|
||||||
" 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 "[][]" |
|
||||||
|
|
||||||
" Functions |
|
||||||
syn match cUserFunction "\<\h\w*\>\(\s\|\n\)*("me=e-1 contains=cType |
|
||||||
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 "[(){};\\]" |
|
||||||
|
|
||||||
" Booleans |
|
||||||
syn keyword cBoolean true false TRUE FALSE |
|
||||||
|
|
||||||
|
|
||||||
" Links |
|
||||||
hi def link cDelimiter Delimiter |
|
||||||
hi def link cAnsiFunction Function |
|
||||||
hi def link cAnsiName Identifier |
|
||||||
hi def link cBoolean Boolean |
|
||||||
|
|
||||||
|
|
@ -1,318 +0,0 @@ |
|||||||
" Language: Colored CSS Color Preview |
|
||||||
" Maintainer: Niklas Hofer <niklas+vim@lanpartei.de> |
|
||||||
" URL: svn://lanpartei.de/vimrc/after/syntax/css.vim |
|
||||||
" Last Change: 2008 Feb 12 |
|
||||||
" Licence: No Warranties. Do whatever you want with this. But please tell me! |
|
||||||
" Version: 0.6 |
|
||||||
|
|
||||||
function! s:FGforBG(bg) |
|
||||||
" takes a 6hex color code and returns a matching color that is visible |
|
||||||
let pure = substitute(a:bg,'^#','','') |
|
||||||
let r = eval('0x'.pure[0].pure[1]) |
|
||||||
let g = eval('0x'.pure[2].pure[3]) |
|
||||||
let b = eval('0x'.pure[4].pure[5]) |
|
||||||
if r*30 + g*59 + b*11 > 12000 |
|
||||||
return '#000000' |
|
||||||
else |
|
||||||
return '#ffffff' |
|
||||||
end |
|
||||||
endfunction |
|
||||||
|
|
||||||
function! s:SetMatcher(clr,pat) |
|
||||||
let group = 'cssColor'.substitute(a:clr,'^#','','') |
|
||||||
redir => s:currentmatch |
|
||||||
silent! exe 'syn list '.group |
|
||||||
redir END |
|
||||||
if s:currentmatch !~ a:pat.'\/' |
|
||||||
exe 'syn match '.group.' /'.a:pat.'\>/ contained' |
|
||||||
exe 'syn cluster cssColors add='.group |
|
||||||
if has('gui_running') |
|
||||||
exe 'hi '.group.' guifg='.s:FGforBG(a:clr) |
|
||||||
exe 'hi '.group.' guibg='.a:clr |
|
||||||
elseif &t_Co == 256 |
|
||||||
exe 'hi '.group.' ctermfg='.s:Rgb2xterm(s:FGforBG(a:clr)) |
|
||||||
exe 'hi '.group.' ctermbg='.s:Rgb2xterm(a:clr) |
|
||||||
endif |
|
||||||
return 1 |
|
||||||
else |
|
||||||
return 0 |
|
||||||
endif |
|
||||||
endfunction |
|
||||||
|
|
||||||
"" the 6 value iterations in the xterm color cube |
|
||||||
let s:valuerange = [ 0x00, 0x5F, 0x87, 0xAF, 0xD7, 0xFF ] |
|
||||||
" |
|
||||||
"" 16 basic colors |
|
||||||
let s:basic16 = [ [ 0x00, 0x00, 0x00 ], [ 0xCD, 0x00, 0x00 ], [ 0x00, 0xCD, 0x00 ], [ 0xCD, 0xCD, 0x00 ], [ 0x00, 0x00, 0xEE ], [ 0xCD, 0x00, 0xCD ], [ 0x00, 0xCD, 0xCD ], [ 0xE5, 0xE5, 0xE5 ], [ 0x7F, 0x7F, 0x7F ], [ 0xFF, 0x00, 0x00 ], [ 0x00, 0xFF, 0x00 ], [ 0xFF, 0xFF, 0x00 ], [ 0x5C, 0x5C, 0xFF ], [ 0xFF, 0x00, 0xFF ], [ 0x00, 0xFF, 0xFF ], [ 0xFF, 0xFF, 0xFF ] ] |
|
||||||
: |
|
||||||
function! s:Xterm2rgb(color) |
|
||||||
" 16 basic colors |
|
||||||
let r=0 |
|
||||||
let g=0 |
|
||||||
let b=0 |
|
||||||
if a:color<16 |
|
||||||
let r = s:basic16[a:color][0] |
|
||||||
let g = s:basic16[a:color][1] |
|
||||||
let b = s:basic16[a:color][2] |
|
||||||
endif |
|
||||||
|
|
||||||
" color cube color |
|
||||||
if a:color>=16 && a:color<=232 |
|
||||||
let color=a:color-16 |
|
||||||
let r = s:valuerange[(color/36)%6] |
|
||||||
let g = s:valuerange[(color/6)%6] |
|
||||||
let b = s:valuerange[color%6] |
|
||||||
endif |
|
||||||
|
|
||||||
" gray tone |
|
||||||
if a:color>=233 && a:color<=253 |
|
||||||
let r=8+(a:color-232)*0x0a |
|
||||||
let g=r |
|
||||||
let b=r |
|
||||||
endif |
|
||||||
let rgb=[r,g,b] |
|
||||||
return rgb |
|
||||||
endfunction |
|
||||||
|
|
||||||
function! s:pow(x, n) |
|
||||||
let x = a:x |
|
||||||
for i in range(a:n-1) |
|
||||||
let x = x*a:x |
|
||||||
return x |
|
||||||
endfunction |
|
||||||
|
|
||||||
let s:colortable=[] |
|
||||||
for c in range(0, 254) |
|
||||||
let color = s:Xterm2rgb(c) |
|
||||||
call add(s:colortable, color) |
|
||||||
endfor |
|
||||||
|
|
||||||
" selects the nearest xterm color for a rgb value like #FF0000 |
|
||||||
function! s:Rgb2xterm(color) |
|
||||||
let best_match=0 |
|
||||||
let smallest_distance = 10000000000 |
|
||||||
let r = eval('0x'.a:color[1].a:color[2]) |
|
||||||
let g = eval('0x'.a:color[3].a:color[4]) |
|
||||||
let b = eval('0x'.a:color[5].a:color[6]) |
|
||||||
for c in range(0,254) |
|
||||||
let d = s:pow(s:colortable[c][0]-r,2) + s:pow(s:colortable[c][1]-g,2) + s:pow(s:colortable[c][2]-b,2) |
|
||||||
if d<smallest_distance |
|
||||||
let smallest_distance = d |
|
||||||
let best_match = c |
|
||||||
endif |
|
||||||
endfor |
|
||||||
return best_match |
|
||||||
endfunction |
|
||||||
|
|
||||||
function! s:SetNamedColor(clr,name) |
|
||||||
let group = 'cssColor'.substitute(a:clr,'^#','','') |
|
||||||
exe 'syn keyword '.group.' '.a:name.' contained' |
|
||||||
exe 'syn cluster cssColors add='.group |
|
||||||
if has('gui_running') |
|
||||||
exe 'hi '.group.' guifg='.s:FGforBG(a:clr) |
|
||||||
exe 'hi '.group.' guibg='.a:clr |
|
||||||
elseif &t_Co == 256 |
|
||||||
exe 'hi '.group.' ctermfg='.s:Rgb2xterm(s:FGforBG(a:clr)) |
|
||||||
exe 'hi '.group.' ctermbg='.s:Rgb2xterm(a:clr) |
|
||||||
endif |
|
||||||
return 23 |
|
||||||
endfunction |
|
||||||
|
|
||||||
function! s:PreviewCSSColorInLine(where) |
|
||||||
" TODO use cssColor matchdata |
|
||||||
let foundcolor = matchstr( getline(a:where), '#[0-9A-Fa-f]\{3,6\}\>' ) |
|
||||||
let color = '' |
|
||||||
if foundcolor != '' |
|
||||||
if foundcolor =~ '#\x\{6}$' |
|
||||||
let color = foundcolor |
|
||||||
elseif foundcolor =~ '#\x\{3}$' |
|
||||||
let color = substitute(foundcolor, '\(\x\)\(\x\)\(\x\)', '\1\1\2\2\3\3', '') |
|
||||||
else |
|
||||||
let color = '' |
|
||||||
endif |
|
||||||
if color != '' |
|
||||||
return s:SetMatcher(color,foundcolor) |
|
||||||
else |
|
||||||
return 0 |
|
||||||
endif |
|
||||||
else |
|
||||||
return 0 |
|
||||||
endif |
|
||||||
endfunction |
|
||||||
|
|
||||||
if has("gui_running") || &t_Co==256 |
|
||||||
" HACK modify cssDefinition to add @cssColors to its contains |
|
||||||
redir => s:olddef |
|
||||||
silent! syn list cssDefinition |
|
||||||
redir END |
|
||||||
if s:olddef != '' |
|
||||||
let s:b = strridx(s:olddef,'matchgroup') |
|
||||||
if s:b != -1 |
|
||||||
exe 'syn region cssDefinition '.strpart(s:olddef,s:b).',@cssColors' |
|
||||||
endif |
|
||||||
endif |
|
||||||
|
|
||||||
" w3c Colors |
|
||||||
let i = s:SetNamedColor('#800000', 'maroon') |
|
||||||
let i = s:SetNamedColor('#ff0000', 'red') |
|
||||||
let i = s:SetNamedColor('#ffA500', 'orange') |
|
||||||
let i = s:SetNamedColor('#ffff00', 'yellow') |
|
||||||
let i = s:SetNamedColor('#808000', 'olive') |
|
||||||
let i = s:SetNamedColor('#800080', 'purple') |
|
||||||
let i = s:SetNamedColor('#ff00ff', 'fuchsia') |
|
||||||
let i = s:SetNamedColor('#ffffff', 'white') |
|
||||||
let i = s:SetNamedColor('#00ff00', 'lime') |
|
||||||
let i = s:SetNamedColor('#008000', 'green') |
|
||||||
let i = s:SetNamedColor('#000080', 'navy') |
|
||||||
let i = s:SetNamedColor('#0000ff', 'blue') |
|
||||||
let i = s:SetNamedColor('#00ffff', 'aqua') |
|
||||||
let i = s:SetNamedColor('#008080', 'teal') |
|
||||||
let i = s:SetNamedColor('#000000', 'black') |
|
||||||
let i = s:SetNamedColor('#c0c0c0', 'silver') |
|
||||||
let i = s:SetNamedColor('#808080', 'gray') |
|
||||||
|
|
||||||
" extra colors |
|
||||||
let i = s:SetNamedColor('#F0F8FF','AliceBlue') |
|
||||||
let i = s:SetNamedColor('#FAEBD7','AntiqueWhite') |
|
||||||
let i = s:SetNamedColor('#7FFFD4','Aquamarine') |
|
||||||
let i = s:SetNamedColor('#F0FFFF','Azure') |
|
||||||
let i = s:SetNamedColor('#F5F5DC','Beige') |
|
||||||
let i = s:SetNamedColor('#FFE4C4','Bisque') |
|
||||||
let i = s:SetNamedColor('#FFEBCD','BlanchedAlmond') |
|
||||||
let i = s:SetNamedColor('#8A2BE2','BlueViolet') |
|
||||||
let i = s:SetNamedColor('#A52A2A','Brown') |
|
||||||
let i = s:SetNamedColor('#DEB887','BurlyWood') |
|
||||||
let i = s:SetNamedColor('#5F9EA0','CadetBlue') |
|
||||||
let i = s:SetNamedColor('#7FFF00','Chartreuse') |
|
||||||
let i = s:SetNamedColor('#D2691E','Chocolate') |
|
||||||
let i = s:SetNamedColor('#FF7F50','Coral') |
|
||||||
let i = s:SetNamedColor('#6495ED','CornflowerBlue') |
|
||||||
let i = s:SetNamedColor('#FFF8DC','Cornsilk') |
|
||||||
let i = s:SetNamedColor('#DC143C','Crimson') |
|
||||||
let i = s:SetNamedColor('#00FFFF','Cyan') |
|
||||||
let i = s:SetNamedColor('#00008B','DarkBlue') |
|
||||||
let i = s:SetNamedColor('#008B8B','DarkCyan') |
|
||||||
let i = s:SetNamedColor('#B8860B','DarkGoldenRod') |
|
||||||
let i = s:SetNamedColor('#A9A9A9','DarkGray') |
|
||||||
let i = s:SetNamedColor('#A9A9A9','DarkGrey') |
|
||||||
let i = s:SetNamedColor('#006400','DarkGreen') |
|
||||||
let i = s:SetNamedColor('#BDB76B','DarkKhaki') |
|
||||||
let i = s:SetNamedColor('#8B008B','DarkMagenta') |
|
||||||
let i = s:SetNamedColor('#556B2F','DarkOliveGreen') |
|
||||||
let i = s:SetNamedColor('#FF8C00','Darkorange') |
|
||||||
let i = s:SetNamedColor('#9932CC','DarkOrchid') |
|
||||||
let i = s:SetNamedColor('#8B0000','DarkRed') |
|
||||||
let i = s:SetNamedColor('#E9967A','DarkSalmon') |
|
||||||
let i = s:SetNamedColor('#8FBC8F','DarkSeaGreen') |
|
||||||
let i = s:SetNamedColor('#483D8B','DarkSlateBlue') |
|
||||||
let i = s:SetNamedColor('#2F4F4F','DarkSlateGray') |
|
||||||
let i = s:SetNamedColor('#2F4F4F','DarkSlateGrey') |
|
||||||
let i = s:SetNamedColor('#00CED1','DarkTurquoise') |
|
||||||
let i = s:SetNamedColor('#9400D3','DarkViolet') |
|
||||||
let i = s:SetNamedColor('#FF1493','DeepPink') |
|
||||||
let i = s:SetNamedColor('#00BFFF','DeepSkyBlue') |
|
||||||
let i = s:SetNamedColor('#696969','DimGray') |
|
||||||
let i = s:SetNamedColor('#696969','DimGrey') |
|
||||||
let i = s:SetNamedColor('#1E90FF','DodgerBlue') |
|
||||||
let i = s:SetNamedColor('#B22222','FireBrick') |
|
||||||
let i = s:SetNamedColor('#FFFAF0','FloralWhite') |
|
||||||
let i = s:SetNamedColor('#228B22','ForestGreen') |
|
||||||
let i = s:SetNamedColor('#DCDCDC','Gainsboro') |
|
||||||
let i = s:SetNamedColor('#F8F8FF','GhostWhite') |
|
||||||
let i = s:SetNamedColor('#FFD700','Gold') |
|
||||||
let i = s:SetNamedColor('#DAA520','GoldenRod') |
|
||||||
let i = s:SetNamedColor('#808080','Grey') |
|
||||||
let i = s:SetNamedColor('#ADFF2F','GreenYellow') |
|
||||||
let i = s:SetNamedColor('#F0FFF0','HoneyDew') |
|
||||||
let i = s:SetNamedColor('#FF69B4','HotPink') |
|
||||||
let i = s:SetNamedColor('#CD5C5C','IndianRed') |
|
||||||
let i = s:SetNamedColor('#4B0082','Indigo') |
|
||||||
let i = s:SetNamedColor('#FFFFF0','Ivory') |
|
||||||
let i = s:SetNamedColor('#F0E68C','Khaki') |
|
||||||
let i = s:SetNamedColor('#E6E6FA','Lavender') |
|
||||||
let i = s:SetNamedColor('#FFF0F5','LavenderBlush') |
|
||||||
let i = s:SetNamedColor('#7CFC00','LawnGreen') |
|
||||||
let i = s:SetNamedColor('#FFFACD','LemonChiffon') |
|
||||||
let i = s:SetNamedColor('#ADD8E6','LightBlue') |
|
||||||
let i = s:SetNamedColor('#F08080','LightCoral') |
|
||||||
let i = s:SetNamedColor('#E0FFFF','LightCyan') |
|
||||||
let i = s:SetNamedColor('#FAFAD2','LightGoldenRodYellow') |
|
||||||
let i = s:SetNamedColor('#D3D3D3','LightGray') |
|
||||||
let i = s:SetNamedColor('#D3D3D3','LightGrey') |
|
||||||
let i = s:SetNamedColor('#90EE90','LightGreen') |
|
||||||
let i = s:SetNamedColor('#FFB6C1','LightPink') |
|
||||||
let i = s:SetNamedColor('#FFA07A','LightSalmon') |
|
||||||
let i = s:SetNamedColor('#20B2AA','LightSeaGreen') |
|
||||||
let i = s:SetNamedColor('#87CEFA','LightSkyBlue') |
|
||||||
let i = s:SetNamedColor('#778899','LightSlateGray') |
|
||||||
let i = s:SetNamedColor('#778899','LightSlateGrey') |
|
||||||
let i = s:SetNamedColor('#B0C4DE','LightSteelBlue') |
|
||||||
let i = s:SetNamedColor('#FFFFE0','LightYellow') |
|
||||||
let i = s:SetNamedColor('#32CD32','LimeGreen') |
|
||||||
let i = s:SetNamedColor('#FAF0E6','Linen') |
|
||||||
let i = s:SetNamedColor('#FF00FF','Magenta') |
|
||||||
let i = s:SetNamedColor('#66CDAA','MediumAquaMarine') |
|
||||||
let i = s:SetNamedColor('#0000CD','MediumBlue') |
|
||||||
let i = s:SetNamedColor('#BA55D3','MediumOrchid') |
|
||||||
let i = s:SetNamedColor('#9370D8','MediumPurple') |
|
||||||
let i = s:SetNamedColor('#3CB371','MediumSeaGreen') |
|
||||||
let i = s:SetNamedColor('#7B68EE','MediumSlateBlue') |
|
||||||
let i = s:SetNamedColor('#00FA9A','MediumSpringGreen') |
|
||||||
let i = s:SetNamedColor('#48D1CC','MediumTurquoise') |
|
||||||
let i = s:SetNamedColor('#C71585','MediumVioletRed') |
|
||||||
let i = s:SetNamedColor('#191970','MidnightBlue') |
|
||||||
let i = s:SetNamedColor('#F5FFFA','MintCream') |
|
||||||
let i = s:SetNamedColor('#FFE4E1','MistyRose') |
|
||||||
let i = s:SetNamedColor('#FFE4B5','Moccasin') |
|
||||||
let i = s:SetNamedColor('#FFDEAD','NavajoWhite') |
|
||||||
let i = s:SetNamedColor('#FDF5E6','OldLace') |
|
||||||
let i = s:SetNamedColor('#6B8E23','OliveDrab') |
|
||||||
let i = s:SetNamedColor('#FF4500','OrangeRed') |
|
||||||
let i = s:SetNamedColor('#DA70D6','Orchid') |
|
||||||
let i = s:SetNamedColor('#EEE8AA','PaleGoldenRod') |
|
||||||
let i = s:SetNamedColor('#98FB98','PaleGreen') |
|
||||||
let i = s:SetNamedColor('#AFEEEE','PaleTurquoise') |
|
||||||
let i = s:SetNamedColor('#D87093','PaleVioletRed') |
|
||||||
let i = s:SetNamedColor('#FFEFD5','PapayaWhip') |
|
||||||
let i = s:SetNamedColor('#FFDAB9','PeachPuff') |
|
||||||
let i = s:SetNamedColor('#CD853F','Peru') |
|
||||||
let i = s:SetNamedColor('#FFC0CB','Pink') |
|
||||||
let i = s:SetNamedColor('#DDA0DD','Plum') |
|
||||||
let i = s:SetNamedColor('#B0E0E6','PowderBlue') |
|
||||||
let i = s:SetNamedColor('#BC8F8F','RosyBrown') |
|
||||||
let i = s:SetNamedColor('#4169E1','RoyalBlue') |
|
||||||
let i = s:SetNamedColor('#8B4513','SaddleBrown') |
|
||||||
let i = s:SetNamedColor('#FA8072','Salmon') |
|
||||||
let i = s:SetNamedColor('#F4A460','SandyBrown') |
|
||||||
let i = s:SetNamedColor('#2E8B57','SeaGreen') |
|
||||||
let i = s:SetNamedColor('#FFF5EE','SeaShell') |
|
||||||
let i = s:SetNamedColor('#A0522D','Sienna') |
|
||||||
let i = s:SetNamedColor('#87CEEB','SkyBlue') |
|
||||||
let i = s:SetNamedColor('#6A5ACD','SlateBlue') |
|
||||||
let i = s:SetNamedColor('#708090','SlateGray') |
|
||||||
let i = s:SetNamedColor('#708090','SlateGrey') |
|
||||||
let i = s:SetNamedColor('#FFFAFA','Snow') |
|
||||||
let i = s:SetNamedColor('#00FF7F','SpringGreen') |
|
||||||
let i = s:SetNamedColor('#4682B4','SteelBlue') |
|
||||||
let i = s:SetNamedColor('#D2B48C','Tan') |
|
||||||
let i = s:SetNamedColor('#D8BFD8','Thistle') |
|
||||||
let i = s:SetNamedColor('#FF6347','Tomato') |
|
||||||
let i = s:SetNamedColor('#40E0D0','Turquoise') |
|
||||||
let i = s:SetNamedColor('#EE82EE','Violet') |
|
||||||
let i = s:SetNamedColor('#F5DEB3','Wheat') |
|
||||||
let i = s:SetNamedColor('#F5F5F5','WhiteSmoke') |
|
||||||
let i = s:SetNamedColor('#9ACD32','YellowGreen') |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
let i = 1 |
|
||||||
while i <= line("$") |
|
||||||
call s:PreviewCSSColorInLine(i) |
|
||||||
let i = i+1 |
|
||||||
endwhile |
|
||||||
unlet i |
|
||||||
|
|
||||||
autocmd CursorHold * silent call s:PreviewCSSColorInLine('.') |
|
||||||
autocmd CursorHoldI * silent call s:PreviewCSSColorInLine('.') |
|
||||||
set ut=100 |
|
||||||
endif " has("gui_running") |
|
Loading…
Reference in new issue