diff --git a/docker/atomer-v1.0.0-bin/.bashrc b/docker/atomer-v1.0.0-bin/.bashrc new file mode 100644 index 0000000000..603ed1fe6f --- /dev/null +++ b/docker/atomer-v1.0.0-bin/.bashrc @@ -0,0 +1,24 @@ +# enable color support of ls and also add handy aliases +if [ -x /usr/bin/dircolors ]; then + test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" + alias ls='ls --color=auto' + alias dir='dir --color=auto' + alias vdir='vdir --color=auto' + alias grep='grep --color=auto' + alias fgrep='fgrep --color=auto' + alias egrep='egrep --color=auto' +fi + +# some more ls aliases +alias ll='ls -AlFh' +alias la='ls -A' +alias l='ls -CF' + +# colored man pages +export LESS_TERMCAP_mb=$(printf '\e[01;31m') +export LESS_TERMCAP_md=$(printf '\e[01;35m') +export LESS_TERMCAP_me=$(printf '\e[0m') +export LESS_TERMCAP_se=$(printf '\e[0m') +export LESS_TERMCAP_so=$(printf '\e[01;33m') +export LESS_TERMCAP_ue=$(printf '\e[0m') +export LESS_TERMCAP_us=$(printf '\e[04;36m') diff --git a/docker/atomer-v1.0.0-bin/.inputrc b/docker/atomer-v1.0.0-bin/.inputrc new file mode 100644 index 0000000000..236bfdd27b --- /dev/null +++ b/docker/atomer-v1.0.0-bin/.inputrc @@ -0,0 +1 @@ +set completion-ignore-case on diff --git a/docker/atomer-v1.0.0-bin/.vim/colors/monokai.vim b/docker/atomer-v1.0.0-bin/.vim/colors/monokai.vim new file mode 100644 index 0000000000..1b4f16780f --- /dev/null +++ b/docker/atomer-v1.0.0-bin/.vim/colors/monokai.vim @@ -0,0 +1,109 @@ +" Vim color file +" Converted from Textmate theme Monokai using Coloration v0.3.2 (http://github.com/sickill/coloration) + +set background=dark +highlight clear + +if exists("syntax_on") + syntax reset +endif + +set t_Co=256 +let g:colors_name = "monokai" + +hi Cursor ctermfg=235 ctermbg=231 cterm=NONE guifg=#272822 guibg=#f8f8f0 gui=NONE +hi Visual ctermfg=NONE ctermbg=59 cterm=NONE guifg=NONE guibg=#49483e gui=NONE +hi CursorLine ctermfg=NONE ctermbg=237 cterm=NONE guifg=NONE guibg=#3c3d37 gui=NONE +hi CursorColumn ctermfg=NONE ctermbg=237 cterm=NONE guifg=NONE guibg=#3c3d37 gui=NONE +hi ColorColumn ctermfg=NONE ctermbg=237 cterm=NONE guifg=NONE guibg=#3c3d37 gui=NONE +hi LineNr ctermfg=102 ctermbg=237 cterm=NONE guifg=#90908a guibg=#3c3d37 gui=NONE +hi VertSplit ctermfg=241 ctermbg=241 cterm=NONE guifg=#64645e guibg=#64645e gui=NONE +hi MatchParen ctermfg=197 ctermbg=NONE cterm=underline guifg=#f92672 guibg=NONE gui=underline +hi StatusLine ctermfg=231 ctermbg=241 cterm=bold guifg=#f8f8f2 guibg=#64645e gui=bold +hi StatusLineNC ctermfg=231 ctermbg=241 cterm=NONE guifg=#f8f8f2 guibg=#64645e gui=NONE +hi Pmenu ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi PmenuSel ctermfg=NONE ctermbg=59 cterm=NONE guifg=NONE guibg=#49483e gui=NONE +hi IncSearch term=reverse cterm=reverse ctermfg=193 ctermbg=16 gui=reverse guifg=#C4BE89 guibg=#000000 +hi Search term=reverse cterm=NONE ctermfg=231 ctermbg=24 gui=NONE guifg=#f8f8f2 guibg=#204a87 +hi Directory ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi Folded ctermfg=242 ctermbg=235 cterm=NONE guifg=#75715e guibg=#272822 gui=NONE +hi SignColumn ctermfg=NONE ctermbg=237 cterm=NONE guifg=NONE guibg=#3c3d37 gui=NONE +hi Normal ctermfg=231 ctermbg=235 cterm=NONE guifg=#f8f8f2 guibg=#272822 gui=NONE +hi Boolean ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi Character ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi Comment ctermfg=242 ctermbg=NONE cterm=NONE guifg=#75715e guibg=NONE gui=NONE +hi Conditional ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi Constant ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi Define ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi DiffAdd ctermfg=231 ctermbg=64 cterm=bold guifg=#f8f8f2 guibg=#46830c gui=bold +hi DiffDelete ctermfg=88 ctermbg=NONE cterm=NONE guifg=#8b0807 guibg=NONE gui=NONE +hi DiffChange ctermfg=NONE ctermbg=NONE cterm=NONE guifg=#f8f8f2 guibg=#243955 gui=NONE +hi DiffText ctermfg=231 ctermbg=24 cterm=bold guifg=#f8f8f2 guibg=#204a87 gui=bold +hi ErrorMsg ctermfg=231 ctermbg=197 cterm=NONE guifg=#f8f8f0 guibg=#f92672 gui=NONE +hi WarningMsg ctermfg=231 ctermbg=197 cterm=NONE guifg=#f8f8f0 guibg=#f92672 gui=NONE +hi Float ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi Function ctermfg=148 ctermbg=NONE cterm=NONE guifg=#a6e22e guibg=NONE gui=NONE +hi Identifier ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=italic +hi Keyword ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi Label ctermfg=186 ctermbg=NONE cterm=NONE guifg=#e6db74 guibg=NONE gui=NONE +hi NonText ctermfg=59 ctermbg=236 cterm=NONE guifg=#49483e guibg=#31322c gui=NONE +hi Number ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi Operator ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi PreProc ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi Special ctermfg=231 ctermbg=NONE cterm=NONE guifg=#f8f8f2 guibg=NONE gui=NONE +hi SpecialComment ctermfg=242 ctermbg=NONE cterm=NONE guifg=#75715e guibg=NONE gui=NONE +hi SpecialKey ctermfg=59 ctermbg=237 cterm=NONE guifg=#49483e guibg=#3c3d37 gui=NONE +hi Statement ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi StorageClass ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=italic +hi String ctermfg=186 ctermbg=NONE cterm=NONE guifg=#e6db74 guibg=NONE gui=NONE +hi Tag ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi Title ctermfg=231 ctermbg=NONE cterm=bold guifg=#f8f8f2 guibg=NONE gui=bold +hi Todo ctermfg=95 ctermbg=NONE cterm=inverse,bold guifg=#75715e guibg=NONE gui=inverse,bold +hi Type ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline guifg=NONE guibg=NONE gui=underline +hi rubyClass ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi rubyFunction ctermfg=148 ctermbg=NONE cterm=NONE guifg=#a6e22e guibg=NONE gui=NONE +hi rubyInterpolationDelimiter ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi rubySymbol ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi rubyConstant ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=italic +hi rubyStringDelimiter ctermfg=186 ctermbg=NONE cterm=NONE guifg=#e6db74 guibg=NONE gui=NONE +hi rubyBlockParameter ctermfg=208 ctermbg=NONE cterm=NONE guifg=#fd971f guibg=NONE gui=italic +hi rubyInstanceVariable ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi rubyInclude ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi rubyGlobalVariable ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi rubyRegexp ctermfg=186 ctermbg=NONE cterm=NONE guifg=#e6db74 guibg=NONE gui=NONE +hi rubyRegexpDelimiter ctermfg=186 ctermbg=NONE cterm=NONE guifg=#e6db74 guibg=NONE gui=NONE +hi rubyEscape ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi rubyControl ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi rubyClassVariable ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi rubyOperator ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi rubyException ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi rubyPseudoVariable ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi rubyRailsUserClass ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=italic +hi rubyRailsARAssociationMethod ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=NONE +hi rubyRailsARMethod ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=NONE +hi rubyRailsRenderMethod ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=NONE +hi rubyRailsMethod ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=NONE +hi erubyDelimiter ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi erubyComment ctermfg=95 ctermbg=NONE cterm=NONE guifg=#75715e guibg=NONE gui=NONE +hi erubyRailsMethod ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=NONE +hi htmlTag ctermfg=148 ctermbg=NONE cterm=NONE guifg=#a6e22e guibg=NONE gui=NONE +hi htmlEndTag ctermfg=148 ctermbg=NONE cterm=NONE guifg=#a6e22e guibg=NONE gui=NONE +hi htmlTagName ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi htmlArg ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi htmlSpecialChar ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi javaScriptFunction ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=italic +hi javaScriptRailsFunction ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=NONE +hi javaScriptBraces ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi yamlKey ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi yamlAnchor ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi yamlAlias ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi yamlDocumentHeader ctermfg=186 ctermbg=NONE cterm=NONE guifg=#e6db74 guibg=NONE gui=NONE +hi cssURL ctermfg=208 ctermbg=NONE cterm=NONE guifg=#fd971f guibg=NONE gui=italic +hi cssFunctionName ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=NONE +hi cssColor ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi cssPseudoClassId ctermfg=148 ctermbg=NONE cterm=NONE guifg=#a6e22e guibg=NONE gui=NONE +hi cssClassName ctermfg=148 ctermbg=NONE cterm=NONE guifg=#a6e22e guibg=NONE gui=NONE +hi cssValueLength ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi cssCommonAttr ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=NONE +hi cssBraces ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE diff --git a/docker/atomer-v1.0.0-bin/.vim/syntax/c.vim b/docker/atomer-v1.0.0-bin/.vim/syntax/c.vim new file mode 100644 index 0000000000..57bb836c38 --- /dev/null +++ b/docker/atomer-v1.0.0-bin/.vim/syntax/c.vim @@ -0,0 +1,301 @@ +" ============================================================================== +" Vim syntax file +" Language: C Additions +" Original Author: Mikhail Wolfson +" Maintainer: bfrg +" Website: https://github.com/bfrg/vim-cpp-modern +" Last Change: Mar 24, 2018 +" +" Extended C syntax highlighting including highlighting for user-defined +" functions. +" +" This syntax file is based on a previous work by Jon Haggblad: +" https://github.com/octol/vim-cpp-enhanced-highlight +" ============================================================================== + + +" Highlight some additional keywords in the comments +syn keyword cTodo contained BUG NOTE + +" Highlight function names +" From: https://stackoverflow.com/a/773392 +if !exists('g:cpp_no_function_highlight') + syn match cCustomParen transparent "(" contains=cParen contains=cCppParen + syn match cCustomFunc "\w\+\s*(\@=" contains=cCustomParen +endif + + +" Common ANSI-standard functions +" From: http://www.vim.org/scripts/script.php?script_id=3064 +" 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 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 +" syn keyword cAnsiFunction bsearch system getenv + +" 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 + +" Booleans +syn keyword cBoolean true false TRUE FALSE + + +" Default highlighting +hi def link cCustomFunc Function +hi def link cBoolean Boolean +hi def link cAnsiFunction cFunction +hi def link cAnsiName cIdentifier +hi def link cFunction Function +hi def link cIdentifier Identifier + + +" Highlight all standard C keywords as Statement +" This is very similar to what other IDEs and editors do +if exists('g:cpp_simple_highlight') && g:cpp_simple_highlight + hi! link cStorageClass Statement + hi! link cStructure Statement + hi! link cLabel Statement +endif + + +" ------------------------------------------------------------------------------ +" Additional optional highlighting +" From: http://www.vim.org/scripts/script.php?script_id=3064 +" ------------------------------------------------------------------------------ + +" 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 "[{}]" + +" Links +" hi def link cDelimiter Delimiter +" foldmethod=syntax fix, courtesy of Ivan Freitas +" hi def link cBraces Delimiter diff --git a/docker/atomer-v1.0.0-bin/.vim/syntax/cpp.vim b/docker/atomer-v1.0.0-bin/.vim/syntax/cpp.vim new file mode 100644 index 0000000000..4fe12bc78e --- /dev/null +++ b/docker/atomer-v1.0.0-bin/.vim/syntax/cpp.vim @@ -0,0 +1,2077 @@ +" ============================================================================== +" Vim syntax file +" Language: C++ (extended for C++11/14/17/concepts) +" Original Author: Jon Haggblad +" Maintainer: bfrg +" Website: https://github.com/bfrg/vim-cpp-modern +" Last Change: Mar 24, 2018 +" +" Extended syntax highlighting for C++ (including C++11/14/17/concepts) +" +" Compared to Vim's default C++ syntax highlighting, this syntax file adds +" highlighting of (user defined) functions, containers and types in the standard +" library. Optionally, library concepts (like CopyConstructible) can be +" highlighted as standard library types. +" +" This syntax file is based on the previous work by Jon Haggblad: +" https://github.com/octol/vim-cpp-enhanced-highlight +" +" Difference to vim-cpp-enhanced-highlight: +" +" - Standard library functions have been commented out because words ending with +" parentheses are highlighted as functions anyway, so we don't have to +" explicitly list each library function in here. The only exceptions are +" standard library function templates, which sometimes must be called with +" template parameters, like std::make_unique(bar). +" +" - Another reason why almost all functions have been commented out is because +" if someone defines his/her own type and the name collides with a library +" function name, this user-defined type will be highlighted as a function. +" +" - User-defined function templates or class members won't be highlighted. +" This feature was removed because it's too slow and buggy. +" +" - C++ keywords inline, virtual, explicit, export, override and final are moved +" to the syntax group StorageClass. +" ============================================================================== + + +" Highlight function names +" Based on discussion http://stackoverflow.com/q/736701 +if !exists('g:cpp_no_function_highlight') + syntax match cCustomParen transparent "(" contains=cParen contains=cCppParen + syntax match cCustomFunc "\w\+\s*(\@=" +endif + +" ------------------------------------------------------------------------------ +" Standard library types and functions +" +" Based on the syntax vim script by Mizuchi +" http://www.vim.org/scripts/script.php?script_id=4293 +" ------------------------------------------------------------------------------ + +syntax keyword cppSTLconstant MB_CUR_MAX +syntax keyword cppSTLconstant MB_LEN_MAX +syntax keyword cppSTLconstant WCHAR_MAX +syntax keyword cppSTLconstant WCHAR_MIN +syntax keyword cppSTLconstant WEOF +syntax keyword cppSTLconstant __STDC_UTF_16__ +syntax keyword cppSTLconstant __STDC_UTF_32__ +syntax keyword cppSTLconstant badbit +syntax keyword cppSTLconstant cerr +syntax keyword cppSTLconstant cin +syntax keyword cppSTLconstant clog +syntax keyword cppSTLconstant cout +syntax keyword cppSTLconstant digits +syntax keyword cppSTLconstant digits10 +syntax keyword cppSTLconstant eofbit +syntax keyword cppSTLconstant failbit +syntax keyword cppSTLconstant goodbit +syntax keyword cppSTLconstant has_denorm +syntax keyword cppSTLconstant has_denorm_loss +syntax keyword cppSTLconstant has_infinity +syntax keyword cppSTLconstant has_quiet_NaN +syntax keyword cppSTLconstant has_signaling_NaN +syntax keyword cppSTLconstant is_bounded +syntax keyword cppSTLconstant is_exact +syntax keyword cppSTLconstant is_iec559 +syntax keyword cppSTLconstant is_integer +syntax keyword cppSTLconstant is_modulo +syntax keyword cppSTLconstant is_signed +syntax keyword cppSTLconstant is_specialized +syntax keyword cppSTLconstant max_exponent +syntax keyword cppSTLconstant max_exponent10 +syntax keyword cppSTLconstant min_exponent +syntax keyword cppSTLconstant min_exponent10 +syntax keyword cppSTLconstant nothrow +syntax keyword cppSTLconstant npos +syntax keyword cppSTLconstant radix +syntax keyword cppSTLconstant round_style +syntax keyword cppSTLconstant tinyness_before +syntax keyword cppSTLconstant traps +syntax keyword cppSTLconstant wcerr +syntax keyword cppSTLconstant wcin +syntax keyword cppSTLconstant wclog +syntax keyword cppSTLconstant wcout + +syntax keyword cppSTLexception bad_alloc +syntax keyword cppSTLexception bad_exception +syntax keyword cppSTLexception bad_typeid bad_cast +syntax keyword cppSTLexception domain_error +syntax keyword cppSTLexception exception +syntax keyword cppSTLexception invalid_argument +syntax keyword cppSTLexception length_error +syntax keyword cppSTLexception logic_error +syntax keyword cppSTLexception out_of_range +syntax keyword cppSTLexception overflow_error +syntax keyword cppSTLexception range_error +syntax keyword cppSTLexception runtime_error +syntax keyword cppSTLexception underflow_error +syntax keyword cppSTLexception failure + +syntax keyword cppSTLfunctional binary_function +syntax keyword cppSTLfunctional binary_negate +syntax keyword cppSTLfunctional bit_and +syntax keyword cppSTLfunctional bit_not +syntax keyword cppSTLfunctional bit_or +syntax keyword cppSTLfunctional divides +syntax keyword cppSTLfunctional equal_to +syntax keyword cppSTLfunctional greater +syntax keyword cppSTLfunctional greater_equal +syntax keyword cppSTLfunctional less +syntax keyword cppSTLfunctional less_equal +syntax keyword cppSTLfunctional logical_and +syntax keyword cppSTLfunctional logical_not +syntax keyword cppSTLfunctional logical_or +syntax keyword cppSTLfunctional minus +syntax keyword cppSTLfunctional modulus +syntax keyword cppSTLfunctional multiplies +syntax keyword cppSTLfunctional negate +syntax keyword cppSTLfunctional not_equal_to +syntax keyword cppSTLfunctional plus +syntax keyword cppSTLfunctional unary_function +syntax keyword cppSTLfunctional unary_negate + +syntax keyword cppSTLios resetiosflags +syntax keyword cppSTLios setiosflags +syntax keyword cppSTLios setbase +syntax keyword cppSTLios setfill +syntax keyword cppSTLios setprecision +syntax keyword cppSTLios setw +syntax keyword cppSTLios endl +syntax keyword cppSTLios ends +syntax keyword cppSTLios flush +" syntax keyword cppSTLios ws + +syntax keyword cppSTLios boolalpha noboolalpha +syntax keyword cppSTLios showbase noshowbase +syntax keyword cppSTLios showpoint noshowpoint +syntax keyword cppSTLios showpos noshowpos +syntax keyword cppSTLios skipws noskipws +syntax keyword cppSTLios uppercase nouppercase +syntax keyword cppSTLios unitbuf nounitbuf +syntax keyword cppSTLios internal left right +syntax keyword cppSTLios dec hex oct +syntax keyword cppSTLios fixed scientific hexfloat defaultfloat + +syntax keyword cppSTLtype fmtflags +syntax keyword cppSTLtype iostate +syntax keyword cppSTLtype openmode + +" syntax keyword cppSTLconstant dec oct hex basefield +" syntax keyword cppSTLconstant left right internal adjustfield +" syntax keyword cppSTLconstant scientific fixed floatfield +" syntax keyword cppSTLconstant boolalpha +" syntax keyword cppSTLconstant showbase showpoint showpos +" syntax keyword cppSTLconstant skipws +" syntax keyword cppSTLconstant unitbuf +" syntax keyword cppSTLconstant uppercase +" syntax keyword cppSTLconstant app binary in out trunc ate + +syntax keyword cppSTLiterator back_insert_iterator +syntax keyword cppSTLiterator bidirectional_iterator +syntax keyword cppSTLiterator const_iterator +syntax keyword cppSTLiterator const_reverse_iterator +syntax keyword cppSTLiterator forward_iterator +syntax keyword cppSTLiterator front_insert_iterator +syntax keyword cppSTLiterator input_iterator +syntax keyword cppSTLiterator insert_iterator +syntax keyword cppSTLiterator istream_iterator +syntax keyword cppSTLiterator istreambuf_iterator +syntax keyword cppSTLiterator ostreambuf_iterator +syntax keyword cppSTLiterator iterator +syntax keyword cppSTLiterator ostream_iterator +syntax keyword cppSTLiterator output_iterator +syntax keyword cppSTLiterator random_access_iterator +syntax keyword cppSTLiterator raw_storage_iterator +syntax keyword cppSTLiterator reverse_bidirectional_iterator +syntax keyword cppSTLiterator reverse_iterator + +syntax keyword cppSTLiterator_tag bidirectional_iterator_tag +syntax keyword cppSTLiterator_tag forward_iterator_tag +syntax keyword cppSTLiterator_tag input_iterator_tag +syntax keyword cppSTLiterator_tag output_iterator_tag +syntax keyword cppSTLiterator_tag random_access_iterator_tag + +syntax keyword cppSTLnamespace rel_ops +syntax keyword cppSTLnamespace std +syntax keyword cppSTLnamespace experimental + +syntax keyword cppSTLtype Init +syntax keyword cppSTLtype event_callback +syntax keyword cppSTLtype allocator +syntax keyword cppSTLtype auto_ptr +syntax keyword cppSTLtype basic_filebuf +syntax keyword cppSTLtype basic_fstream +syntax keyword cppSTLtype basic_ifstream +syntax keyword cppSTLtype basic_iostream +syntax keyword cppSTLtype basic_istream +syntax keyword cppSTLtype basic_istringstream +syntax keyword cppSTLtype basic_ofstream +syntax keyword cppSTLtype basic_ostream +syntax keyword cppSTLtype basic_ostringstream +syntax keyword cppSTLtype basic_streambuf +syntax keyword cppSTLtype basic_string +syntax keyword cppSTLtype basic_stringbuf +syntax keyword cppSTLtype basic_stringstream +syntax keyword cppSTLtype binary_compose +syntax keyword cppSTLtype binder1st +syntax keyword cppSTLtype binder2nd +syntax keyword cppSTLtype bitset +syntax keyword cppSTLtype char_traits +syntax keyword cppSTLtype char_type +syntax keyword cppSTLtype const_mem_fun1_t +syntax keyword cppSTLtype const_mem_fun_ref1_t +syntax keyword cppSTLtype const_mem_fun_ref_t +syntax keyword cppSTLtype const_mem_fun_t +syntax keyword cppSTLtype const_pointer +syntax keyword cppSTLtype const_reference +syntax keyword cppSTLtype container_type +syntax keyword cppSTLtype deque +syntax keyword cppSTLtype difference_type +syntax keyword cppSTLtype iterator_category +syntax keyword cppSTLtype div_t +syntax keyword cppSTLtype double_t +syntax keyword cppSTLtype filebuf +syntax keyword cppSTLtype first_type +syntax keyword cppSTLtype float_denorm_style +syntax keyword cppSTLtype float_round_style +syntax keyword cppSTLtype float_t +syntax keyword cppSTLtype fstream +syntax keyword cppSTLtype gslice_array +syntax keyword cppSTLtype ifstream +syntax keyword cppSTLtype imaxdiv_t +syntax keyword cppSTLtype indirect_array +syntax keyword cppSTLtype int_type +syntax keyword cppSTLtype ios_base +syntax keyword cppSTLtype basic_ios +syntax keyword cppSTLtype fpos +syntax keyword cppSTLtype ios +syntax keyword cppSTLtype iostream +syntax keyword cppSTLtype istream +syntax keyword cppSTLtype istringstream +syntax keyword cppSTLtype istrstream +syntax keyword cppSTLtype iterator_traits +syntax keyword cppSTLtype key_compare +syntax keyword cppSTLtype key_type +syntax keyword cppSTLtype ldiv_t +syntax keyword cppSTLtype list +syntax keyword cppSTLtype lldiv_t +syntax keyword cppSTLtype map +syntax keyword cppSTLtype mapped_type +syntax keyword cppSTLtype mask_array +syntax keyword cppSTLtype mbstate_t +syntax keyword cppSTLtype mem_fun1_t +syntax keyword cppSTLtype mem_fun_ref1_t +syntax keyword cppSTLtype mem_fun_ref_t +syntax keyword cppSTLtype mem_fun_t +syntax keyword cppSTLtype multimap +syntax keyword cppSTLtype multiset +syntax keyword cppSTLtype nothrow_t +syntax keyword cppSTLtype numeric_limits +syntax keyword cppSTLtype off_type +syntax keyword cppSTLtype ofstream +syntax keyword cppSTLtype ostream +syntax keyword cppSTLtype ostringstream +syntax keyword cppSTLtype ostrstream +syntax keyword cppSTLtype pair +syntax keyword cppSTLtype pointer +syntax keyword cppSTLtype pointer_to_binary_function +syntax keyword cppSTLtype pointer_to_unary_function +syntax keyword cppSTLtype pos_type +syntax keyword cppSTLtype priority_queue +syntax keyword cppSTLtype queue +syntax keyword cppSTLtype reference +syntax keyword cppSTLtype second_type +syntax keyword cppSTLtype seekdir +syntax keyword cppSTLtype sequence_buffer +syntax keyword cppSTLtype set +syntax keyword cppSTLtype sig_atomic_t +syntax keyword cppSTLtype size_type +syntax keyword cppSTLtype slice_array +syntax keyword cppSTLtype stack +syntax keyword cppSTLtype stream +syntax keyword cppSTLtype streambuf +syntax keyword cppSTLtype streamoff +syntax keyword cppSTLtype streampos +syntax keyword cppSTLtype streamsize +syntax keyword cppSTLtype string +syntax keyword cppSTLtype stringbuf +syntax keyword cppSTLtype stringstream +syntax keyword cppSTLtype strstream +syntax keyword cppSTLtype strstreambuf +syntax keyword cppSTLtype temporary_buffer +syntax keyword cppSTLtype test_type +syntax keyword cppSTLtype time_t +syntax keyword cppSTLtype tm +syntax keyword cppSTLtype traits_type +syntax keyword cppSTLtype type_info +syntax keyword cppSTLtype u16string +syntax keyword cppSTLtype u32string +syntax keyword cppSTLtype unary_compose +syntax keyword cppSTLtype unary_negate +syntax keyword cppSTLtype valarray +syntax keyword cppSTLtype value_compare +syntax keyword cppSTLtype value_type +syntax keyword cppSTLtype vector +syntax keyword cppSTLtype wctrans_t +syntax keyword cppSTLtype wctype_t +syntax keyword cppSTLtype wfilebuf +syntax keyword cppSTLtype wfstream +syntax keyword cppSTLtype wifstream +syntax keyword cppSTLtype wint_t +syntax keyword cppSTLtype wios +syntax keyword cppSTLtype wiostream +syntax keyword cppSTLtype wistream +syntax keyword cppSTLtype wistringstream +syntax keyword cppSTLtype wofstream +syntax keyword cppSTLtype wostream +syntax keyword cppSTLtype wostringstream +syntax keyword cppSTLtype wstreambuf +syntax keyword cppSTLtype wstreampos +syntax keyword cppSTLtype wstring +syntax keyword cppSTLtype wstringbuf +syntax keyword cppSTLtype wstringstream + +" locale +syntax keyword cppSTLtype locale +syntax keyword cppSTLtype ctype_base +syntax keyword cppSTLtype codecvt_base +syntax keyword cppSTLtype messages_base +syntax keyword cppSTLtype time_base +syntax keyword cppSTLtype money_base +syntax keyword cppSTLtype ctype +syntax keyword cppSTLtype codecvt +syntax keyword cppSTLtype collate +syntax keyword cppSTLtype messages +syntax keyword cppSTLtype time_get +syntax keyword cppSTLtype time_put +syntax keyword cppSTLtype num_get +syntax keyword cppSTLtype num_put +syntax keyword cppSTLtype numpunct +syntax keyword cppSTLtype money_get +syntax keyword cppSTLtype money_put +syntax keyword cppSTLtype moneypunct +syntax keyword cppSTLtype ctype_byname +syntax keyword cppSTLtype codecvt_byname +syntax keyword cppSTLtype messages_byname +syntax keyword cppSTLtype collate_byname +syntax keyword cppSTLtype time_get_byname +syntax keyword cppSTLtype time_put_byname +syntax keyword cppSTLtype numpunct_byname +syntax keyword cppSTLtype moneypunct_byname +syntax keyword cppSTLfunction use_facet +syntax keyword cppSTLfunction has_facet +syntax keyword cppSTLfunction isspace isblank iscntrl isupper islower isalpha +syntax keyword cppSTLfunction isdigit ispunct isxdigit isalnum isprint isgraph + +" std::get is a template function, so when called as std::get(t), we want it +" to be highlighted as a function +syntax keyword cppSTLfunction get + +" syntax keyword cppSTLfunction abort +" syntax keyword cppSTLfunction abs +" syntax keyword cppSTLfunction accumulate +" syntax keyword cppSTLfunction acos +" syntax keyword cppSTLfunction adjacent_difference +" syntax keyword cppSTLfunction adjacent_find +" syntax keyword cppSTLfunction adjacent_find_if +" syntax keyword cppSTLfunction advance +" syntax keyword cppSTLfunction append +" syntax keyword cppSTLfunction arg +" syntax keyword cppSTLfunction asctime +" syntax keyword cppSTLfunction asin +" syntax keyword cppSTLfunction assert +" syntax keyword cppSTLfunction assign +" syntax keyword cppSTLfunction at +" syntax keyword cppSTLfunction atan +" syntax keyword cppSTLfunction atan2 +" syntax keyword cppSTLfunction atexit +" syntax keyword cppSTLfunction atof +" syntax keyword cppSTLfunction atoi +" syntax keyword cppSTLfunction atol +" syntax keyword cppSTLfunction atoll +" syntax keyword cppSTLfunction back +" syntax keyword cppSTLfunction back_inserter +" syntax keyword cppSTLfunction bad +" syntax keyword cppSTLfunction beg +" syntax keyword cppSTLfunction binary_compose +" syntax keyword cppSTLfunction binary_negate +" syntax keyword cppSTLfunction binary_search +" syntax keyword cppSTLfunction bind1st +" syntax keyword cppSTLfunction bind2nd +" syntax keyword cppSTLfunction binder1st +" syntax keyword cppSTLfunction binder2nd +" syntax keyword cppSTLfunction bsearch +" syntax keyword cppSTLfunction calloc +" syntax keyword cppSTLfunction capacity +" syntax keyword cppSTLfunction ceil +" syntax keyword cppSTLfunction clear +" syntax keyword cppSTLfunction clearerr +" syntax keyword cppSTLfunction clock +" syntax keyword cppSTLfunction close +" syntax keyword cppSTLfunction compare +" syntax keyword cppSTLfunction conj +" syntax keyword cppSTLfunction construct +" syntax keyword cppSTLfunction copy +" syntax keyword cppSTLfunction copy_backward +" syntax keyword cppSTLfunction cos +" syntax keyword cppSTLfunction cosh +" syntax keyword cppSTLfunction count +" syntax keyword cppSTLfunction count_if +" syntax keyword cppSTLfunction c_str +" syntax keyword cppSTLfunction ctime +" syntax keyword cppSTLfunction denorm_min +" syntax keyword cppSTLfunction destroy +" syntax keyword cppSTLfunction difftime +" syntax keyword cppSTLfunction distance +" syntax keyword cppSTLfunction div +" syntax keyword cppSTLfunction empty +" syntax keyword cppSTLfunction eof +" syntax keyword cppSTLfunction epsilon +" syntax keyword cppSTLfunction equal +" syntax keyword cppSTLfunction equal_range +" syntax keyword cppSTLfunction erase +" syntax keyword cppSTLfunction exit +" syntax keyword cppSTLfunction exp +" syntax keyword cppSTLfunction fabs +" syntax keyword cppSTLfunction fail +" syntax keyword cppSTLfunction failure +" syntax keyword cppSTLfunction fclose +" syntax keyword cppSTLfunction feof +" syntax keyword cppSTLfunction ferror +" syntax keyword cppSTLfunction fflush +" syntax keyword cppSTLfunction fgetc +" syntax keyword cppSTLfunction fgetpos +" syntax keyword cppSTLfunction fgets +" syntax keyword cppSTLfunction fill +" syntax keyword cppSTLfunction fill_n +" syntax keyword cppSTLfunction find +" syntax keyword cppSTLfunction find_end +" syntax keyword cppSTLfunction find_first_not_of +" syntax keyword cppSTLfunction find_first_of +" syntax keyword cppSTLfunction find_if +" syntax keyword cppSTLfunction find_last_not_of +" syntax keyword cppSTLfunction find_last_of +" syntax keyword cppSTLfunction first +" syntax keyword cppSTLfunction flags +" syntax keyword cppSTLfunction flip +" syntax keyword cppSTLfunction floor +" syntax keyword cppSTLfunction flush +" syntax keyword cppSTLfunction fmod +" syntax keyword cppSTLfunction fopen +" syntax keyword cppSTLfunction for_each +" syntax keyword cppSTLfunction fprintf +" syntax keyword cppSTLfunction fputc +" syntax keyword cppSTLfunction fputs +" syntax keyword cppSTLfunction fread +" syntax keyword cppSTLfunction free +" syntax keyword cppSTLfunction freopen +" syntax keyword cppSTLfunction frexp +" syntax keyword cppSTLfunction front +" syntax keyword cppSTLfunction fscanf +" syntax keyword cppSTLfunction fseek +" syntax keyword cppSTLfunction fsetpos +" syntax keyword cppSTLfunction ftell +" syntax keyword cppSTLfunction fwide +" syntax keyword cppSTLfunction fwprintf +" syntax keyword cppSTLfunction fwrite +" syntax keyword cppSTLfunction fwscanf +" syntax keyword cppSTLfunction gcount +" syntax keyword cppSTLfunction generate +" syntax keyword cppSTLfunction generate_n +" syntax keyword cppSTLfunction get_allocator +" syntax keyword cppSTLfunction getc +" syntax keyword cppSTLfunction getchar +" syntax keyword cppSTLfunction getenv +" syntax keyword cppSTLfunction getline +" syntax keyword cppSTLfunction gets +" syntax keyword cppSTLfunction get_temporary_buffer +" syntax keyword cppSTLfunction gmtime +" syntax keyword cppSTLfunction good +" syntax keyword cppSTLfunction ignore +" syntax keyword cppSTLfunction imag +" syntax keyword cppSTLfunction in +" syntax keyword cppSTLfunction includes +" syntax keyword cppSTLfunction infinity +" syntax keyword cppSTLfunction inner_product +" syntax keyword cppSTLfunction inplace_merge +" syntax keyword cppSTLfunction insert +" syntax keyword cppSTLfunction inserter +" syntax keyword cppSTLfunction ios +" syntax keyword cppSTLfunction ios_base +" syntax keyword cppSTLfunction iostate +" syntax keyword cppSTLfunction iota +" syntax keyword cppSTLfunction isalnum +" syntax keyword cppSTLfunction isalpha +" syntax keyword cppSTLfunction iscntrl +" syntax keyword cppSTLfunction isdigit +" syntax keyword cppSTLfunction isgraph +" syntax keyword cppSTLfunction islower +" syntax keyword cppSTLfunction is_open +" syntax keyword cppSTLfunction isprint +" syntax keyword cppSTLfunction ispunct +" syntax keyword cppSTLfunction isspace +" syntax keyword cppSTLfunction isupper +" syntax keyword cppSTLfunction isxdigit +" syntax keyword cppSTLfunction iterator_category +" syntax keyword cppSTLfunction iter_swap +" syntax keyword cppSTLfunction jmp_buf +" syntax keyword cppSTLfunction key_comp +" syntax keyword cppSTLfunction labs +" syntax keyword cppSTLfunction ldexp +" syntax keyword cppSTLfunction ldiv +" syntax keyword cppSTLfunction length +" syntax keyword cppSTLfunction lexicographical_compare +" syntax keyword cppSTLfunction lexicographical_compare_3way +" syntax keyword cppSTLfunction llabs +" syntax keyword cppSTLfunction lldiv +" syntax keyword cppSTLfunction localtime +" syntax keyword cppSTLfunction log +" syntax keyword cppSTLfunction log10 +" syntax keyword cppSTLfunction longjmp +" syntax keyword cppSTLfunction lower_bound +" syntax keyword cppSTLfunction make_heap +" syntax keyword cppSTLfunction make_pair +" syntax keyword cppSTLfunction malloc +" syntax keyword cppSTLfunction max +" syntax keyword cppSTLfunction max_element +" syntax keyword cppSTLfunction max_size +" syntax keyword cppSTLfunction memchr +" syntax keyword cppSTLfunction memcpy +" syntax keyword cppSTLfunction mem_fun +" syntax keyword cppSTLfunction mem_fun_ref +" syntax keyword cppSTLfunction memmove +" syntax keyword cppSTLfunction memset +" syntax keyword cppSTLfunction merge +" syntax keyword cppSTLfunction min +" syntax keyword cppSTLfunction min_element +" syntax keyword cppSTLfunction mismatch +" syntax keyword cppSTLfunction mktime +" syntax keyword cppSTLfunction modf +" syntax keyword cppSTLfunction next_permutation +" syntax keyword cppSTLfunction none +" syntax keyword cppSTLfunction norm +" syntax keyword cppSTLfunction not1 +" syntax keyword cppSTLfunction not2 +" syntax keyword cppSTLfunction nth_element +" syntax keyword cppSTLfunction open +" syntax keyword cppSTLfunction partial_sort +" syntax keyword cppSTLfunction partial_sort_copy +" syntax keyword cppSTLfunction partial_sum +" syntax keyword cppSTLfunction partition +" syntax keyword cppSTLfunction peek +" syntax keyword cppSTLfunction perror +" syntax keyword cppSTLfunction polar +" syntax keyword cppSTLfunction pop +" syntax keyword cppSTLfunction pop_back +" syntax keyword cppSTLfunction pop_front +" syntax keyword cppSTLfunction pop_heap +" syntax keyword cppSTLfunction pow +" syntax keyword cppSTLfunction power +" syntax keyword cppSTLfunction precision +" syntax keyword cppSTLfunction prev_permutation +" syntax keyword cppSTLfunction printf +" syntax keyword cppSTLfunction ptr_fun +" syntax keyword cppSTLfunction push +" syntax keyword cppSTLfunction push_back +" syntax keyword cppSTLfunction push_front +" syntax keyword cppSTLfunction push_heap +" syntax keyword cppSTLfunction put +" syntax keyword cppSTLfunction putback +" syntax keyword cppSTLfunction putc +" syntax keyword cppSTLfunction putchar +" syntax keyword cppSTLfunction puts +" syntax keyword cppSTLfunction qsort +" syntax keyword cppSTLfunction quiet_NaN +" syntax keyword cppSTLfunction raise +" syntax keyword cppSTLfunction rand +" syntax keyword cppSTLfunction random_sample +" syntax keyword cppSTLfunction random_sample_n +" syntax keyword cppSTLfunction random_shuffle +" syntax keyword cppSTLfunction rbegin +" syntax keyword cppSTLfunction rdbuf +" syntax keyword cppSTLfunction rdstate +" syntax keyword cppSTLfunction read +" syntax keyword cppSTLfunction real +" syntax keyword cppSTLfunction realloc +" syntax keyword cppSTLfunction remove +" syntax keyword cppSTLfunction remove_copy +" syntax keyword cppSTLfunction remove_copy_if +" syntax keyword cppSTLfunction remove_if +" syntax keyword cppSTLfunction rename +" syntax keyword cppSTLfunction rend +" syntax keyword cppSTLfunction replace +" syntax keyword cppSTLfunction replace_copy +" syntax keyword cppSTLfunction replace_copy_if +" syntax keyword cppSTLfunction replace_if +" syntax keyword cppSTLfunction reserve +" syntax keyword cppSTLfunction reset +" syntax keyword cppSTLfunction resize +" syntax keyword cppSTLfunction return_temporary_buffer +" syntax keyword cppSTLfunction reverse +" syntax keyword cppSTLfunction reverse_copy +" syntax keyword cppSTLfunction rewind +" syntax keyword cppSTLfunction rfind +" syntax keyword cppSTLfunction rotate +" syntax keyword cppSTLfunction rotate_copy +" syntax keyword cppSTLfunction round_error +" syntax keyword cppSTLfunction scanf +" syntax keyword cppSTLfunction search +" syntax keyword cppSTLfunction search_n +" syntax keyword cppSTLfunction second +" syntax keyword cppSTLfunction seekg +" syntax keyword cppSTLfunction seekp +" syntax keyword cppSTLfunction setbuf +" syntax keyword cppSTLfunction set_difference +" syntax keyword cppSTLfunction setf +" syntax keyword cppSTLfunction set_intersection +" syntax keyword cppSTLfunction setjmp +" syntax keyword cppSTLfunction setlocale +" syntax keyword cppSTLfunction set_new_handler +" syntax keyword cppSTLfunction set_symmetric_difference +" syntax keyword cppSTLfunction set_union +" syntax keyword cppSTLfunction setvbuf +" syntax keyword cppSTLfunction signal +" syntax keyword cppSTLfunction signaling_NaN +" syntax keyword cppSTLfunction sin +" syntax keyword cppSTLfunction sinh +" syntax keyword cppSTLfunction size +" syntax keyword cppSTLfunction sort +" syntax keyword cppSTLfunction sort_heap +" syntax keyword cppSTLfunction splice +" syntax keyword cppSTLfunction sprintf +" syntax keyword cppSTLfunction sqrt +" syntax keyword cppSTLfunction srand +" syntax keyword cppSTLfunction sscanf +" syntax keyword cppSTLfunction stable_partition +" syntax keyword cppSTLfunction stable_sort +" syntax keyword cppSTLfunction str +" syntax keyword cppSTLfunction strcat +" syntax keyword cppSTLfunction strchr +" syntax keyword cppSTLfunction strcmp +" syntax keyword cppSTLfunction strcoll +" syntax keyword cppSTLfunction strcpy +" syntax keyword cppSTLfunction strcspn +" syntax keyword cppSTLfunction strerror +" syntax keyword cppSTLfunction strftime +" syntax keyword cppSTLfunction string +" syntax keyword cppSTLfunction strlen +" syntax keyword cppSTLfunction strncat +" syntax keyword cppSTLfunction strncmp +" syntax keyword cppSTLfunction strncpy +" syntax keyword cppSTLfunction strpbrk +" syntax keyword cppSTLfunction strrchr +" syntax keyword cppSTLfunction strspn +" syntax keyword cppSTLfunction strstr +" syntax keyword cppSTLfunction strtod +" syntax keyword cppSTLfunction strtof +" syntax keyword cppSTLfunction strtok +" syntax keyword cppSTLfunction strtol +" syntax keyword cppSTLfunction strtold +" syntax keyword cppSTLfunction strtoll +" syntax keyword cppSTLfunction strtoul +" syntax keyword cppSTLfunction strxfrm +" syntax keyword cppSTLfunction substr +" syntax keyword cppSTLfunction swap +" syntax keyword cppSTLfunction swap_ranges +" syntax keyword cppSTLfunction swprintf +" syntax keyword cppSTLfunction swscanf +" syntax keyword cppSTLfunction sync_with_stdio +" syntax keyword cppSTLfunction system +" syntax keyword cppSTLfunction tan +" syntax keyword cppSTLfunction tanh +" syntax keyword cppSTLfunction tellg +" syntax keyword cppSTLfunction tellp +" syntax keyword cppSTLfunction terminate_handler +" syntax keyword cppSTLfunction terminate +" syntax keyword cppSTLfunction set_terminate +" syntax keyword cppSTLfunction test +" syntax keyword cppSTLfunction time +" syntax keyword cppSTLfunction tmpfile +" syntax keyword cppSTLfunction tmpnam +" syntax keyword cppSTLfunction tolower +" syntax keyword cppSTLfunction top +" syntax keyword cppSTLfunction to_string +" syntax keyword cppSTLfunction to_ulong +" syntax keyword cppSTLfunction toupper +" syntax keyword cppSTLfunction to_wstring +" syntax keyword cppSTLfunction transform +" syntax keyword cppSTLfunction unary_compose +" syntax keyword cppSTLfunction unget +" syntax keyword cppSTLfunction ungetc +" syntax keyword cppSTLfunction uninitialized_copy +" syntax keyword cppSTLfunction uninitialized_copy_n +" syntax keyword cppSTLfunction uninitialized_fill +" syntax keyword cppSTLfunction uninitialized_fill_n +" syntax keyword cppSTLfunction unique +" syntax keyword cppSTLfunction unique_copy +" syntax keyword cppSTLfunction unsetf +" syntax keyword cppSTLfunction upper_bound +" syntax keyword cppSTLfunction va_arg +" syntax keyword cppSTLfunction va_copy +" syntax keyword cppSTLfunction va_end +" syntax keyword cppSTLfunction value_comp +" syntax keyword cppSTLfunction va_start +" syntax keyword cppSTLfunction vfprintf +" syntax keyword cppSTLfunction vfwprintf +" syntax keyword cppSTLfunction vprintf +" syntax keyword cppSTLfunction vsprintf +" syntax keyword cppSTLfunction vswprintf +" syntax keyword cppSTLfunction vwprintf +" syntax keyword cppSTLfunction width +" syntax keyword cppSTLfunction wprintf +" syntax keyword cppSTLfunction write +" syntax keyword cppSTLfunction wscanf +" syntax keyword cppSTLfunction mblen +" syntax keyword cppSTLfunction mbtowc +" syntax keyword cppSTLfunction wctomb +" syntax keyword cppSTLfunction mbstowcs +" syntax keyword cppSTLfunction wcstombs +" syntax keyword cppSTLfunction mbsinit +" syntax keyword cppSTLfunction btowc +" syntax keyword cppSTLfunction wctob +" syntax keyword cppSTLfunction mbrlen +" syntax keyword cppSTLfunction mbrtowc +" syntax keyword cppSTLfunction wcrtomb +" syntax keyword cppSTLfunction mbsrtowcs +" syntax keyword cppSTLfunction wcsrtombs +" syntax keyword cppSTLfunction iswalnum +" syntax keyword cppSTLfunction iswalpha +" syntax keyword cppSTLfunction iswlower +" syntax keyword cppSTLfunction iswupper +" syntax keyword cppSTLfunction iswdigit +" syntax keyword cppSTLfunction iswxdigit +" syntax keyword cppSTLfunction iswcntrl +" syntax keyword cppSTLfunction iswgraph +" syntax keyword cppSTLfunction iswspace +" syntax keyword cppSTLfunction iswprint +" syntax keyword cppSTLfunction iswpunct +" syntax keyword cppSTLfunction iswctype +" syntax keyword cppSTLfunction wctype +" syntax keyword cppSTLfunction towlower +" syntax keyword cppSTLfunction towupper +" syntax keyword cppSTLfunction towctrans +" syntax keyword cppSTLfunction wctrans +" syntax keyword cppSTLfunction wcstol +" syntax keyword cppSTLfunction wcstoll +" syntax keyword cppSTLfunction wcstoul +" syntax keyword cppSTLfunction wcstoull +" syntax keyword cppSTLfunction wcstof +" syntax keyword cppSTLfunction wcstod +" syntax keyword cppSTLfunction wcstold +" syntax keyword cppSTLfunction wcscpy +" syntax keyword cppSTLfunction wcsncpy +" syntax keyword cppSTLfunction wcscat +" syntax keyword cppSTLfunction wcsncat +" syntax keyword cppSTLfunction wcsxfrm +" syntax keyword cppSTLfunction wcslen +" syntax keyword cppSTLfunction wcscmp +" syntax keyword cppSTLfunction wcsncmp +" syntax keyword cppSTLfunction wcscoll +" syntax keyword cppSTLfunction wcschr +" syntax keyword cppSTLfunction wcsrchr +" syntax keyword cppSTLfunction wcsspn +" syntax keyword cppSTLfunction wcscspn +" syntax keyword cppSTLfunction wcspbrk +" syntax keyword cppSTLfunction wcsstr +" syntax keyword cppSTLfunction wcstok +" syntax keyword cppSTLfunction wmemcpy +" syntax keyword cppSTLfunction wmemmove +" syntax keyword cppSTLfunction wmemcmp +" syntax keyword cppSTLfunction wmemchr +" syntax keyword cppSTLfunction wmemset + +" ------------------------------------------------------------------------------ +" C++11 extensions +" ------------------------------------------------------------------------------ + +if !exists('cpp_no_cpp11') + syntax keyword cppSTLconstant nullptr + + " containers (array, vector, list, map, set, ...) + syntax keyword cppSTLtype array + " syntax keyword cppSTLfunction cbegin cend + " syntax keyword cppSTLfunction crbegin crend + " syntax keyword cppSTLfunction shrink_to_fit + " syntax keyword cppSTLfunction emplace + " syntax keyword cppSTLfunction emplace_back + " syntax keyword cppSTLfunction emplace_front + " syntax keyword cppSTLfunction emplace_hint + + " algorithm + " syntax keyword cppSTLfunction all_of any_of none_of + " syntax keyword cppSTLfunction find_if_not + " syntax keyword cppSTLfunction copy_if + " syntax keyword cppSTLfunction copy_n + " syntax keyword cppSTLfunction move + " syntax keyword cppSTLfunction move_backward + " syntax keyword cppSTLfunction shuffle + " syntax keyword cppSTLfunction is_partitioned + " syntax keyword cppSTLfunction partition_copy + " syntax keyword cppSTLfunction partition_point + " syntax keyword cppSTLfunction is_sorted + " syntax keyword cppSTLfunction is_sorted_until + " syntax keyword cppSTLfunction is_heap + " syntax keyword cppSTLfunction is_heap_until + " syntax keyword cppSTLfunction minmax + " syntax keyword cppSTLfunction minmax_element + " syntax keyword cppSTLfunction is_permutation + " syntax keyword cppSTLfunction itoa + + " atomic + syntax keyword cppSTLtype atomic + syntax keyword cppSTLtype atomic_flag + syntax keyword cppSTLtype atomic_bool + syntax keyword cppSTLtype atomic_char + syntax keyword cppSTLtype atomic_schar + syntax keyword cppSTLtype atomic_uchar + syntax keyword cppSTLtype atomic_short + syntax keyword cppSTLtype atomic_ushort + syntax keyword cppSTLtype atomic_int + syntax keyword cppSTLtype atomic_uint + syntax keyword cppSTLtype atomic_long + syntax keyword cppSTLtype atomic_ulong + syntax keyword cppSTLtype atomic_llong + syntax keyword cppSTLtype atomic_ullong + syntax keyword cppSTLtype atomic_char16_t + syntax keyword cppSTLtype atomic_char32_t + syntax keyword cppSTLtype atomic_wchar_t + syntax keyword cppSTLtype atomic_int_least8_t + syntax keyword cppSTLtype atomic_uint_least8_t + syntax keyword cppSTLtype atomic_int_least16_t + syntax keyword cppSTLtype atomic_uint_least16_t + syntax keyword cppSTLtype atomic_int_least32_t + syntax keyword cppSTLtype atomic_uint_least32_t + syntax keyword cppSTLtype atomic_int_least64_t + syntax keyword cppSTLtype atomic_uint_least64_t + syntax keyword cppSTLtype atomic_int_fast8_t + syntax keyword cppSTLtype atomic_uint_fast8_t + syntax keyword cppSTLtype atomic_int_fast16_t + syntax keyword cppSTLtype atomic_uint_fast16_t + syntax keyword cppSTLtype atomic_int_fast32_t + syntax keyword cppSTLtype atomic_uint_fast32_t + syntax keyword cppSTLtype atomic_int_fast64_t + syntax keyword cppSTLtype atomic_uint_fast64_t + syntax keyword cppSTLtype atomic_intptr_t + syntax keyword cppSTLtype atomic_uintptr_t + syntax keyword cppSTLtype atomic_size_t + syntax keyword cppSTLtype atomic_ptrdiff_t + syntax keyword cppSTLtype atomic_intmax_t + syntax keyword cppSTLtype atomic_uintmax_t + syntax keyword cppSTLconstant ATOMIC_FLAG_INIT + syntax keyword cppSTLenum memory_order + " syntax keyword cppSTLfunction is_lock_free + " syntax keyword cppSTLfunction compare_exchange_weak + " syntax keyword cppSTLfunction compare_exchange_strong + " syntax keyword cppSTLfunction fetch_add + " syntax keyword cppSTLfunction fetch_sub + " syntax keyword cppSTLfunction fetch_and + " syntax keyword cppSTLfunction fetch_or + " syntax keyword cppSTLfunction fetch_xor + " syntax keyword cppSTLfunction atomic_is_lock_free + " syntax keyword cppSTLfunction atomic_store + " syntax keyword cppSTLfunction atomic_store_explicit + " syntax keyword cppSTLfunction atomic_load + " syntax keyword cppSTLfunction atomic_load_explicit + " syntax keyword cppSTLfunction atomic_exchange + " syntax keyword cppSTLfunction atomic_exchange_explicit + " syntax keyword cppSTLfunction atomic_compare_exchange_weak + " syntax keyword cppSTLfunction atomic_compare_exchange_weak_explicit + " syntax keyword cppSTLfunction atomic_compare_exchange_strong + " syntax keyword cppSTLfunction atomic_compare_exchange_strong_explicit + " syntax keyword cppSTLfunction atomic_fetch_add + " syntax keyword cppSTLfunction atomic_fetch_add_explicit + " syntax keyword cppSTLfunction atomic_fetch_sub + " syntax keyword cppSTLfunction atomic_fetch_sub_explicit + " syntax keyword cppSTLfunction atomic_fetch_and + " syntax keyword cppSTLfunction atomic_fetch_and_explicit + " syntax keyword cppSTLfunction atomic_fetch_or + " syntax keyword cppSTLfunction atomic_fetch_or_explicit + " syntax keyword cppSTLfunction atomic_fetch_xor + " syntax keyword cppSTLfunction atomic_fetch_xor_explicit + " syntax keyword cppSTLfunction atomic_flag_test_and_set + " syntax keyword cppSTLfunction atomic_flag_test_and_set_explicit + " syntax keyword cppSTLfunction atomic_flag_clear + " syntax keyword cppSTLfunction atomic_flag_clear_explicit + " syntax keyword cppSTLfunction atomic_init + " syntax keyword cppSTLfunction ATOMIC_VAR_INIT + " syntax keyword cppSTLfunction kill_dependency + " syntax keyword cppSTLfunction atomic_thread_fence + " syntax keyword cppSTLfunction atomic_signal_fence + " syntax keyword cppSTLfunction store + " syntax keyword cppSTLfunction load + " syntax keyword cppSTLfunction exchange + + " bitset + " syntax keyword cppSTLfunction all + " syntax keyword cppSTLfunction to_ullong + + " cinttypes + " syntax keyword cppSTLfunction strtoimax + " syntax keyword cppSTLfunction strtoumax + " syntax keyword cppSTLfunction wcstoimax + " syntax keyword cppSTLfunction wcstoumax + + " chrono + syntax keyword cppSTLnamespace chrono + syntax keyword cppSTLcast duration_cast + syntax keyword cppSTLcast time_point_cast + syntax keyword cppSTLtype duration + syntax keyword cppSTLtype system_clock + syntax keyword cppSTLtype steady_clock + syntax keyword cppSTLtype high_resolution_clock + syntax keyword cppSTLtype time_point + syntax keyword cppSTLtype nanoseconds + syntax keyword cppSTLtype microseconds + syntax keyword cppSTLtype milliseconds + syntax keyword cppSTLtype seconds + syntax keyword cppSTLtype minutes + syntax keyword cppSTLtype hours + syntax keyword cppSTLtype treat_as_floating_point + syntax keyword cppSTLtype duration_values + " syntax keyword cppSTLtype rep period + " syntax keyword cppSTLfunction time_since_epoch + " syntax keyword cppSTLfunction zero + " syntax keyword cppSTLfunction now + " syntax keyword cppSTLfunction to_time_t + " syntax keyword cppSTLfunction from_time_t + + " complex + " syntax keyword cppSTLfunction proj + + " condition_variable + syntax keyword cppSTLtype condition_variable + " syntax keyword cppSTLfunction notify_all + " syntax keyword cppSTLfunction notify_one + + " cstddef + syntax keyword cppSTLtype nullptr_t max_align_t + + " cstdlib + " syntax keyword cppSTLfunction quick_exit + " syntax keyword cppSTLfunction _Exit + " syntax keyword cppSTLfunction at_quick_exit + + " cuchar + " syntax keyword cppSTLfunction mbrtoc16 + " syntax keyword cppSTLfunction c16rtomb + " syntax keyword cppSTLfunction mbrtoc32 + " syntax keyword cppSTLfunction c32rtomb + + " exception + syntax keyword cppSTLtype exception_ptr + syntax keyword cppSTLtype nested_exception + " syntax keyword cppSTLfunction get_terminate + " syntax keyword cppSTLfunction make_exception_ptr + " syntax keyword cppSTLfunction current_exception + " syntax keyword cppSTLfunction rethrow_exception + " syntax keyword cppSTLfunction throw_with_nested + " syntax keyword cppSTLfunction rethrow_if_nested + " syntax keyword cppSTLfunction rethrow_nested + + " functional + syntax keyword cppSTLexception bad_function_call + syntax keyword cppSTLfunctional function + syntax keyword cppSTLconstant _1 _2 _3 _4 _5 _6 _7 _8 _9 + syntax keyword cppSTLtype hash + syntax keyword cppSTLtype is_bind_expression + syntax keyword cppSTLtype is_placeholder + syntax keyword cppSTLtype reference_wrapper + " syntax keyword cppSTLfunction bind + " syntax keyword cppSTLfunction mem_fn + " syntax keyword cppSTLfunction ref cref + + " iomanip + " syntax keyword cppSTLios get_money + " syntax keyword cppSTLios get_time + " syntax keyword cppSTLios put_money + " syntax keyword cppSTLios put_time + + " iterator + syntax keyword cppSTLiterator move_iterator + " syntax keyword cppSTLfunction make_move_iterator + " syntax keyword cppSTLfunction next prev + " syntax keyword cppSTLfunction begin end + + " forward_list + syntax keyword cppSTLtype forward_list + " syntax keyword cppSTLfunction before_begin + " syntax keyword cppSTLfunction cbefore_begin + " syntax keyword cppSTLfunction insert_after + " syntax keyword cppSTLfunction emplace_after + " syntax keyword cppSTLfunction erase_after + " syntax keyword cppSTLfunction splice_after + + " future + syntax keyword cppSTLtype future + syntax keyword cppSTLtype packaged_task + syntax keyword cppSTLtype promise + syntax keyword cppSTLtype shared_future + syntax keyword cppSTLenum future_status + syntax keyword cppSTLenum future_errc + syntax keyword cppSTLenum launch + syntax keyword cppSTLexception future_error + " syntax keyword cppSTLfunction get_future + " syntax keyword cppSTLfunction set_value + " syntax keyword cppSTLfunction set_value_at_thread_exit + " syntax keyword cppSTLfunction set_exception + " syntax keyword cppSTLfunction set_exception_at_thread_exit + " syntax keyword cppSTLfunction wait_for + " syntax keyword cppSTLfunction wait_until + " syntax keyword cppSTLfunction future_category + " syntax keyword cppSTLfunction make_error_code + " syntax keyword cppSTLfunction make_error_condition + " syntax keyword cppSTLfunction make_ready_at_thread_exit + " syntax keyword cppSTLfunction async + " syntax keyword cppSTLfunction share + " syntax keyword cppSTLfunction valid + " syntax keyword cppSTLfunction wait + + " initializer_list + syntax keyword cppSTLtype initializer_list + + " ios + syntax keyword cppSTLenum io_errc + " syntax keyword cppSTLtype is_error_code_enum + " syntax keyword cppSTLfunction iostream_category + " syntax keyword cppSTLfunction vscanf vfscanf vsscanf + " syntax keyword cppSTLfunction snprintf vsnprintf + " syntax keyword cppSTLfunction vwscanf vfwscanf vswscanf + + " limits + syntax keyword cppSTLconstant max_digits10 + " syntax keyword cppSTLfunction lowest + + " locale + syntax keyword cppSTLtype wstring_convert + syntax keyword cppSTLtype wbuffer_convert + syntax keyword cppSTLtype codecvt_utf8 + syntax keyword cppSTLtype codecvt_utf16 + syntax keyword cppSTLtype codecvt_utf8_utf16 + syntax keyword cppSTLtype codecvt_mode + syntax keyword cppSTLfunction isblank + " syntax keyword cppSTLfunction iswblank + + " memory + syntax keyword cppSTLtype unique_ptr + syntax keyword cppSTLtype shared_ptr + syntax keyword cppSTLtype weak_ptr + syntax keyword cppSTLtype owner_less + syntax keyword cppSTLtype enable_shared_from_this + syntax keyword cppSTLtype default_delete + syntax keyword cppSTLtype allocator_traits + syntax keyword cppSTLtype allocator_type + syntax keyword cppSTLtype allocator_arg_t + syntax keyword cppSTLtype uses_allocator + syntax keyword cppSTLtype scoped_allocator_adaptor + syntax keyword cppSTLtype pointer_safety + syntax keyword cppSTLtype pointer_traits + syntax keyword cppSTLconstant allocator_arg + syntax keyword cppSTLexception bad_weak_ptr + syntax keyword cppSTLcast static_pointer_cast + syntax keyword cppSTLcast dynamic_pointer_cast + syntax keyword cppSTLcast const_pointer_cast + syntax keyword cppSTLfunction make_shared + " syntax keyword cppSTLfunction declare_reachable + " syntax keyword cppSTLfunction undeclare_reachable + " syntax keyword cppSTLfunction declare_no_pointers + " syntax keyword cppSTLfunction undeclare_no_pointers + " syntax keyword cppSTLfunction get_pointer_safety + " syntax keyword cppSTLfunction addressof + " syntax keyword cppSTLfunction allocate_shared + " syntax keyword cppSTLfunction get_deleter + " syntax keyword cppSTLfunction align + + " mutex + syntax keyword cppSTLtype mutex + syntax keyword cppSTLtype timed_mutex + syntax keyword cppSTLtype recursive_mutex + syntax keyword cppSTLtype recursive_timed_mutex + syntax keyword cppSTLtype lock_guard + syntax keyword cppSTLtype unique_lock + syntax keyword cppSTLtype defer_lock_t + syntax keyword cppSTLtype try_to_lock_t + syntax keyword cppSTLtype adopt_lock_t + syntax keyword cppSTLtype once_flag + syntax keyword cppSTLtype condition_variable_any + syntax keyword cppSTLenum cv_status + syntax keyword cppSTLconstant defer_lock try_to_lock adopt_lock + " syntax keyword cppSTLfunction try_lock lock unlock try_lock_for try_lock_until + " syntax keyword cppSTLfunction call_once + " syntax keyword cppSTLfunction owns_lock + " syntax keyword cppSTLfunction notify_all_at_thread_exit + " syntax keyword cppSTLfunction release + " Note: unique_lock has method 'mutex()', but already set as cppSTLtype + " syntax keyword cppSTLfunction mutex + + " new + syntax keyword cppSTLexception bad_array_new_length + " syntax keyword cppSTLfunction get_new_handler + + " numerics, cmath + syntax keyword cppSTLconstant HUGE_VALF + syntax keyword cppSTLconstant HUGE_VALL + syntax keyword cppSTLconstant INFINITY + syntax keyword cppSTLconstant NAN + syntax keyword cppSTLconstant math_errhandling + syntax keyword cppSTLconstant MATH_ERRNO + syntax keyword cppSTLconstant MATH_ERREXCEPT + syntax keyword cppSTLconstant FP_NORMAL + syntax keyword cppSTLconstant FP_SUBNORMAL + syntax keyword cppSTLconstant FP_ZERO + syntax keyword cppSTLconstant FP_INFINITY + syntax keyword cppSTLconstant FP_NAN + syntax keyword cppSTLconstant FLT_EVAL_METHOD + " syntax keyword cppSTLfunction imaxabs + " syntax keyword cppSTLfunction imaxdiv + " syntax keyword cppSTLfunction remainder + " syntax keyword cppSTLfunction remquo + " syntax keyword cppSTLfunction fma + " syntax keyword cppSTLfunction fmax + " syntax keyword cppSTLfunction fmin + " syntax keyword cppSTLfunction fdim + " syntax keyword cppSTLfunction nan + " syntax keyword cppSTLfunction nanf + " syntax keyword cppSTLfunction nanl + " syntax keyword cppSTLfunction exp2 + " syntax keyword cppSTLfunction expm1 + " syntax keyword cppSTLfunction log1p + " syntax keyword cppSTLfunction log2 + " syntax keyword cppSTLfunction cbrt + " syntax keyword cppSTLfunction hypot + " syntax keyword cppSTLfunction asinh + " syntax keyword cppSTLfunction acosh + " syntax keyword cppSTLfunction atanh + " syntax keyword cppSTLfunction erf + " syntax keyword cppSTLfunction erfc + " syntax keyword cppSTLfunction lgamma + " syntax keyword cppSTLfunction tgamma + " syntax keyword cppSTLfunction trunc + " syntax keyword cppSTLfunction round + " syntax keyword cppSTLfunction lround + " syntax keyword cppSTLfunction llround + " syntax keyword cppSTLfunction nearbyint + " syntax keyword cppSTLfunction rint + " syntax keyword cppSTLfunction lrint + " syntax keyword cppSTLfunction llrint + " syntax keyword cppSTLfunction scalbn + " syntax keyword cppSTLfunction scalbln + " syntax keyword cppSTLfunction ilogb + " syntax keyword cppSTLfunction logb + " syntax keyword cppSTLfunction nextafter + " syntax keyword cppSTLfunction nexttoward + " syntax keyword cppSTLfunction copysign + " syntax keyword cppSTLfunction fpclassify + " syntax keyword cppSTLfunction isfinite + " syntax keyword cppSTLfunction isinf + " syntax keyword cppSTLfunction isnan + " syntax keyword cppSTLfunction isnormal + " syntax keyword cppSTLfunction signbit + + " random + syntax keyword cppSTLtype linear_congruential_engine + syntax keyword cppSTLtype mersenne_twister_engine + syntax keyword cppSTLtype subtract_with_carry_engine + syntax keyword cppSTLtype discard_block_engine + syntax keyword cppSTLtype independent_bits_engine + syntax keyword cppSTLtype shuffle_order_engine + syntax keyword cppSTLtype random_device + syntax keyword cppSTLtype default_random_engine + syntax keyword cppSTLtype minstd_rand0 + syntax keyword cppSTLtype minstd_rand + syntax keyword cppSTLtype mt19937 + syntax keyword cppSTLtype mt19937_64 + syntax keyword cppSTLtype ranlux24_base + syntax keyword cppSTLtype ranlux48_base + syntax keyword cppSTLtype ranlux24 + syntax keyword cppSTLtype ranlux48 + syntax keyword cppSTLtype knuth_b + syntax keyword cppSTLtype uniform_int_distribution + syntax keyword cppSTLtype uniform_real_distribution + syntax keyword cppSTLtype bernoulli_distribution + syntax keyword cppSTLtype binomial_distribution + syntax keyword cppSTLtype negative_binomial_distribution + syntax keyword cppSTLtype geometric_distribution + syntax keyword cppSTLtype poisson_distribution + syntax keyword cppSTLtype exponential_distribution + syntax keyword cppSTLtype gamma_distribution + syntax keyword cppSTLtype weibull_distribution + syntax keyword cppSTLtype extreme_value_distribution + syntax keyword cppSTLtype normal_distribution + syntax keyword cppSTLtype lognormal_distribution + syntax keyword cppSTLtype chi_squared_distribution + syntax keyword cppSTLtype cauchy_distribution + syntax keyword cppSTLtype fisher_f_distribution + syntax keyword cppSTLtype student_t_distribution + syntax keyword cppSTLtype discrete_distribution + syntax keyword cppSTLtype piecewise_constant_distribution + syntax keyword cppSTLtype piecewise_linear_distribution + syntax keyword cppSTLtype seed_seq + syntax keyword cppSTLfunction generate_canonical + + " ratio + syntax keyword cppSTLtype ratio + syntax keyword cppSTLtype yocto + syntax keyword cppSTLtype zepto + syntax keyword cppSTLtype atto + syntax keyword cppSTLtype femto + syntax keyword cppSTLtype pico + syntax keyword cppSTLtype nano + syntax keyword cppSTLtype micro + syntax keyword cppSTLtype milli + syntax keyword cppSTLtype centi + syntax keyword cppSTLtype deci + syntax keyword cppSTLtype deca + syntax keyword cppSTLtype hecto + syntax keyword cppSTLtype kilo + syntax keyword cppSTLtype mega + syntax keyword cppSTLtype giga + syntax keyword cppSTLtype tera + syntax keyword cppSTLtype peta + syntax keyword cppSTLtype exa + syntax keyword cppSTLtype zetta + syntax keyword cppSTLtype yotta + syntax keyword cppSTLtype ratio_add + syntax keyword cppSTLtype ratio_subtract + syntax keyword cppSTLtype ratio_multiply + syntax keyword cppSTLtype ratio_divide + syntax keyword cppSTLtype ratio_equal + syntax keyword cppSTLtype ratio_not_equal + syntax keyword cppSTLtype ratio_less + syntax keyword cppSTLtype ratio_less_equal + syntax keyword cppSTLtype ratio_greater + syntax keyword cppSTLtype ratio_greater_equal + + " regex + syntax keyword cppSTLtype basic_regex + syntax keyword cppSTLtype sub_match + syntax keyword cppSTLtype match_results + syntax keyword cppSTLtype regex_traits + syntax keyword cppSTLtype regex_match regex_search regex_replace + syntax keyword cppSTLiterator regex_iterator + syntax keyword cppSTLiterator regex_token_iterator + syntax keyword cppSTLexception regex_error + syntax keyword cppSTLtype syntax_option_type match_flag_type error_type + + " string + " syntax keyword cppSTLfunction stoi + " syntax keyword cppSTLfunction stol + " syntax keyword cppSTLfunction stoll + " syntax keyword cppSTLfunction stoul + " syntax keyword cppSTLfunction stoull + " syntax keyword cppSTLfunction stof + " syntax keyword cppSTLfunction stod + " syntax keyword cppSTLfunction stold + + " system_error + syntax keyword cppSTLenum errc + syntax keyword cppSTLexception system_error + syntax keyword cppSTLtype error_code + syntax keyword cppSTLtype error_condition + syntax keyword cppSTLtype error_category + syntax keyword cppSTLtype is_error_code_enum + syntax keyword cppSTLtype is_error_condition_enum + " syntax keyword cppSTLfunction default_error_condition + " syntax keyword cppSTLfunction generic_category + " syntax keyword cppSTLfunction system_category + " syntax keyword cppSTLfunction code + " syntax keyword cppSTLfunction category + " syntax keyword cppSTLfunction message + " syntax keyword cppSTLfunction equivalent + + " thread + syntax keyword cppSTLnamespace this_thread + syntax keyword cppSTLtype thread + " syntax keyword cppSTLfunction get_id + " syntax keyword cppSTLfunction sleep_for + " syntax keyword cppSTLfunction sleep_until + " syntax keyword cppSTLfunction joinable + " syntax keyword cppSTLfunction native_handle + " syntax keyword cppSTLfunction hardware_concurrency + " syntax keyword cppSTLfunction yield + " syntax keyword cppSTLfunction join + " syntax keyword cppSTLfunction detach + + " tuple + syntax keyword cppSTLtype tuple + syntax keyword cppSTLtype tuple_size + syntax keyword cppSTLtype tuple_element + syntax keyword cppSTLfunction make_tuple + syntax keyword cppSTLfunction tie + syntax keyword cppSTLfunction forward_as_tuple + syntax keyword cppSTLfunction tuple_cat + " Note: 'ignore' is already set as cppSTLfunction + " syntax keyword cppSTLconstant ignore + + " typeindex + syntax keyword cppSTLtype type_index + + " type_traits + syntax keyword cppSTLtype is_void + syntax keyword cppSTLtype is_integral + syntax keyword cppSTLtype is_floating_point + syntax keyword cppSTLtype is_array + syntax keyword cppSTLtype is_enum + syntax keyword cppSTLtype is_union + syntax keyword cppSTLtype is_class + syntax keyword cppSTLtype is_function + syntax keyword cppSTLtype is_pointer + syntax keyword cppSTLtype is_lvalue_reference + syntax keyword cppSTLtype is_rvalue_reference + syntax keyword cppSTLtype is_member_object_pointer + syntax keyword cppSTLtype is_member_function_pointer + syntax keyword cppSTLtype is_fundamental + syntax keyword cppSTLtype is_arithmetic + syntax keyword cppSTLtype is_scalar + syntax keyword cppSTLtype is_object + syntax keyword cppSTLtype is_compound + syntax keyword cppSTLtype is_reference + syntax keyword cppSTLtype is_member_pointer + syntax keyword cppSTLtype is_const + syntax keyword cppSTLtype is_volatile + syntax keyword cppSTLtype is_trivial + syntax keyword cppSTLtype is_trivially_copyable + syntax keyword cppSTLtype is_standard_layout + syntax keyword cppSTLtype is_pod + syntax keyword cppSTLtype is_literal_type + syntax keyword cppSTLtype is_empty + syntax keyword cppSTLtype is_polymorphic + syntax keyword cppSTLtype is_abstract + syntax keyword cppSTLtype is_signed + syntax keyword cppSTLtype is_unsigned + syntax keyword cppSTLtype is_constructible + syntax keyword cppSTLtype is_trivially_constructible + syntax keyword cppSTLtype is_nothrow_constructible + syntax keyword cppSTLtype is_default_constructible + syntax keyword cppSTLtype is_trivially_default_constructible + syntax keyword cppSTLtype is_nothrow_default_constructible + syntax keyword cppSTLtype is_copy_constructible + syntax keyword cppSTLtype is_trivially_copy_constructible + syntax keyword cppSTLtype is_nothrow_copy_constructible + syntax keyword cppSTLtype is_move_constructible + syntax keyword cppSTLtype is_trivially_move_constructible + syntax keyword cppSTLtype is_nothrow_move_constructible + syntax keyword cppSTLtype is_assignable + syntax keyword cppSTLtype is_trivially_assignable + syntax keyword cppSTLtype is_nothrow_assignable + syntax keyword cppSTLtype is_copy_assignable + syntax keyword cppSTLtype is_trivially_copy_assignable + syntax keyword cppSTLtype is_nothrow_copy_assignable + syntax keyword cppSTLtype is_move_assignable + syntax keyword cppSTLtype is_trivially_move_assignable + syntax keyword cppSTLtype is_nothrow_move_assignable + syntax keyword cppSTLtype is_destructible + syntax keyword cppSTLtype is_trivially_destructible + syntax keyword cppSTLtype is_nothrow_destructible + syntax keyword cppSTLtype has_virtual_destructor + syntax keyword cppSTLtype alignment_of + syntax keyword cppSTLtype rank + syntax keyword cppSTLtype extent + syntax keyword cppSTLtype is_same + syntax keyword cppSTLtype is_base_of + syntax keyword cppSTLtype is_convertible + syntax keyword cppSTLtype remove_cv + syntax keyword cppSTLtype remove_const + syntax keyword cppSTLtype remove_volatile + syntax keyword cppSTLtype add_cv + syntax keyword cppSTLtype add_const + syntax keyword cppSTLtype add_volatile + syntax keyword cppSTLtype remove_reference + syntax keyword cppSTLtype add_lvalue_reference + syntax keyword cppSTLtype add_rvalue_reference + syntax keyword cppSTLtype remove_pointer + syntax keyword cppSTLtype add_pointer + syntax keyword cppSTLtype make_signed + syntax keyword cppSTLtype make_unsigned + syntax keyword cppSTLtype remove_extent + syntax keyword cppSTLtype remove_all_extents + syntax keyword cppSTLtype aligned_storage + syntax keyword cppSTLtype aligned_union + syntax keyword cppSTLtype decay + syntax keyword cppSTLtype enable_if + syntax keyword cppSTLtype conditional + syntax keyword cppSTLtype common_type + syntax keyword cppSTLtype underlying_type + syntax keyword cppSTLtype result_of + syntax keyword cppSTLtype integral_constant + syntax keyword cppSTLtype true_type + syntax keyword cppSTLtype false_type + + " unordered_map, unordered_set, unordered_multimap, unordered_multiset + syntax keyword cppSTLtype unordered_map + syntax keyword cppSTLtype unordered_set + syntax keyword cppSTLtype unordered_multimap + syntax keyword cppSTLtype unordered_multiset + syntax keyword cppSTLtype hasher + syntax keyword cppSTLtype key_equal + syntax keyword cppSTLiterator local_iterator + syntax keyword cppSTLiterator const_local_iterator + " syntax keyword cppSTLfunction bucket_count + " syntax keyword cppSTLfunction max_bucket_count + " syntax keyword cppSTLfunction bucket_size + " syntax keyword cppSTLfunction bucket + " syntax keyword cppSTLfunction load_factor + " syntax keyword cppSTLfunction max_load_factor + " syntax keyword cppSTLfunction rehash + " syntax keyword cppSTLfunction reserve + " syntax keyword cppSTLfunction hash_function + " syntax keyword cppSTLfunction key_eq + + " utility + syntax keyword cppSTLtype piecewise_construct_t + syntax keyword cppSTLconstant piecewise_construct + syntax keyword cppSTLfunction declval + syntax keyword cppSTLfunction forward + syntax keyword cppSTLfunction move + syntax keyword cppSTLfunction move_if_noexcept + + " raw string literals + syntax region cppRawString matchgroup=cppRawDelimiter start=@\%(u8\|[uLU]\)\=R"\z([[:alnum:]_{}[\]#<>%:;.?*\+\-/\^&|~!=,"']\{,16}\)(@ end=/)\z1"/ contains=@Spell + + syn match cNumber "0b[01]\+" +endif " C++11 + + +" ------------------------------------------------------------------------------ +" C++14 extensions +" ------------------------------------------------------------------------------ + +if !exists('cpp_no_cpp14') + " chrono + syntax keyword cppSTLnamespace literals + syntax keyword cppSTLnamespace chrono_literals + " TODO: add literals h, min, s, ms, us, ns + " syn keyword cppStorageClass? + + " complex + " TODO: add literals i, if, il + " syn keyword cppStorageClass? + + " iomanip + " syntax keyword cppSTLfunction quoted + + " iterator + " syntax keyword cppSTLfunction make_reverse_iterator + + " memory + syntax keyword cppSTLfunction make_unique + + " utility + syntax keyword cppSTLtype integer_sequence + syntax keyword cppSTLtype index_sequence + syntax keyword cppSTLtype make_integer_sequence + syntax keyword cppSTLtype make_index_sequence + syntax keyword cppSTLtype index_sequence_for + + " shared_mutex + syntax keyword cppSTLtype shared_timed_mutex + syntax keyword cppSTLtype shared_lock + " syntax keyword cppSTLfunction lock_shared + " syntax keyword cppSTLfunction unlock_shared + " syntax keyword cppSTLfunction try_lock_shared + " syntax keyword cppSTLfunction try_lock_shared_for + " syntax keyword cppSTLfunction try_lock_shared_until + + " string + syntax keyword cppSTLnamespace string_literals + + " tuple + syntax keyword cppSTLtype tuple_element_t + + " type_traits + syntax keyword cppSTLtype is_null_pointer + syntax keyword cppSTLtype remove_cv_t + syntax keyword cppSTLtype remove_const_t + syntax keyword cppSTLtype remove_volatile_t + syntax keyword cppSTLtype add_cv_t + syntax keyword cppSTLtype add_const_t + syntax keyword cppSTLtype add_volatile_t + syntax keyword cppSTLtype remove_reference_t + syntax keyword cppSTLtype add_lvalue_reference_t + syntax keyword cppSTLtype add_rvalue_reference_t + syntax keyword cppSTLtype remove_pointer_t + syntax keyword cppSTLtype add_pointer_t + syntax keyword cppSTLtype make_signed_t + syntax keyword cppSTLtype make_unsigned_t + syntax keyword cppSTLtype remove_extent_t + syntax keyword cppSTLtype remove_all_extents_t + syntax keyword cppSTLtype aligned_storage_t + syntax keyword cppSTLtype aligned_union_t + syntax keyword cppSTLtype decay_t + syntax keyword cppSTLtype enable_if_t + syntax keyword cppSTLtype conditional_t + syntax keyword cppSTLtype common_type_t + syntax keyword cppSTLtype underlying_type_t + syntax keyword cppSTLtype result_of_t +endif " C++14 + + +" ------------------------------------------------------------------------------ +" C++17 extensions +" ------------------------------------------------------------------------------ + +if !exists('cpp_no_cpp17') + " syntax keyword cppSTLfunction data + + " algorithm + " syntax keyword cppSTLfunction clamp + " syntax keyword cppSTLfunction for_each_n + + " any + syntax keyword cppSTLtype any + syntax keyword cppSTLexception bad_any_cast + syntax keyword cppSTLcast any_cast + " syntax keyword cppSTLfunction any_cast + " syntax keyword cppSTLfunction make_any + + " array + " syntax keyword cppSTLfunction to_array + " syntax keyword cppSTLfunction make_array + + " atomic + syntax keyword cppSTLconstant is_always_lock_free + + " chrono + syntax keyword cppSTLbool treat_as_floating_point_v + + " cmath + " syntax keyword cppSTLfunction assoc_laguerre assoc_laguerref assoc_laguerrel + " syntax keyword cppSTLfunction assoc_legendre assoc_legendref assoc_legendrel + " syntax keyword cppSTLfunction beta betaf betal + " syntax keyword cppSTLfunction comp_ellint_1 comp_ellint_1f comp_ellint_1l + " syntax keyword cppSTLfunction comp_ellint_2 comp_ellint_2f comp_ellint_2l + " syntax keyword cppSTLfunction comp_ellint_3 comp_ellint_3f comp_ellint_3l + " syntax keyword cppSTLfunction cyl_bessel_i cyl_bessel_if cyl_bessel_il + " syntax keyword cppSTLfunction cyl_bessel_j cyl_bessel_jf cyl_bessel_jl + " syntax keyword cppSTLfunction cyl_bessel_k cyl_bessel_kf cyl_bessel_kl + " syntax keyword cppSTLfunction cyl_neumann cyl_neumannf cyl_neumannl + " syntax keyword cppSTLfunction ellint_1 ellint_1f ellint_1l + " syntax keyword cppSTLfunction ellint_2 ellint_2f ellint_2l + " syntax keyword cppSTLfunction ellint_3 ellint_3f ellint_3l + " syntax keyword cppSTLfunction expint expintf expintl + " syntax keyword cppSTLfunction hermite hermitef hermitel + " syntax keyword cppSTLfunction legendre legendrefl egendrel + " syntax keyword cppSTLfunction laguerre laguerref laguerrel + " syntax keyword cppSTLfunction riemann_zeta riemann_zetaf riemann_zetal + " syntax keyword cppSTLfunction sph_bessel sph_besself sph_bessell + " syntax keyword cppSTLfunction sph_legendre sph_legendref sph_legendrel + " syntax keyword cppSTLfunction sph_neumann sph_neumannf sph_neumannl + + " cstdlib + " syntax keyword cppSTLfunction aligned_alloc + + " exception + " syntax keyword cppSTLfunction uncaught_exceptions + + " execution + syntax keyword cppSTLnamespace execution + syntax keyword cppSTLconstant seq par par_unseq + syntax keyword cppSTLbool is_execution_policy_v + syntax keyword cppSTLtype sequenced_policy + syntax keyword cppSTLtype parallel_policy + syntax keyword cppSTLtype parallel_unsequenced_policy + syntax keyword cppSTLtype is_execution_policy + + " filesystem + syntax keyword cppSTLnamespace filesystem + syntax keyword cppSTLexception filesystem_error + syntax keyword cppSTLtype path + syntax keyword cppSTLtype directory_entry + syntax keyword cppSTLtype directory_iterator + syntax keyword cppSTLtype recursive_directory_iterator + syntax keyword cppSTLtype file_status + syntax keyword cppSTLtype space_info + syntax keyword cppSTLtype file_time_type + syntax keyword cppSTLenum file_type + syntax keyword cppSTLenum perms + syntax keyword cppSTLenum perm_options + syntax keyword cppSTLenum copy_options + syntax keyword cppSTLenum directory_options + syntax keyword cppSTLenum format + syntax keyword cppSTLconstant native_format generic_format auto_format + syntax keyword cppSTLconstant preferred_separator + syntax keyword cppSTLconstant skip_existing + syntax keyword cppSTLconstant overwrite_existing + syntax keyword cppSTLconstant update_existing + syntax keyword cppSTLconstant recursive + syntax keyword cppSTLconstant copy_symlinks + syntax keyword cppSTLconstant skip_symlinks + syntax keyword cppSTLconstant directories_only + syntax keyword cppSTLconstant create_symlinks + syntax keyword cppSTLconstant create_hard_links + syntax keyword cppSTLconstant owner_read owner_write owner_exec owner_all + syntax keyword cppSTLconstant group_read group_write group_exec group_all + syntax keyword cppSTLconstant others_read others_write others_exec others_all + syntax keyword cppSTLconstant set_uid set_gid sticky_bit + syntax keyword cppSTLconstant follow_directory_symlink skip_permission_denied + " Note: following keywords are very likely to coincide with some user-defined variables + " syntax keyword cppSTLconstant all mask unknown + " syntax keyword cppSTLconstant replace add remove nofollow + " syntax keyword cppSTLconstant none + " syntax keyword cppSTLconstant not_found + " syntax keyword cppSTLconstant regular + " syntax keyword cppSTLconstant directory + " syntax keyword cppSTLconstant symlink + " syntax keyword cppSTLconstant block + " syntax keyword cppSTLconstant character + " syntax keyword cppSTLconstant fifo + " syntax keyword cppSTLconstant socket + " syntax keyword cppSTLconstant unknown + + " Note: 'capacity' and 'free' are already set as cppSTLfunction + " syntax keyword cppSTLconstant capacity + " syntax keyword cppSTLconstant free + " syntax keyword cppSTLconstant available + " syntax keyword cppSTLfunction concat + " syntax keyword cppSTLfunction make_preferred + " syntax keyword cppSTLfunction remove_filename + " syntax keyword cppSTLfunction replace_filename + " syntax keyword cppSTLfunction replace_extension + " syntax keyword cppSTLfunction native + " syntax keyword cppSTLfunction string_type + " Note: wstring, u8string, u16string, u32string already set as cppSTLtype + " syntax keyword cppSTLfunction wstring + " syntax keyword cppSTLfunction u8string + " syntax keyword cppSTLfunction u16string + " syntax keyword cppSTLfunction u32string + " syntax keyword cppSTLfunction generic_string + " syntax keyword cppSTLfunction generic_wstring + " syntax keyword cppSTLfunction generic_u8string + " syntax keyword cppSTLfunction generic_u16string + " syntax keyword cppSTLfunction generic_u32string + " syntax keyword cppSTLfunction lexically_normal + " syntax keyword cppSTLfunction lexically_relative + " syntax keyword cppSTLfunction lexically_proximate + " syntax keyword cppSTLfunction root_name + " syntax keyword cppSTLfunction root_directory + " syntax keyword cppSTLfunction root_path + " syntax keyword cppSTLfunction relative_path + " syntax keyword cppSTLfunction parent_path + " syntax keyword cppSTLfunction filename + " syntax keyword cppSTLfunction stem + " syntax keyword cppSTLfunction extension + " syntax keyword cppSTLfunction has_root_name + " syntax keyword cppSTLfunction has_root_directory + " syntax keyword cppSTLfunction has_root_path + " syntax keyword cppSTLfunction has_relative_path + " syntax keyword cppSTLfunction has_parent_path + " syntax keyword cppSTLfunction has_filename + " syntax keyword cppSTLfunction has_stem + " syntax keyword cppSTLfunction has_extension + " syntax keyword cppSTLfunction is_absolute + " syntax keyword cppSTLfunction is_relative + " syntax keyword cppSTLfunction hash_value + " syntax keyword cppSTLfunction u8path + " syntax keyword cppSTLfunction path1 + " syntax keyword cppSTLfunction path2 + " syntax keyword cppSTLfunction path + " syntax keyword cppSTLfunction status + " syntax keyword cppSTLfunction symlink_status + " syntax keyword cppSTLfunction options + " syntax keyword cppSTLfunction depth + " syntax keyword cppSTLfunction recursive_pending + " syntax keyword cppSTLfunction disable_recursive_pending + " syntax keyword cppSTLfunction type + " syntax keyword cppSTLfunction permissions + " syntax keyword cppSTLfunction absolute + " syntax keyword cppSTLfunction system_complete + " syntax keyword cppSTLfunction canonical + " syntax keyword cppSTLfunction weakly_canonical + " syntax keyword cppSTLfunction relative + " syntax keyword cppSTLfunction proximate + " syntax keyword cppSTLfunction copy_file + " syntax keyword cppSTLfunction copy_symlink + " syntax keyword cppSTLfunction create_directory + " syntax keyword cppSTLfunction create_directories + " syntax keyword cppSTLfunction create_hard_link + " syntax keyword cppSTLfunction create_symlink + " syntax keyword cppSTLfunction create_directory_symlink + " syntax keyword cppSTLfunction current_path + " syntax keyword cppSTLfunction exists + " syntax keyword cppSTLfunction file_size + " syntax keyword cppSTLfunction hard_link_count + " syntax keyword cppSTLfunction last_write_time + " syntax keyword cppSTLfunction read_symlink + " syntax keyword cppSTLfunction remove_all + " syntax keyword cppSTLfunction resize_file + " syntax keyword cppSTLfunction space + " syntax keyword cppSTLfunction temp_directory_path + " syntax keyword cppSTLfunction is_block_file + " syntax keyword cppSTLfunction is_character_file + " syntax keyword cppSTLfunction is_directory + " syntax keyword cppSTLfunction is_fifo + " syntax keyword cppSTLfunction is_other + " syntax keyword cppSTLfunction is_regular_file + " syntax keyword cppSTLfunction is_socket + " syntax keyword cppSTLfunction is_symlink + " syntax keyword cppSTLfunction status_known + " Note: 'is_empty' already set as cppSTLtype + " syntax keyword cppSTLfunction is_empty + + " functional + syntax keyword cppSTLtype default_order + syntax keyword cppSTLtype default_order_t + syntax keyword cppSTLtype default_searcher + syntax keyword cppSTLtype boyer_moore_searcher + syntax keyword cppSTLtype boyer_moore_horspool_searcher + syntax keyword cppSTLbool is_bind_expression_v + syntax keyword cppSTLbool is_placeholder_v + " syntax keyword cppSTLfunction not_fn + " syntax keyword cppSTLfunction make_default_searcher + " syntax keyword cppSTLfunction make_boyer_moore_searcher + " syntax keyword cppSTLfunction make_boyer_moore_horspool_searcher + " syntax keyword cppSTLfunction invoke + + " memory + syntax keyword cppSTLcast reinterpret_pointer_cast + " syntax keyword cppSTLfunction uninitialized_move + " syntax keyword cppSTLfunction uninitialized_move_n + " syntax keyword cppSTLfunction uninitialized_default_construct + " syntax keyword cppSTLfunction uninitialized_default_construct_n + " syntax keyword cppSTLfunction uninitialized_value_construct + " syntax keyword cppSTLfunction uninitialized_value_construct_n + " syntax keyword cppSTLfunction destroy_at + " syntax keyword cppSTLfunction destroy_n + + " memory_resource + syntax keyword cppSTLtype polymorphic_allocator + syntax keyword cppSTLtype memory_resource + syntax keyword cppSTLtype synchronized_pool_resource + syntax keyword cppSTLtype unsynchronized_pool_resource + syntax keyword cppSTLtype pool_options + syntax keyword cppSTLtype monotonic_buffer_resource + " syntax keyword cppSTLfunction upstream_resource + " syntax keyword cppSTLfunction get_default_resource + " syntax keyword cppSTLfunction new_default_resource + " syntax keyword cppSTLfunction set_default_resource + " syntax keyword cppSTLfunction null_memory_resource + " syntax keyword cppSTLfunction allocate + " syntax keyword cppSTLfunction deallocate + " syntax keyword cppSTLfunction construct + " syntax keyword cppSTLfunction destruct + " syntax keyword cppSTLfunction resource + " syntax keyword cppSTLfunction select_on_container_copy_construction + " syntax keyword cppSTLfunction do_allocate + " syntax keyword cppSTLfunction do_deallocate + " syntax keyword cppSTLfunction do_is_equal + + " mutex + syntax keyword cppSTLtype scoped_lock + + " new + syntax keyword cppSTLconstant hardware_destructive_interference_size + syntax keyword cppSTLconstant hardware_constructive_interference_size + " syntax keyword cppSTLfunction launder + + " numeric + " syntax keyword cppSTLfunction gcd + " syntax keyword cppSTLfunction lcm + " syntax keyword cppSTLfunction exclusive_scan + " syntax keyword cppSTLfunction inclusive_scan + " syntax keyword cppSTLfunction transform_reduce + " syntax keyword cppSTLfunction transform_exclusive_scan + " syntax keyword cppSTLfunction transform_inclusive_scan + " syntax keyword cppSTLfunction reduce + + " optional + syntax keyword cppSTLtype optional + syntax keyword cppSTLtype nullopt_t + syntax keyword cppSTLexception bad_optional_access + syntax keyword cppSTLconstant nullopt + syntax keyword cppSTLfunction make_optional + " syntax keyword cppSTLfunction value_or + " syntax keyword cppSTLfunction has_value + " syntax keyword cppSTLfunction value + + " shared_mutex + syntax keyword cppSTLtype shared_mutex + + " string_view + syntax keyword cppSTLtype basic_string_view + syntax keyword cppSTLtype string_view + syntax keyword cppSTLtype wstring_view + syntax keyword cppSTLtype u16string_view + syntax keyword cppSTLtype u32string_view + " syntax keyword cppSTLfunction remove_prefix + " syntax keyword cppSTLfunction remove_suffix + + " system_error + syntax keyword cppSTLbool is_error_code_enum_v + syntax keyword cppSTLbool is_error_condition_enum_v + + " tuple + syntax keyword cppSTLconstant tuple_size_v + syntax keyword cppSTLfunction make_from_tuple + " syntax keyword cppSTLfunction apply + + " type_traits + syntax keyword cppSTLbool is_void_v + syntax keyword cppSTLbool is_null_pointer_v + syntax keyword cppSTLbool is_integral_v + syntax keyword cppSTLbool is_floating_point_v + syntax keyword cppSTLbool is_array_v + syntax keyword cppSTLbool is_enum_v + syntax keyword cppSTLbool is_union_v + syntax keyword cppSTLbool is_class_v + syntax keyword cppSTLbool is_function_v + syntax keyword cppSTLbool is_pointer_v + syntax keyword cppSTLbool is_lvalue_reference_v + syntax keyword cppSTLbool is_rvalue_reference_v + syntax keyword cppSTLbool is_member_object_pointer_v + syntax keyword cppSTLbool is_member_function_pointer_v + syntax keyword cppSTLbool is_fundamental_v + syntax keyword cppSTLbool is_arithmetic_v + syntax keyword cppSTLbool is_scalar_v + syntax keyword cppSTLbool is_object_v + syntax keyword cppSTLbool is_compound_v + syntax keyword cppSTLbool is_reference_v + syntax keyword cppSTLbool is_member_pointer_v + syntax keyword cppSTLbool is_const_v + syntax keyword cppSTLbool is_volatile_v + syntax keyword cppSTLbool is_trivial_v + syntax keyword cppSTLbool is_trivially_copyable_v + syntax keyword cppSTLbool is_standard_layout_v + syntax keyword cppSTLbool is_pod_v + syntax keyword cppSTLbool is_literal_type_v + syntax keyword cppSTLbool is_empty_v + syntax keyword cppSTLbool is_polymorphic_v + syntax keyword cppSTLbool is_abstract_v + syntax keyword cppSTLbool is_signed_v + syntax keyword cppSTLbool is_unsigned_v + syntax keyword cppSTLbool is_constructible_v + syntax keyword cppSTLbool is_trivially_constructible_v + syntax keyword cppSTLbool is_nothrow_constructible_v + syntax keyword cppSTLbool is_default_constructible_v + syntax keyword cppSTLbool is_trivially_default_constructible_v + syntax keyword cppSTLbool is_nothrow_default_constructible_v + syntax keyword cppSTLbool is_copy_constructible_v + syntax keyword cppSTLbool is_trivially_copy_constructible_v + syntax keyword cppSTLbool is_nothrow_copy_constructible_v + syntax keyword cppSTLbool is_move_constructible_v + syntax keyword cppSTLbool is_trivially_move_constructible_v + syntax keyword cppSTLbool is_nothrow_move_constructible_v + syntax keyword cppSTLbool is_assignable_v + syntax keyword cppSTLbool is_trivially_assignable_v + syntax keyword cppSTLbool is_nothrow_assignable_v + syntax keyword cppSTLbool is_copy_assignable_v + syntax keyword cppSTLbool is_trivially_copy_assignable_v + syntax keyword cppSTLbool is_nothrow_copy_assignable_v + syntax keyword cppSTLbool is_move_assignable_v + syntax keyword cppSTLbool is_trivially_move_assignable_v + syntax keyword cppSTLbool is_nothrow_move_assignable_v + syntax keyword cppSTLbool is_destructible_v + syntax keyword cppSTLbool is_trivially_destructible_v + syntax keyword cppSTLbool is_nothrow_destructible_v + syntax keyword cppSTLbool has_virtual_destructor_v + syntax keyword cppSTLbool is_same_v + syntax keyword cppSTLbool is_base_of_v + syntax keyword cppSTLbool is_convertible_v + syntax keyword cppSTLbool is_callable_v + syntax keyword cppSTLbool is_nowthrow_callable_v + syntax keyword cppSTLbool conjunction_v + syntax keyword cppSTLbool disjunction_v + syntax keyword cppSTLbool negation_v + syntax keyword cppSTLbool has_unique_object_representations_v + syntax keyword cppSTLbool is_swappable_v + syntax keyword cppSTLbool is_swappable_with_v + syntax keyword cppSTLbool is_nothrow_swappable_v + syntax keyword cppSTLbool is_nothrow_swappable_with_v + syntax keyword cppSTLbool is_invocable_v + syntax keyword cppSTLbool is_invocable_r_v + syntax keyword cppSTLbool is_nothrow_invocable_v + syntax keyword cppSTLbool is_nothrow_invocable_r_v + syntax keyword cppSTLbool is_aggregate_v + syntax keyword cppSTLconstant alignment_of_v + syntax keyword cppSTLconstant rank_v + syntax keyword cppSTLconstant extent_v + syntax keyword cppSTLtype bool_constant + syntax keyword cppSTLtype is_callable + syntax keyword cppSTLtype is_nowthrow_callable + syntax keyword cppSTLtype conjunction + syntax keyword cppSTLtype disjunction + syntax keyword cppSTLtype negation + syntax keyword cppSTLtype void_t + syntax keyword cppSTLtype has_unique_object_representations + syntax keyword cppSTLtype is_swappable + syntax keyword cppSTLtype is_swappable_with + syntax keyword cppSTLtype is_nothrow_swappable + syntax keyword cppSTLtype is_nothrow_swappable_with + syntax keyword cppSTLtype is_invocable + syntax keyword cppSTLtype is_invocable_r + syntax keyword cppSTLtype is_nothrow_invocable + syntax keyword cppSTLtype is_nothrow_invocable_r + syntax keyword cppSTLtype invoke_result + syntax keyword cppSTLtype invoke_result_t + syntax keyword cppSTLtype is_aggregate + + " unordered_map, unordered_set, unordered_multimap, unordered_multiset + syntax keyword cppSTLtype node_type + syntax keyword cppSTLtype insert_return_type + " syntax keyword cppSTLfunction try_emplace + " syntax keyword cppSTLfunction insert_or_assign + " syntax keyword cppSTLfunction extract + + " utility + syntax keyword cppSTLtype in_place_tag + syntax keyword cppSTLtype in_place_t + syntax keyword cppSTLtype in_place_type_t + syntax keyword cppSTLtype in_place_index_t + " syntax keyword cppSTLfunction in_place + " syntax keyword cppSTLfunction as_const + + " variant + syntax keyword cppSTLtype variant + syntax keyword cppSTLtype monostate + syntax keyword cppSTLtype variant_size + syntax keyword cppSTLtype variant_alternative + syntax keyword cppSTLtype variant_alternative_t + syntax keyword cppSTLconstant variant_size_v + syntax keyword cppSTLconstant variant_npos + syntax keyword cppSTLexception bad_variant_access + " syntax keyword cppSTLfunction valueless_by_exception + " syntax keyword cppSTLfunction holds_alternative + " syntax keyword cppSTLfunction get_if + " syntax keyword cppSTLfunction index + " syntax keyword cppSTLfunction visit +endif " C++17 + + +" ------------------------------------------------------------------------------ +" C++20 extensions +" ------------------------------------------------------------------------------ + +if !exists('cpp_no_cpp20') + " type_traits + syntax keyword cppSTLtype remove_cvref remove_cvref_t + " syntax keyword cppSTLtype endian + + " TODO: add types from http://en.cppreference.com/w/cpp/header/compare +endif + + +" ------------------------------------------------------------------------------ +" C++ library concepts +" For details see: +" - http://en.cppreference.com/w/cpp/language/constraints +" - http://en.cppreference.com/w/cpp/concept +" ------------------------------------------------------------------------------ + +if exists('g:cpp_concepts_highlight') && g:cpp_concepts_highlight + syntax keyword cppStatement concept + syntax keyword cppStorageClass requires + syntax keyword cppSTLtype DefaultConstructible + syntax keyword cppSTLtype MoveConstructible + syntax keyword cppSTLtype CopyConstructible + syntax keyword cppSTLtype MoveAssignable + syntax keyword cppSTLtype CopyAssignable + syntax keyword cppSTLtype Destructible + syntax keyword cppSTLtype TriviallyCopyable + syntax keyword cppSTLtype TrivialType + syntax keyword cppSTLtype StandardLayoutType + syntax keyword cppSTLtype PODType + syntax keyword cppSTLtype EqualityComparable + syntax keyword cppSTLtype LessThanComparable + syntax keyword cppSTLtype Swappable + syntax keyword cppSTLtype ValueSwappable + syntax keyword cppSTLtype NullablePointer + syntax keyword cppSTLtype Hash + syntax keyword cppSTLtype Allocator + syntax keyword cppSTLtype FunctionObject + syntax keyword cppSTLtype Callable + syntax keyword cppSTLtype Predicate + syntax keyword cppSTLtype BinaryPredicate + syntax keyword cppSTLtype Compare + syntax keyword cppSTLtype Container + syntax keyword cppSTLtype ReversibleContainer + syntax keyword cppSTLtype AllocatorAwareContainer + syntax keyword cppSTLtype SequenceContainer + syntax keyword cppSTLtype ContiguousContainer + syntax keyword cppSTLtype AssociativeContainer + syntax keyword cppSTLtype UnorderedAssociativeContainer + syntax keyword cppSTLtype DefaultInsertable + syntax keyword cppSTLtype CopyInsertable + syntax keyword cppSTLtype CopyInsertable + syntax keyword cppSTLtype MoveInsertable + syntax keyword cppSTLtype EmplaceConstructible + syntax keyword cppSTLtype Erasable + syntax keyword cppSTLtype Iterator + syntax keyword cppSTLtype InputIterator + syntax keyword cppSTLtype OutputIterator + syntax keyword cppSTLtype ForwardIterator + syntax keyword cppSTLtype BidirectionalIterator + syntax keyword cppSTLtype RandomAccessIterator + syntax keyword cppSTLtype ContiguousIterator + syntax keyword cppSTLtype UnformattedInputFunction + syntax keyword cppSTLtype FormattedInputFunction + syntax keyword cppSTLtype UnformattedOutputFunction + syntax keyword cppSTLtype FormattedOutputFunction + syntax keyword cppSTLtype SeedSequence + syntax keyword cppSTLtype UniformRandomBitGenerator + syntax keyword cppSTLtype RandomNumberEngine + syntax keyword cppSTLtype RandomNumberEngineAdaptor + syntax keyword cppSTLtype RandomNumberDistribution + syntax keyword cppSTLtype BasicLockable + syntax keyword cppSTLtype Lockable + syntax keyword cppSTLtype TimedLockable + syntax keyword cppSTLtype Mutex + syntax keyword cppSTLtype TimedMutex + syntax keyword cppSTLtype SharedMutex + syntax keyword cppSTLtype SharedTimedMutex + syntax keyword cppSTLtype UnaryTypeTrait + syntax keyword cppSTLtype BinaryTypeTrait + syntax keyword cppSTLtype TransformationTrait + syntax keyword cppSTLtype Clock + syntax keyword cppSTLtype TrivialClock + syntax keyword cppSTLtype CharTraits + syntax keyword cppSTLtype pos_type + syntax keyword cppSTLtype off_type + syntax keyword cppSTLtype BitmaskType + syntax keyword cppSTLtype NumericType + syntax keyword cppSTLtype RegexTraits + syntax keyword cppSTLtype LiteralType +endif " C++ concepts + + +" Boost extensions +if !exists('cpp_no_boost') + syntax keyword cppSTLnamespace boost + syntax keyword cppSTLcast lexical_cast +endif + + +" Default highlighting +hi def link cCustomFunc Function +hi def link cppSTLbool Boolean +hi def link cppStorageClass StorageClass +hi def link cppStatement Statement +hi def link cppSTLfunction Function +hi def link cppSTLfunctional Typedef +hi def link cppSTLconstant Constant +hi def link cppSTLnamespace Constant +hi def link cppSTLtype Typedef +hi def link cppSTLexception Exception +hi def link cppSTLiterator Typedef +hi def link cppSTLiterator_tag Typedef +hi def link cppSTLenum Typedef +hi def link cppSTLios Function +hi def link cppSTLcast Statement +hi def link cppRawString String +hi def link cppRawDelimiter Delimiter + + +" Highlight all standard C++ keywords as Statement +" This is very similar to what other IDEs and editors do +if exists('g:cpp_simple_highlight') && g:cpp_simple_highlight + hi! link cppModifier Statement + hi! link cppStructure Statement + hi! link cppExceptions Statement + hi! link cppStorageClass Statement + hi! link cppSTLexception Typedef +else + " I don't like the way the keywords {inline, virtual, explicit, export, + " override, final} are highlighted with the default syntax file (by default + " they are highlighted as Type). Let's link them to a different highlighting + " group + hi! link cppModifier StorageClass +endif diff --git a/docker/atomer-v1.0.0-bin/.vimrc b/docker/atomer-v1.0.0-bin/.vimrc new file mode 100644 index 0000000000..d25487a8d6 --- /dev/null +++ b/docker/atomer-v1.0.0-bin/.vimrc @@ -0,0 +1,14 @@ +" line numbers +set number + +" syntax highlighting and with color scheme +filetype plugin indent on +syntax enable +colorscheme monokai + +" coding +set encoding=utf-8 +set fileencoding=utf-8 + +" highlighting search matches +set hlsearch diff --git a/docker/atomer-v1.0.0-bin/Dockerfile b/docker/atomer-v1.0.0-bin/Dockerfile new file mode 100644 index 0000000000..e6c842502e --- /dev/null +++ b/docker/atomer-v1.0.0-bin/Dockerfile @@ -0,0 +1,49 @@ +FROM debian:stretch-slim + +COPY .bashrc /root/.bashrc +COPY .inputrc /root/.inputrc +COPY .vimrc /root/.vimrc +COPY .vim /root/.vim + +RUN apt-get update +# mkdir the man/man1 directory due to Debian bug #863199 +RUN mkdir -p /usr/share/man/man1 +RUN apt-get install --yes --no-install-recommends \ + autoconf \ + automake \ + bubblewrap \ + curl \ + g++ \ + gcc \ + libgmp-dev \ + libmpfr-dev \ + sqlite3 \ + make \ + patch \ + python2.7 \ + unzip \ + xz-utils \ + vim \ + man \ + ca-certificates +RUN rm -rf /var/lib/apt/lists/* + +# install opam 2 +RUN curl -sL https://github.com/ocaml/opam/releases/download/2.0.2/opam-2.0.2-x86_64-linux > /usr/bin/opam && chmod +x /usr/bin/opam +# disable sandboxing +# Without this opam fails to compile OCaml for some reason. We don't need sandboxing inside a Docker container anyway. +RUN opam init --reinit --bare --no-setup --disable-sandboxing +RUN opam switch create ocaml-variants.4.07.1+flambda ocaml-variants.4.07.1+flambda +RUN opam install --yes "apron=20160125" && opam install "elina=1.1" + +# download Infer +RUN mkdir /infer && \ + curl -sL https://github.com/harmim/infer/releases/download/atomer-v1.0.0/infer-atomer-v1.0.0.tar.xz \ + | tar -xJ -C /infer + +# installl infer +ENV INFER_HOME /infer +ENV PATH ${INFER_HOME}/bin:${PATH} +ENV MANPATH ${INFER_HOME}/share/man:${MANPATH} +ENV LD_LIBRARY_PATH /root/.opam/ocaml-variants.4.07.1+flambda/share/elina/lib:${LD_LIBRARY_PATH} +ENV LD_LIBRARY_PATH /root/.opam/ocaml-variants.4.07.1+flambda/share/apron/lib:${LD_LIBRARY_PATH} diff --git a/docker/atomer-v1.0.0-bin/run.bat b/docker/atomer-v1.0.0-bin/run.bat new file mode 100755 index 0000000000..47e33216ab --- /dev/null +++ b/docker/atomer-v1.0.0-bin/run.bat @@ -0,0 +1,2 @@ +docker build -t infer-atomer-v1.0.0-bin . +docker run -it --rm infer-atomer-v1.0.0-bin /bin/bash diff --git a/docker/atomer-v1.0.0-bin/run.sh b/docker/atomer-v1.0.0-bin/run.sh new file mode 100755 index 0000000000..47e33216ab --- /dev/null +++ b/docker/atomer-v1.0.0-bin/run.sh @@ -0,0 +1,2 @@ +docker build -t infer-atomer-v1.0.0-bin . +docker run -it --rm infer-atomer-v1.0.0-bin /bin/bash diff --git a/docker/atomer-v1.0.0/.bashrc b/docker/atomer-v1.0.0/.bashrc new file mode 100644 index 0000000000..603ed1fe6f --- /dev/null +++ b/docker/atomer-v1.0.0/.bashrc @@ -0,0 +1,24 @@ +# enable color support of ls and also add handy aliases +if [ -x /usr/bin/dircolors ]; then + test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" + alias ls='ls --color=auto' + alias dir='dir --color=auto' + alias vdir='vdir --color=auto' + alias grep='grep --color=auto' + alias fgrep='fgrep --color=auto' + alias egrep='egrep --color=auto' +fi + +# some more ls aliases +alias ll='ls -AlFh' +alias la='ls -A' +alias l='ls -CF' + +# colored man pages +export LESS_TERMCAP_mb=$(printf '\e[01;31m') +export LESS_TERMCAP_md=$(printf '\e[01;35m') +export LESS_TERMCAP_me=$(printf '\e[0m') +export LESS_TERMCAP_se=$(printf '\e[0m') +export LESS_TERMCAP_so=$(printf '\e[01;33m') +export LESS_TERMCAP_ue=$(printf '\e[0m') +export LESS_TERMCAP_us=$(printf '\e[04;36m') diff --git a/docker/atomer-v1.0.0/.inputrc b/docker/atomer-v1.0.0/.inputrc new file mode 100644 index 0000000000..236bfdd27b --- /dev/null +++ b/docker/atomer-v1.0.0/.inputrc @@ -0,0 +1 @@ +set completion-ignore-case on diff --git a/docker/atomer-v1.0.0/.vim/colors/monokai.vim b/docker/atomer-v1.0.0/.vim/colors/monokai.vim new file mode 100644 index 0000000000..1b4f16780f --- /dev/null +++ b/docker/atomer-v1.0.0/.vim/colors/monokai.vim @@ -0,0 +1,109 @@ +" Vim color file +" Converted from Textmate theme Monokai using Coloration v0.3.2 (http://github.com/sickill/coloration) + +set background=dark +highlight clear + +if exists("syntax_on") + syntax reset +endif + +set t_Co=256 +let g:colors_name = "monokai" + +hi Cursor ctermfg=235 ctermbg=231 cterm=NONE guifg=#272822 guibg=#f8f8f0 gui=NONE +hi Visual ctermfg=NONE ctermbg=59 cterm=NONE guifg=NONE guibg=#49483e gui=NONE +hi CursorLine ctermfg=NONE ctermbg=237 cterm=NONE guifg=NONE guibg=#3c3d37 gui=NONE +hi CursorColumn ctermfg=NONE ctermbg=237 cterm=NONE guifg=NONE guibg=#3c3d37 gui=NONE +hi ColorColumn ctermfg=NONE ctermbg=237 cterm=NONE guifg=NONE guibg=#3c3d37 gui=NONE +hi LineNr ctermfg=102 ctermbg=237 cterm=NONE guifg=#90908a guibg=#3c3d37 gui=NONE +hi VertSplit ctermfg=241 ctermbg=241 cterm=NONE guifg=#64645e guibg=#64645e gui=NONE +hi MatchParen ctermfg=197 ctermbg=NONE cterm=underline guifg=#f92672 guibg=NONE gui=underline +hi StatusLine ctermfg=231 ctermbg=241 cterm=bold guifg=#f8f8f2 guibg=#64645e gui=bold +hi StatusLineNC ctermfg=231 ctermbg=241 cterm=NONE guifg=#f8f8f2 guibg=#64645e gui=NONE +hi Pmenu ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi PmenuSel ctermfg=NONE ctermbg=59 cterm=NONE guifg=NONE guibg=#49483e gui=NONE +hi IncSearch term=reverse cterm=reverse ctermfg=193 ctermbg=16 gui=reverse guifg=#C4BE89 guibg=#000000 +hi Search term=reverse cterm=NONE ctermfg=231 ctermbg=24 gui=NONE guifg=#f8f8f2 guibg=#204a87 +hi Directory ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi Folded ctermfg=242 ctermbg=235 cterm=NONE guifg=#75715e guibg=#272822 gui=NONE +hi SignColumn ctermfg=NONE ctermbg=237 cterm=NONE guifg=NONE guibg=#3c3d37 gui=NONE +hi Normal ctermfg=231 ctermbg=235 cterm=NONE guifg=#f8f8f2 guibg=#272822 gui=NONE +hi Boolean ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi Character ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi Comment ctermfg=242 ctermbg=NONE cterm=NONE guifg=#75715e guibg=NONE gui=NONE +hi Conditional ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi Constant ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi Define ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi DiffAdd ctermfg=231 ctermbg=64 cterm=bold guifg=#f8f8f2 guibg=#46830c gui=bold +hi DiffDelete ctermfg=88 ctermbg=NONE cterm=NONE guifg=#8b0807 guibg=NONE gui=NONE +hi DiffChange ctermfg=NONE ctermbg=NONE cterm=NONE guifg=#f8f8f2 guibg=#243955 gui=NONE +hi DiffText ctermfg=231 ctermbg=24 cterm=bold guifg=#f8f8f2 guibg=#204a87 gui=bold +hi ErrorMsg ctermfg=231 ctermbg=197 cterm=NONE guifg=#f8f8f0 guibg=#f92672 gui=NONE +hi WarningMsg ctermfg=231 ctermbg=197 cterm=NONE guifg=#f8f8f0 guibg=#f92672 gui=NONE +hi Float ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi Function ctermfg=148 ctermbg=NONE cterm=NONE guifg=#a6e22e guibg=NONE gui=NONE +hi Identifier ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=italic +hi Keyword ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi Label ctermfg=186 ctermbg=NONE cterm=NONE guifg=#e6db74 guibg=NONE gui=NONE +hi NonText ctermfg=59 ctermbg=236 cterm=NONE guifg=#49483e guibg=#31322c gui=NONE +hi Number ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi Operator ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi PreProc ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi Special ctermfg=231 ctermbg=NONE cterm=NONE guifg=#f8f8f2 guibg=NONE gui=NONE +hi SpecialComment ctermfg=242 ctermbg=NONE cterm=NONE guifg=#75715e guibg=NONE gui=NONE +hi SpecialKey ctermfg=59 ctermbg=237 cterm=NONE guifg=#49483e guibg=#3c3d37 gui=NONE +hi Statement ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi StorageClass ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=italic +hi String ctermfg=186 ctermbg=NONE cterm=NONE guifg=#e6db74 guibg=NONE gui=NONE +hi Tag ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi Title ctermfg=231 ctermbg=NONE cterm=bold guifg=#f8f8f2 guibg=NONE gui=bold +hi Todo ctermfg=95 ctermbg=NONE cterm=inverse,bold guifg=#75715e guibg=NONE gui=inverse,bold +hi Type ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline guifg=NONE guibg=NONE gui=underline +hi rubyClass ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi rubyFunction ctermfg=148 ctermbg=NONE cterm=NONE guifg=#a6e22e guibg=NONE gui=NONE +hi rubyInterpolationDelimiter ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi rubySymbol ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi rubyConstant ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=italic +hi rubyStringDelimiter ctermfg=186 ctermbg=NONE cterm=NONE guifg=#e6db74 guibg=NONE gui=NONE +hi rubyBlockParameter ctermfg=208 ctermbg=NONE cterm=NONE guifg=#fd971f guibg=NONE gui=italic +hi rubyInstanceVariable ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi rubyInclude ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi rubyGlobalVariable ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi rubyRegexp ctermfg=186 ctermbg=NONE cterm=NONE guifg=#e6db74 guibg=NONE gui=NONE +hi rubyRegexpDelimiter ctermfg=186 ctermbg=NONE cterm=NONE guifg=#e6db74 guibg=NONE gui=NONE +hi rubyEscape ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi rubyControl ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi rubyClassVariable ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi rubyOperator ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi rubyException ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi rubyPseudoVariable ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi rubyRailsUserClass ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=italic +hi rubyRailsARAssociationMethod ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=NONE +hi rubyRailsARMethod ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=NONE +hi rubyRailsRenderMethod ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=NONE +hi rubyRailsMethod ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=NONE +hi erubyDelimiter ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi erubyComment ctermfg=95 ctermbg=NONE cterm=NONE guifg=#75715e guibg=NONE gui=NONE +hi erubyRailsMethod ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=NONE +hi htmlTag ctermfg=148 ctermbg=NONE cterm=NONE guifg=#a6e22e guibg=NONE gui=NONE +hi htmlEndTag ctermfg=148 ctermbg=NONE cterm=NONE guifg=#a6e22e guibg=NONE gui=NONE +hi htmlTagName ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi htmlArg ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi htmlSpecialChar ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi javaScriptFunction ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=italic +hi javaScriptRailsFunction ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=NONE +hi javaScriptBraces ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi yamlKey ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi yamlAnchor ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi yamlAlias ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi yamlDocumentHeader ctermfg=186 ctermbg=NONE cterm=NONE guifg=#e6db74 guibg=NONE gui=NONE +hi cssURL ctermfg=208 ctermbg=NONE cterm=NONE guifg=#fd971f guibg=NONE gui=italic +hi cssFunctionName ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=NONE +hi cssColor ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi cssPseudoClassId ctermfg=148 ctermbg=NONE cterm=NONE guifg=#a6e22e guibg=NONE gui=NONE +hi cssClassName ctermfg=148 ctermbg=NONE cterm=NONE guifg=#a6e22e guibg=NONE gui=NONE +hi cssValueLength ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi cssCommonAttr ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=NONE +hi cssBraces ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE diff --git a/docker/atomer-v1.0.0/.vim/syntax/c.vim b/docker/atomer-v1.0.0/.vim/syntax/c.vim new file mode 100644 index 0000000000..57bb836c38 --- /dev/null +++ b/docker/atomer-v1.0.0/.vim/syntax/c.vim @@ -0,0 +1,301 @@ +" ============================================================================== +" Vim syntax file +" Language: C Additions +" Original Author: Mikhail Wolfson +" Maintainer: bfrg +" Website: https://github.com/bfrg/vim-cpp-modern +" Last Change: Mar 24, 2018 +" +" Extended C syntax highlighting including highlighting for user-defined +" functions. +" +" This syntax file is based on a previous work by Jon Haggblad: +" https://github.com/octol/vim-cpp-enhanced-highlight +" ============================================================================== + + +" Highlight some additional keywords in the comments +syn keyword cTodo contained BUG NOTE + +" Highlight function names +" From: https://stackoverflow.com/a/773392 +if !exists('g:cpp_no_function_highlight') + syn match cCustomParen transparent "(" contains=cParen contains=cCppParen + syn match cCustomFunc "\w\+\s*(\@=" contains=cCustomParen +endif + + +" Common ANSI-standard functions +" From: http://www.vim.org/scripts/script.php?script_id=3064 +" 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 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 +" syn keyword cAnsiFunction bsearch system getenv + +" 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 + +" Booleans +syn keyword cBoolean true false TRUE FALSE + + +" Default highlighting +hi def link cCustomFunc Function +hi def link cBoolean Boolean +hi def link cAnsiFunction cFunction +hi def link cAnsiName cIdentifier +hi def link cFunction Function +hi def link cIdentifier Identifier + + +" Highlight all standard C keywords as Statement +" This is very similar to what other IDEs and editors do +if exists('g:cpp_simple_highlight') && g:cpp_simple_highlight + hi! link cStorageClass Statement + hi! link cStructure Statement + hi! link cLabel Statement +endif + + +" ------------------------------------------------------------------------------ +" Additional optional highlighting +" From: http://www.vim.org/scripts/script.php?script_id=3064 +" ------------------------------------------------------------------------------ + +" 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 "[{}]" + +" Links +" hi def link cDelimiter Delimiter +" foldmethod=syntax fix, courtesy of Ivan Freitas +" hi def link cBraces Delimiter diff --git a/docker/atomer-v1.0.0/.vim/syntax/cpp.vim b/docker/atomer-v1.0.0/.vim/syntax/cpp.vim new file mode 100644 index 0000000000..4fe12bc78e --- /dev/null +++ b/docker/atomer-v1.0.0/.vim/syntax/cpp.vim @@ -0,0 +1,2077 @@ +" ============================================================================== +" Vim syntax file +" Language: C++ (extended for C++11/14/17/concepts) +" Original Author: Jon Haggblad +" Maintainer: bfrg +" Website: https://github.com/bfrg/vim-cpp-modern +" Last Change: Mar 24, 2018 +" +" Extended syntax highlighting for C++ (including C++11/14/17/concepts) +" +" Compared to Vim's default C++ syntax highlighting, this syntax file adds +" highlighting of (user defined) functions, containers and types in the standard +" library. Optionally, library concepts (like CopyConstructible) can be +" highlighted as standard library types. +" +" This syntax file is based on the previous work by Jon Haggblad: +" https://github.com/octol/vim-cpp-enhanced-highlight +" +" Difference to vim-cpp-enhanced-highlight: +" +" - Standard library functions have been commented out because words ending with +" parentheses are highlighted as functions anyway, so we don't have to +" explicitly list each library function in here. The only exceptions are +" standard library function templates, which sometimes must be called with +" template parameters, like std::make_unique(bar). +" +" - Another reason why almost all functions have been commented out is because +" if someone defines his/her own type and the name collides with a library +" function name, this user-defined type will be highlighted as a function. +" +" - User-defined function templates or class members won't be highlighted. +" This feature was removed because it's too slow and buggy. +" +" - C++ keywords inline, virtual, explicit, export, override and final are moved +" to the syntax group StorageClass. +" ============================================================================== + + +" Highlight function names +" Based on discussion http://stackoverflow.com/q/736701 +if !exists('g:cpp_no_function_highlight') + syntax match cCustomParen transparent "(" contains=cParen contains=cCppParen + syntax match cCustomFunc "\w\+\s*(\@=" +endif + +" ------------------------------------------------------------------------------ +" Standard library types and functions +" +" Based on the syntax vim script by Mizuchi +" http://www.vim.org/scripts/script.php?script_id=4293 +" ------------------------------------------------------------------------------ + +syntax keyword cppSTLconstant MB_CUR_MAX +syntax keyword cppSTLconstant MB_LEN_MAX +syntax keyword cppSTLconstant WCHAR_MAX +syntax keyword cppSTLconstant WCHAR_MIN +syntax keyword cppSTLconstant WEOF +syntax keyword cppSTLconstant __STDC_UTF_16__ +syntax keyword cppSTLconstant __STDC_UTF_32__ +syntax keyword cppSTLconstant badbit +syntax keyword cppSTLconstant cerr +syntax keyword cppSTLconstant cin +syntax keyword cppSTLconstant clog +syntax keyword cppSTLconstant cout +syntax keyword cppSTLconstant digits +syntax keyword cppSTLconstant digits10 +syntax keyword cppSTLconstant eofbit +syntax keyword cppSTLconstant failbit +syntax keyword cppSTLconstant goodbit +syntax keyword cppSTLconstant has_denorm +syntax keyword cppSTLconstant has_denorm_loss +syntax keyword cppSTLconstant has_infinity +syntax keyword cppSTLconstant has_quiet_NaN +syntax keyword cppSTLconstant has_signaling_NaN +syntax keyword cppSTLconstant is_bounded +syntax keyword cppSTLconstant is_exact +syntax keyword cppSTLconstant is_iec559 +syntax keyword cppSTLconstant is_integer +syntax keyword cppSTLconstant is_modulo +syntax keyword cppSTLconstant is_signed +syntax keyword cppSTLconstant is_specialized +syntax keyword cppSTLconstant max_exponent +syntax keyword cppSTLconstant max_exponent10 +syntax keyword cppSTLconstant min_exponent +syntax keyword cppSTLconstant min_exponent10 +syntax keyword cppSTLconstant nothrow +syntax keyword cppSTLconstant npos +syntax keyword cppSTLconstant radix +syntax keyword cppSTLconstant round_style +syntax keyword cppSTLconstant tinyness_before +syntax keyword cppSTLconstant traps +syntax keyword cppSTLconstant wcerr +syntax keyword cppSTLconstant wcin +syntax keyword cppSTLconstant wclog +syntax keyword cppSTLconstant wcout + +syntax keyword cppSTLexception bad_alloc +syntax keyword cppSTLexception bad_exception +syntax keyword cppSTLexception bad_typeid bad_cast +syntax keyword cppSTLexception domain_error +syntax keyword cppSTLexception exception +syntax keyword cppSTLexception invalid_argument +syntax keyword cppSTLexception length_error +syntax keyword cppSTLexception logic_error +syntax keyword cppSTLexception out_of_range +syntax keyword cppSTLexception overflow_error +syntax keyword cppSTLexception range_error +syntax keyword cppSTLexception runtime_error +syntax keyword cppSTLexception underflow_error +syntax keyword cppSTLexception failure + +syntax keyword cppSTLfunctional binary_function +syntax keyword cppSTLfunctional binary_negate +syntax keyword cppSTLfunctional bit_and +syntax keyword cppSTLfunctional bit_not +syntax keyword cppSTLfunctional bit_or +syntax keyword cppSTLfunctional divides +syntax keyword cppSTLfunctional equal_to +syntax keyword cppSTLfunctional greater +syntax keyword cppSTLfunctional greater_equal +syntax keyword cppSTLfunctional less +syntax keyword cppSTLfunctional less_equal +syntax keyword cppSTLfunctional logical_and +syntax keyword cppSTLfunctional logical_not +syntax keyword cppSTLfunctional logical_or +syntax keyword cppSTLfunctional minus +syntax keyword cppSTLfunctional modulus +syntax keyword cppSTLfunctional multiplies +syntax keyword cppSTLfunctional negate +syntax keyword cppSTLfunctional not_equal_to +syntax keyword cppSTLfunctional plus +syntax keyword cppSTLfunctional unary_function +syntax keyword cppSTLfunctional unary_negate + +syntax keyword cppSTLios resetiosflags +syntax keyword cppSTLios setiosflags +syntax keyword cppSTLios setbase +syntax keyword cppSTLios setfill +syntax keyword cppSTLios setprecision +syntax keyword cppSTLios setw +syntax keyword cppSTLios endl +syntax keyword cppSTLios ends +syntax keyword cppSTLios flush +" syntax keyword cppSTLios ws + +syntax keyword cppSTLios boolalpha noboolalpha +syntax keyword cppSTLios showbase noshowbase +syntax keyword cppSTLios showpoint noshowpoint +syntax keyword cppSTLios showpos noshowpos +syntax keyword cppSTLios skipws noskipws +syntax keyword cppSTLios uppercase nouppercase +syntax keyword cppSTLios unitbuf nounitbuf +syntax keyword cppSTLios internal left right +syntax keyword cppSTLios dec hex oct +syntax keyword cppSTLios fixed scientific hexfloat defaultfloat + +syntax keyword cppSTLtype fmtflags +syntax keyword cppSTLtype iostate +syntax keyword cppSTLtype openmode + +" syntax keyword cppSTLconstant dec oct hex basefield +" syntax keyword cppSTLconstant left right internal adjustfield +" syntax keyword cppSTLconstant scientific fixed floatfield +" syntax keyword cppSTLconstant boolalpha +" syntax keyword cppSTLconstant showbase showpoint showpos +" syntax keyword cppSTLconstant skipws +" syntax keyword cppSTLconstant unitbuf +" syntax keyword cppSTLconstant uppercase +" syntax keyword cppSTLconstant app binary in out trunc ate + +syntax keyword cppSTLiterator back_insert_iterator +syntax keyword cppSTLiterator bidirectional_iterator +syntax keyword cppSTLiterator const_iterator +syntax keyword cppSTLiterator const_reverse_iterator +syntax keyword cppSTLiterator forward_iterator +syntax keyword cppSTLiterator front_insert_iterator +syntax keyword cppSTLiterator input_iterator +syntax keyword cppSTLiterator insert_iterator +syntax keyword cppSTLiterator istream_iterator +syntax keyword cppSTLiterator istreambuf_iterator +syntax keyword cppSTLiterator ostreambuf_iterator +syntax keyword cppSTLiterator iterator +syntax keyword cppSTLiterator ostream_iterator +syntax keyword cppSTLiterator output_iterator +syntax keyword cppSTLiterator random_access_iterator +syntax keyword cppSTLiterator raw_storage_iterator +syntax keyword cppSTLiterator reverse_bidirectional_iterator +syntax keyword cppSTLiterator reverse_iterator + +syntax keyword cppSTLiterator_tag bidirectional_iterator_tag +syntax keyword cppSTLiterator_tag forward_iterator_tag +syntax keyword cppSTLiterator_tag input_iterator_tag +syntax keyword cppSTLiterator_tag output_iterator_tag +syntax keyword cppSTLiterator_tag random_access_iterator_tag + +syntax keyword cppSTLnamespace rel_ops +syntax keyword cppSTLnamespace std +syntax keyword cppSTLnamespace experimental + +syntax keyword cppSTLtype Init +syntax keyword cppSTLtype event_callback +syntax keyword cppSTLtype allocator +syntax keyword cppSTLtype auto_ptr +syntax keyword cppSTLtype basic_filebuf +syntax keyword cppSTLtype basic_fstream +syntax keyword cppSTLtype basic_ifstream +syntax keyword cppSTLtype basic_iostream +syntax keyword cppSTLtype basic_istream +syntax keyword cppSTLtype basic_istringstream +syntax keyword cppSTLtype basic_ofstream +syntax keyword cppSTLtype basic_ostream +syntax keyword cppSTLtype basic_ostringstream +syntax keyword cppSTLtype basic_streambuf +syntax keyword cppSTLtype basic_string +syntax keyword cppSTLtype basic_stringbuf +syntax keyword cppSTLtype basic_stringstream +syntax keyword cppSTLtype binary_compose +syntax keyword cppSTLtype binder1st +syntax keyword cppSTLtype binder2nd +syntax keyword cppSTLtype bitset +syntax keyword cppSTLtype char_traits +syntax keyword cppSTLtype char_type +syntax keyword cppSTLtype const_mem_fun1_t +syntax keyword cppSTLtype const_mem_fun_ref1_t +syntax keyword cppSTLtype const_mem_fun_ref_t +syntax keyword cppSTLtype const_mem_fun_t +syntax keyword cppSTLtype const_pointer +syntax keyword cppSTLtype const_reference +syntax keyword cppSTLtype container_type +syntax keyword cppSTLtype deque +syntax keyword cppSTLtype difference_type +syntax keyword cppSTLtype iterator_category +syntax keyword cppSTLtype div_t +syntax keyword cppSTLtype double_t +syntax keyword cppSTLtype filebuf +syntax keyword cppSTLtype first_type +syntax keyword cppSTLtype float_denorm_style +syntax keyword cppSTLtype float_round_style +syntax keyword cppSTLtype float_t +syntax keyword cppSTLtype fstream +syntax keyword cppSTLtype gslice_array +syntax keyword cppSTLtype ifstream +syntax keyword cppSTLtype imaxdiv_t +syntax keyword cppSTLtype indirect_array +syntax keyword cppSTLtype int_type +syntax keyword cppSTLtype ios_base +syntax keyword cppSTLtype basic_ios +syntax keyword cppSTLtype fpos +syntax keyword cppSTLtype ios +syntax keyword cppSTLtype iostream +syntax keyword cppSTLtype istream +syntax keyword cppSTLtype istringstream +syntax keyword cppSTLtype istrstream +syntax keyword cppSTLtype iterator_traits +syntax keyword cppSTLtype key_compare +syntax keyword cppSTLtype key_type +syntax keyword cppSTLtype ldiv_t +syntax keyword cppSTLtype list +syntax keyword cppSTLtype lldiv_t +syntax keyword cppSTLtype map +syntax keyword cppSTLtype mapped_type +syntax keyword cppSTLtype mask_array +syntax keyword cppSTLtype mbstate_t +syntax keyword cppSTLtype mem_fun1_t +syntax keyword cppSTLtype mem_fun_ref1_t +syntax keyword cppSTLtype mem_fun_ref_t +syntax keyword cppSTLtype mem_fun_t +syntax keyword cppSTLtype multimap +syntax keyword cppSTLtype multiset +syntax keyword cppSTLtype nothrow_t +syntax keyword cppSTLtype numeric_limits +syntax keyword cppSTLtype off_type +syntax keyword cppSTLtype ofstream +syntax keyword cppSTLtype ostream +syntax keyword cppSTLtype ostringstream +syntax keyword cppSTLtype ostrstream +syntax keyword cppSTLtype pair +syntax keyword cppSTLtype pointer +syntax keyword cppSTLtype pointer_to_binary_function +syntax keyword cppSTLtype pointer_to_unary_function +syntax keyword cppSTLtype pos_type +syntax keyword cppSTLtype priority_queue +syntax keyword cppSTLtype queue +syntax keyword cppSTLtype reference +syntax keyword cppSTLtype second_type +syntax keyword cppSTLtype seekdir +syntax keyword cppSTLtype sequence_buffer +syntax keyword cppSTLtype set +syntax keyword cppSTLtype sig_atomic_t +syntax keyword cppSTLtype size_type +syntax keyword cppSTLtype slice_array +syntax keyword cppSTLtype stack +syntax keyword cppSTLtype stream +syntax keyword cppSTLtype streambuf +syntax keyword cppSTLtype streamoff +syntax keyword cppSTLtype streampos +syntax keyword cppSTLtype streamsize +syntax keyword cppSTLtype string +syntax keyword cppSTLtype stringbuf +syntax keyword cppSTLtype stringstream +syntax keyword cppSTLtype strstream +syntax keyword cppSTLtype strstreambuf +syntax keyword cppSTLtype temporary_buffer +syntax keyword cppSTLtype test_type +syntax keyword cppSTLtype time_t +syntax keyword cppSTLtype tm +syntax keyword cppSTLtype traits_type +syntax keyword cppSTLtype type_info +syntax keyword cppSTLtype u16string +syntax keyword cppSTLtype u32string +syntax keyword cppSTLtype unary_compose +syntax keyword cppSTLtype unary_negate +syntax keyword cppSTLtype valarray +syntax keyword cppSTLtype value_compare +syntax keyword cppSTLtype value_type +syntax keyword cppSTLtype vector +syntax keyword cppSTLtype wctrans_t +syntax keyword cppSTLtype wctype_t +syntax keyword cppSTLtype wfilebuf +syntax keyword cppSTLtype wfstream +syntax keyword cppSTLtype wifstream +syntax keyword cppSTLtype wint_t +syntax keyword cppSTLtype wios +syntax keyword cppSTLtype wiostream +syntax keyword cppSTLtype wistream +syntax keyword cppSTLtype wistringstream +syntax keyword cppSTLtype wofstream +syntax keyword cppSTLtype wostream +syntax keyword cppSTLtype wostringstream +syntax keyword cppSTLtype wstreambuf +syntax keyword cppSTLtype wstreampos +syntax keyword cppSTLtype wstring +syntax keyword cppSTLtype wstringbuf +syntax keyword cppSTLtype wstringstream + +" locale +syntax keyword cppSTLtype locale +syntax keyword cppSTLtype ctype_base +syntax keyword cppSTLtype codecvt_base +syntax keyword cppSTLtype messages_base +syntax keyword cppSTLtype time_base +syntax keyword cppSTLtype money_base +syntax keyword cppSTLtype ctype +syntax keyword cppSTLtype codecvt +syntax keyword cppSTLtype collate +syntax keyword cppSTLtype messages +syntax keyword cppSTLtype time_get +syntax keyword cppSTLtype time_put +syntax keyword cppSTLtype num_get +syntax keyword cppSTLtype num_put +syntax keyword cppSTLtype numpunct +syntax keyword cppSTLtype money_get +syntax keyword cppSTLtype money_put +syntax keyword cppSTLtype moneypunct +syntax keyword cppSTLtype ctype_byname +syntax keyword cppSTLtype codecvt_byname +syntax keyword cppSTLtype messages_byname +syntax keyword cppSTLtype collate_byname +syntax keyword cppSTLtype time_get_byname +syntax keyword cppSTLtype time_put_byname +syntax keyword cppSTLtype numpunct_byname +syntax keyword cppSTLtype moneypunct_byname +syntax keyword cppSTLfunction use_facet +syntax keyword cppSTLfunction has_facet +syntax keyword cppSTLfunction isspace isblank iscntrl isupper islower isalpha +syntax keyword cppSTLfunction isdigit ispunct isxdigit isalnum isprint isgraph + +" std::get is a template function, so when called as std::get(t), we want it +" to be highlighted as a function +syntax keyword cppSTLfunction get + +" syntax keyword cppSTLfunction abort +" syntax keyword cppSTLfunction abs +" syntax keyword cppSTLfunction accumulate +" syntax keyword cppSTLfunction acos +" syntax keyword cppSTLfunction adjacent_difference +" syntax keyword cppSTLfunction adjacent_find +" syntax keyword cppSTLfunction adjacent_find_if +" syntax keyword cppSTLfunction advance +" syntax keyword cppSTLfunction append +" syntax keyword cppSTLfunction arg +" syntax keyword cppSTLfunction asctime +" syntax keyword cppSTLfunction asin +" syntax keyword cppSTLfunction assert +" syntax keyword cppSTLfunction assign +" syntax keyword cppSTLfunction at +" syntax keyword cppSTLfunction atan +" syntax keyword cppSTLfunction atan2 +" syntax keyword cppSTLfunction atexit +" syntax keyword cppSTLfunction atof +" syntax keyword cppSTLfunction atoi +" syntax keyword cppSTLfunction atol +" syntax keyword cppSTLfunction atoll +" syntax keyword cppSTLfunction back +" syntax keyword cppSTLfunction back_inserter +" syntax keyword cppSTLfunction bad +" syntax keyword cppSTLfunction beg +" syntax keyword cppSTLfunction binary_compose +" syntax keyword cppSTLfunction binary_negate +" syntax keyword cppSTLfunction binary_search +" syntax keyword cppSTLfunction bind1st +" syntax keyword cppSTLfunction bind2nd +" syntax keyword cppSTLfunction binder1st +" syntax keyword cppSTLfunction binder2nd +" syntax keyword cppSTLfunction bsearch +" syntax keyword cppSTLfunction calloc +" syntax keyword cppSTLfunction capacity +" syntax keyword cppSTLfunction ceil +" syntax keyword cppSTLfunction clear +" syntax keyword cppSTLfunction clearerr +" syntax keyword cppSTLfunction clock +" syntax keyword cppSTLfunction close +" syntax keyword cppSTLfunction compare +" syntax keyword cppSTLfunction conj +" syntax keyword cppSTLfunction construct +" syntax keyword cppSTLfunction copy +" syntax keyword cppSTLfunction copy_backward +" syntax keyword cppSTLfunction cos +" syntax keyword cppSTLfunction cosh +" syntax keyword cppSTLfunction count +" syntax keyword cppSTLfunction count_if +" syntax keyword cppSTLfunction c_str +" syntax keyword cppSTLfunction ctime +" syntax keyword cppSTLfunction denorm_min +" syntax keyword cppSTLfunction destroy +" syntax keyword cppSTLfunction difftime +" syntax keyword cppSTLfunction distance +" syntax keyword cppSTLfunction div +" syntax keyword cppSTLfunction empty +" syntax keyword cppSTLfunction eof +" syntax keyword cppSTLfunction epsilon +" syntax keyword cppSTLfunction equal +" syntax keyword cppSTLfunction equal_range +" syntax keyword cppSTLfunction erase +" syntax keyword cppSTLfunction exit +" syntax keyword cppSTLfunction exp +" syntax keyword cppSTLfunction fabs +" syntax keyword cppSTLfunction fail +" syntax keyword cppSTLfunction failure +" syntax keyword cppSTLfunction fclose +" syntax keyword cppSTLfunction feof +" syntax keyword cppSTLfunction ferror +" syntax keyword cppSTLfunction fflush +" syntax keyword cppSTLfunction fgetc +" syntax keyword cppSTLfunction fgetpos +" syntax keyword cppSTLfunction fgets +" syntax keyword cppSTLfunction fill +" syntax keyword cppSTLfunction fill_n +" syntax keyword cppSTLfunction find +" syntax keyword cppSTLfunction find_end +" syntax keyword cppSTLfunction find_first_not_of +" syntax keyword cppSTLfunction find_first_of +" syntax keyword cppSTLfunction find_if +" syntax keyword cppSTLfunction find_last_not_of +" syntax keyword cppSTLfunction find_last_of +" syntax keyword cppSTLfunction first +" syntax keyword cppSTLfunction flags +" syntax keyword cppSTLfunction flip +" syntax keyword cppSTLfunction floor +" syntax keyword cppSTLfunction flush +" syntax keyword cppSTLfunction fmod +" syntax keyword cppSTLfunction fopen +" syntax keyword cppSTLfunction for_each +" syntax keyword cppSTLfunction fprintf +" syntax keyword cppSTLfunction fputc +" syntax keyword cppSTLfunction fputs +" syntax keyword cppSTLfunction fread +" syntax keyword cppSTLfunction free +" syntax keyword cppSTLfunction freopen +" syntax keyword cppSTLfunction frexp +" syntax keyword cppSTLfunction front +" syntax keyword cppSTLfunction fscanf +" syntax keyword cppSTLfunction fseek +" syntax keyword cppSTLfunction fsetpos +" syntax keyword cppSTLfunction ftell +" syntax keyword cppSTLfunction fwide +" syntax keyword cppSTLfunction fwprintf +" syntax keyword cppSTLfunction fwrite +" syntax keyword cppSTLfunction fwscanf +" syntax keyword cppSTLfunction gcount +" syntax keyword cppSTLfunction generate +" syntax keyword cppSTLfunction generate_n +" syntax keyword cppSTLfunction get_allocator +" syntax keyword cppSTLfunction getc +" syntax keyword cppSTLfunction getchar +" syntax keyword cppSTLfunction getenv +" syntax keyword cppSTLfunction getline +" syntax keyword cppSTLfunction gets +" syntax keyword cppSTLfunction get_temporary_buffer +" syntax keyword cppSTLfunction gmtime +" syntax keyword cppSTLfunction good +" syntax keyword cppSTLfunction ignore +" syntax keyword cppSTLfunction imag +" syntax keyword cppSTLfunction in +" syntax keyword cppSTLfunction includes +" syntax keyword cppSTLfunction infinity +" syntax keyword cppSTLfunction inner_product +" syntax keyword cppSTLfunction inplace_merge +" syntax keyword cppSTLfunction insert +" syntax keyword cppSTLfunction inserter +" syntax keyword cppSTLfunction ios +" syntax keyword cppSTLfunction ios_base +" syntax keyword cppSTLfunction iostate +" syntax keyword cppSTLfunction iota +" syntax keyword cppSTLfunction isalnum +" syntax keyword cppSTLfunction isalpha +" syntax keyword cppSTLfunction iscntrl +" syntax keyword cppSTLfunction isdigit +" syntax keyword cppSTLfunction isgraph +" syntax keyword cppSTLfunction islower +" syntax keyword cppSTLfunction is_open +" syntax keyword cppSTLfunction isprint +" syntax keyword cppSTLfunction ispunct +" syntax keyword cppSTLfunction isspace +" syntax keyword cppSTLfunction isupper +" syntax keyword cppSTLfunction isxdigit +" syntax keyword cppSTLfunction iterator_category +" syntax keyword cppSTLfunction iter_swap +" syntax keyword cppSTLfunction jmp_buf +" syntax keyword cppSTLfunction key_comp +" syntax keyword cppSTLfunction labs +" syntax keyword cppSTLfunction ldexp +" syntax keyword cppSTLfunction ldiv +" syntax keyword cppSTLfunction length +" syntax keyword cppSTLfunction lexicographical_compare +" syntax keyword cppSTLfunction lexicographical_compare_3way +" syntax keyword cppSTLfunction llabs +" syntax keyword cppSTLfunction lldiv +" syntax keyword cppSTLfunction localtime +" syntax keyword cppSTLfunction log +" syntax keyword cppSTLfunction log10 +" syntax keyword cppSTLfunction longjmp +" syntax keyword cppSTLfunction lower_bound +" syntax keyword cppSTLfunction make_heap +" syntax keyword cppSTLfunction make_pair +" syntax keyword cppSTLfunction malloc +" syntax keyword cppSTLfunction max +" syntax keyword cppSTLfunction max_element +" syntax keyword cppSTLfunction max_size +" syntax keyword cppSTLfunction memchr +" syntax keyword cppSTLfunction memcpy +" syntax keyword cppSTLfunction mem_fun +" syntax keyword cppSTLfunction mem_fun_ref +" syntax keyword cppSTLfunction memmove +" syntax keyword cppSTLfunction memset +" syntax keyword cppSTLfunction merge +" syntax keyword cppSTLfunction min +" syntax keyword cppSTLfunction min_element +" syntax keyword cppSTLfunction mismatch +" syntax keyword cppSTLfunction mktime +" syntax keyword cppSTLfunction modf +" syntax keyword cppSTLfunction next_permutation +" syntax keyword cppSTLfunction none +" syntax keyword cppSTLfunction norm +" syntax keyword cppSTLfunction not1 +" syntax keyword cppSTLfunction not2 +" syntax keyword cppSTLfunction nth_element +" syntax keyword cppSTLfunction open +" syntax keyword cppSTLfunction partial_sort +" syntax keyword cppSTLfunction partial_sort_copy +" syntax keyword cppSTLfunction partial_sum +" syntax keyword cppSTLfunction partition +" syntax keyword cppSTLfunction peek +" syntax keyword cppSTLfunction perror +" syntax keyword cppSTLfunction polar +" syntax keyword cppSTLfunction pop +" syntax keyword cppSTLfunction pop_back +" syntax keyword cppSTLfunction pop_front +" syntax keyword cppSTLfunction pop_heap +" syntax keyword cppSTLfunction pow +" syntax keyword cppSTLfunction power +" syntax keyword cppSTLfunction precision +" syntax keyword cppSTLfunction prev_permutation +" syntax keyword cppSTLfunction printf +" syntax keyword cppSTLfunction ptr_fun +" syntax keyword cppSTLfunction push +" syntax keyword cppSTLfunction push_back +" syntax keyword cppSTLfunction push_front +" syntax keyword cppSTLfunction push_heap +" syntax keyword cppSTLfunction put +" syntax keyword cppSTLfunction putback +" syntax keyword cppSTLfunction putc +" syntax keyword cppSTLfunction putchar +" syntax keyword cppSTLfunction puts +" syntax keyword cppSTLfunction qsort +" syntax keyword cppSTLfunction quiet_NaN +" syntax keyword cppSTLfunction raise +" syntax keyword cppSTLfunction rand +" syntax keyword cppSTLfunction random_sample +" syntax keyword cppSTLfunction random_sample_n +" syntax keyword cppSTLfunction random_shuffle +" syntax keyword cppSTLfunction rbegin +" syntax keyword cppSTLfunction rdbuf +" syntax keyword cppSTLfunction rdstate +" syntax keyword cppSTLfunction read +" syntax keyword cppSTLfunction real +" syntax keyword cppSTLfunction realloc +" syntax keyword cppSTLfunction remove +" syntax keyword cppSTLfunction remove_copy +" syntax keyword cppSTLfunction remove_copy_if +" syntax keyword cppSTLfunction remove_if +" syntax keyword cppSTLfunction rename +" syntax keyword cppSTLfunction rend +" syntax keyword cppSTLfunction replace +" syntax keyword cppSTLfunction replace_copy +" syntax keyword cppSTLfunction replace_copy_if +" syntax keyword cppSTLfunction replace_if +" syntax keyword cppSTLfunction reserve +" syntax keyword cppSTLfunction reset +" syntax keyword cppSTLfunction resize +" syntax keyword cppSTLfunction return_temporary_buffer +" syntax keyword cppSTLfunction reverse +" syntax keyword cppSTLfunction reverse_copy +" syntax keyword cppSTLfunction rewind +" syntax keyword cppSTLfunction rfind +" syntax keyword cppSTLfunction rotate +" syntax keyword cppSTLfunction rotate_copy +" syntax keyword cppSTLfunction round_error +" syntax keyword cppSTLfunction scanf +" syntax keyword cppSTLfunction search +" syntax keyword cppSTLfunction search_n +" syntax keyword cppSTLfunction second +" syntax keyword cppSTLfunction seekg +" syntax keyword cppSTLfunction seekp +" syntax keyword cppSTLfunction setbuf +" syntax keyword cppSTLfunction set_difference +" syntax keyword cppSTLfunction setf +" syntax keyword cppSTLfunction set_intersection +" syntax keyword cppSTLfunction setjmp +" syntax keyword cppSTLfunction setlocale +" syntax keyword cppSTLfunction set_new_handler +" syntax keyword cppSTLfunction set_symmetric_difference +" syntax keyword cppSTLfunction set_union +" syntax keyword cppSTLfunction setvbuf +" syntax keyword cppSTLfunction signal +" syntax keyword cppSTLfunction signaling_NaN +" syntax keyword cppSTLfunction sin +" syntax keyword cppSTLfunction sinh +" syntax keyword cppSTLfunction size +" syntax keyword cppSTLfunction sort +" syntax keyword cppSTLfunction sort_heap +" syntax keyword cppSTLfunction splice +" syntax keyword cppSTLfunction sprintf +" syntax keyword cppSTLfunction sqrt +" syntax keyword cppSTLfunction srand +" syntax keyword cppSTLfunction sscanf +" syntax keyword cppSTLfunction stable_partition +" syntax keyword cppSTLfunction stable_sort +" syntax keyword cppSTLfunction str +" syntax keyword cppSTLfunction strcat +" syntax keyword cppSTLfunction strchr +" syntax keyword cppSTLfunction strcmp +" syntax keyword cppSTLfunction strcoll +" syntax keyword cppSTLfunction strcpy +" syntax keyword cppSTLfunction strcspn +" syntax keyword cppSTLfunction strerror +" syntax keyword cppSTLfunction strftime +" syntax keyword cppSTLfunction string +" syntax keyword cppSTLfunction strlen +" syntax keyword cppSTLfunction strncat +" syntax keyword cppSTLfunction strncmp +" syntax keyword cppSTLfunction strncpy +" syntax keyword cppSTLfunction strpbrk +" syntax keyword cppSTLfunction strrchr +" syntax keyword cppSTLfunction strspn +" syntax keyword cppSTLfunction strstr +" syntax keyword cppSTLfunction strtod +" syntax keyword cppSTLfunction strtof +" syntax keyword cppSTLfunction strtok +" syntax keyword cppSTLfunction strtol +" syntax keyword cppSTLfunction strtold +" syntax keyword cppSTLfunction strtoll +" syntax keyword cppSTLfunction strtoul +" syntax keyword cppSTLfunction strxfrm +" syntax keyword cppSTLfunction substr +" syntax keyword cppSTLfunction swap +" syntax keyword cppSTLfunction swap_ranges +" syntax keyword cppSTLfunction swprintf +" syntax keyword cppSTLfunction swscanf +" syntax keyword cppSTLfunction sync_with_stdio +" syntax keyword cppSTLfunction system +" syntax keyword cppSTLfunction tan +" syntax keyword cppSTLfunction tanh +" syntax keyword cppSTLfunction tellg +" syntax keyword cppSTLfunction tellp +" syntax keyword cppSTLfunction terminate_handler +" syntax keyword cppSTLfunction terminate +" syntax keyword cppSTLfunction set_terminate +" syntax keyword cppSTLfunction test +" syntax keyword cppSTLfunction time +" syntax keyword cppSTLfunction tmpfile +" syntax keyword cppSTLfunction tmpnam +" syntax keyword cppSTLfunction tolower +" syntax keyword cppSTLfunction top +" syntax keyword cppSTLfunction to_string +" syntax keyword cppSTLfunction to_ulong +" syntax keyword cppSTLfunction toupper +" syntax keyword cppSTLfunction to_wstring +" syntax keyword cppSTLfunction transform +" syntax keyword cppSTLfunction unary_compose +" syntax keyword cppSTLfunction unget +" syntax keyword cppSTLfunction ungetc +" syntax keyword cppSTLfunction uninitialized_copy +" syntax keyword cppSTLfunction uninitialized_copy_n +" syntax keyword cppSTLfunction uninitialized_fill +" syntax keyword cppSTLfunction uninitialized_fill_n +" syntax keyword cppSTLfunction unique +" syntax keyword cppSTLfunction unique_copy +" syntax keyword cppSTLfunction unsetf +" syntax keyword cppSTLfunction upper_bound +" syntax keyword cppSTLfunction va_arg +" syntax keyword cppSTLfunction va_copy +" syntax keyword cppSTLfunction va_end +" syntax keyword cppSTLfunction value_comp +" syntax keyword cppSTLfunction va_start +" syntax keyword cppSTLfunction vfprintf +" syntax keyword cppSTLfunction vfwprintf +" syntax keyword cppSTLfunction vprintf +" syntax keyword cppSTLfunction vsprintf +" syntax keyword cppSTLfunction vswprintf +" syntax keyword cppSTLfunction vwprintf +" syntax keyword cppSTLfunction width +" syntax keyword cppSTLfunction wprintf +" syntax keyword cppSTLfunction write +" syntax keyword cppSTLfunction wscanf +" syntax keyword cppSTLfunction mblen +" syntax keyword cppSTLfunction mbtowc +" syntax keyword cppSTLfunction wctomb +" syntax keyword cppSTLfunction mbstowcs +" syntax keyword cppSTLfunction wcstombs +" syntax keyword cppSTLfunction mbsinit +" syntax keyword cppSTLfunction btowc +" syntax keyword cppSTLfunction wctob +" syntax keyword cppSTLfunction mbrlen +" syntax keyword cppSTLfunction mbrtowc +" syntax keyword cppSTLfunction wcrtomb +" syntax keyword cppSTLfunction mbsrtowcs +" syntax keyword cppSTLfunction wcsrtombs +" syntax keyword cppSTLfunction iswalnum +" syntax keyword cppSTLfunction iswalpha +" syntax keyword cppSTLfunction iswlower +" syntax keyword cppSTLfunction iswupper +" syntax keyword cppSTLfunction iswdigit +" syntax keyword cppSTLfunction iswxdigit +" syntax keyword cppSTLfunction iswcntrl +" syntax keyword cppSTLfunction iswgraph +" syntax keyword cppSTLfunction iswspace +" syntax keyword cppSTLfunction iswprint +" syntax keyword cppSTLfunction iswpunct +" syntax keyword cppSTLfunction iswctype +" syntax keyword cppSTLfunction wctype +" syntax keyword cppSTLfunction towlower +" syntax keyword cppSTLfunction towupper +" syntax keyword cppSTLfunction towctrans +" syntax keyword cppSTLfunction wctrans +" syntax keyword cppSTLfunction wcstol +" syntax keyword cppSTLfunction wcstoll +" syntax keyword cppSTLfunction wcstoul +" syntax keyword cppSTLfunction wcstoull +" syntax keyword cppSTLfunction wcstof +" syntax keyword cppSTLfunction wcstod +" syntax keyword cppSTLfunction wcstold +" syntax keyword cppSTLfunction wcscpy +" syntax keyword cppSTLfunction wcsncpy +" syntax keyword cppSTLfunction wcscat +" syntax keyword cppSTLfunction wcsncat +" syntax keyword cppSTLfunction wcsxfrm +" syntax keyword cppSTLfunction wcslen +" syntax keyword cppSTLfunction wcscmp +" syntax keyword cppSTLfunction wcsncmp +" syntax keyword cppSTLfunction wcscoll +" syntax keyword cppSTLfunction wcschr +" syntax keyword cppSTLfunction wcsrchr +" syntax keyword cppSTLfunction wcsspn +" syntax keyword cppSTLfunction wcscspn +" syntax keyword cppSTLfunction wcspbrk +" syntax keyword cppSTLfunction wcsstr +" syntax keyword cppSTLfunction wcstok +" syntax keyword cppSTLfunction wmemcpy +" syntax keyword cppSTLfunction wmemmove +" syntax keyword cppSTLfunction wmemcmp +" syntax keyword cppSTLfunction wmemchr +" syntax keyword cppSTLfunction wmemset + +" ------------------------------------------------------------------------------ +" C++11 extensions +" ------------------------------------------------------------------------------ + +if !exists('cpp_no_cpp11') + syntax keyword cppSTLconstant nullptr + + " containers (array, vector, list, map, set, ...) + syntax keyword cppSTLtype array + " syntax keyword cppSTLfunction cbegin cend + " syntax keyword cppSTLfunction crbegin crend + " syntax keyword cppSTLfunction shrink_to_fit + " syntax keyword cppSTLfunction emplace + " syntax keyword cppSTLfunction emplace_back + " syntax keyword cppSTLfunction emplace_front + " syntax keyword cppSTLfunction emplace_hint + + " algorithm + " syntax keyword cppSTLfunction all_of any_of none_of + " syntax keyword cppSTLfunction find_if_not + " syntax keyword cppSTLfunction copy_if + " syntax keyword cppSTLfunction copy_n + " syntax keyword cppSTLfunction move + " syntax keyword cppSTLfunction move_backward + " syntax keyword cppSTLfunction shuffle + " syntax keyword cppSTLfunction is_partitioned + " syntax keyword cppSTLfunction partition_copy + " syntax keyword cppSTLfunction partition_point + " syntax keyword cppSTLfunction is_sorted + " syntax keyword cppSTLfunction is_sorted_until + " syntax keyword cppSTLfunction is_heap + " syntax keyword cppSTLfunction is_heap_until + " syntax keyword cppSTLfunction minmax + " syntax keyword cppSTLfunction minmax_element + " syntax keyword cppSTLfunction is_permutation + " syntax keyword cppSTLfunction itoa + + " atomic + syntax keyword cppSTLtype atomic + syntax keyword cppSTLtype atomic_flag + syntax keyword cppSTLtype atomic_bool + syntax keyword cppSTLtype atomic_char + syntax keyword cppSTLtype atomic_schar + syntax keyword cppSTLtype atomic_uchar + syntax keyword cppSTLtype atomic_short + syntax keyword cppSTLtype atomic_ushort + syntax keyword cppSTLtype atomic_int + syntax keyword cppSTLtype atomic_uint + syntax keyword cppSTLtype atomic_long + syntax keyword cppSTLtype atomic_ulong + syntax keyword cppSTLtype atomic_llong + syntax keyword cppSTLtype atomic_ullong + syntax keyword cppSTLtype atomic_char16_t + syntax keyword cppSTLtype atomic_char32_t + syntax keyword cppSTLtype atomic_wchar_t + syntax keyword cppSTLtype atomic_int_least8_t + syntax keyword cppSTLtype atomic_uint_least8_t + syntax keyword cppSTLtype atomic_int_least16_t + syntax keyword cppSTLtype atomic_uint_least16_t + syntax keyword cppSTLtype atomic_int_least32_t + syntax keyword cppSTLtype atomic_uint_least32_t + syntax keyword cppSTLtype atomic_int_least64_t + syntax keyword cppSTLtype atomic_uint_least64_t + syntax keyword cppSTLtype atomic_int_fast8_t + syntax keyword cppSTLtype atomic_uint_fast8_t + syntax keyword cppSTLtype atomic_int_fast16_t + syntax keyword cppSTLtype atomic_uint_fast16_t + syntax keyword cppSTLtype atomic_int_fast32_t + syntax keyword cppSTLtype atomic_uint_fast32_t + syntax keyword cppSTLtype atomic_int_fast64_t + syntax keyword cppSTLtype atomic_uint_fast64_t + syntax keyword cppSTLtype atomic_intptr_t + syntax keyword cppSTLtype atomic_uintptr_t + syntax keyword cppSTLtype atomic_size_t + syntax keyword cppSTLtype atomic_ptrdiff_t + syntax keyword cppSTLtype atomic_intmax_t + syntax keyword cppSTLtype atomic_uintmax_t + syntax keyword cppSTLconstant ATOMIC_FLAG_INIT + syntax keyword cppSTLenum memory_order + " syntax keyword cppSTLfunction is_lock_free + " syntax keyword cppSTLfunction compare_exchange_weak + " syntax keyword cppSTLfunction compare_exchange_strong + " syntax keyword cppSTLfunction fetch_add + " syntax keyword cppSTLfunction fetch_sub + " syntax keyword cppSTLfunction fetch_and + " syntax keyword cppSTLfunction fetch_or + " syntax keyword cppSTLfunction fetch_xor + " syntax keyword cppSTLfunction atomic_is_lock_free + " syntax keyword cppSTLfunction atomic_store + " syntax keyword cppSTLfunction atomic_store_explicit + " syntax keyword cppSTLfunction atomic_load + " syntax keyword cppSTLfunction atomic_load_explicit + " syntax keyword cppSTLfunction atomic_exchange + " syntax keyword cppSTLfunction atomic_exchange_explicit + " syntax keyword cppSTLfunction atomic_compare_exchange_weak + " syntax keyword cppSTLfunction atomic_compare_exchange_weak_explicit + " syntax keyword cppSTLfunction atomic_compare_exchange_strong + " syntax keyword cppSTLfunction atomic_compare_exchange_strong_explicit + " syntax keyword cppSTLfunction atomic_fetch_add + " syntax keyword cppSTLfunction atomic_fetch_add_explicit + " syntax keyword cppSTLfunction atomic_fetch_sub + " syntax keyword cppSTLfunction atomic_fetch_sub_explicit + " syntax keyword cppSTLfunction atomic_fetch_and + " syntax keyword cppSTLfunction atomic_fetch_and_explicit + " syntax keyword cppSTLfunction atomic_fetch_or + " syntax keyword cppSTLfunction atomic_fetch_or_explicit + " syntax keyword cppSTLfunction atomic_fetch_xor + " syntax keyword cppSTLfunction atomic_fetch_xor_explicit + " syntax keyword cppSTLfunction atomic_flag_test_and_set + " syntax keyword cppSTLfunction atomic_flag_test_and_set_explicit + " syntax keyword cppSTLfunction atomic_flag_clear + " syntax keyword cppSTLfunction atomic_flag_clear_explicit + " syntax keyword cppSTLfunction atomic_init + " syntax keyword cppSTLfunction ATOMIC_VAR_INIT + " syntax keyword cppSTLfunction kill_dependency + " syntax keyword cppSTLfunction atomic_thread_fence + " syntax keyword cppSTLfunction atomic_signal_fence + " syntax keyword cppSTLfunction store + " syntax keyword cppSTLfunction load + " syntax keyword cppSTLfunction exchange + + " bitset + " syntax keyword cppSTLfunction all + " syntax keyword cppSTLfunction to_ullong + + " cinttypes + " syntax keyword cppSTLfunction strtoimax + " syntax keyword cppSTLfunction strtoumax + " syntax keyword cppSTLfunction wcstoimax + " syntax keyword cppSTLfunction wcstoumax + + " chrono + syntax keyword cppSTLnamespace chrono + syntax keyword cppSTLcast duration_cast + syntax keyword cppSTLcast time_point_cast + syntax keyword cppSTLtype duration + syntax keyword cppSTLtype system_clock + syntax keyword cppSTLtype steady_clock + syntax keyword cppSTLtype high_resolution_clock + syntax keyword cppSTLtype time_point + syntax keyword cppSTLtype nanoseconds + syntax keyword cppSTLtype microseconds + syntax keyword cppSTLtype milliseconds + syntax keyword cppSTLtype seconds + syntax keyword cppSTLtype minutes + syntax keyword cppSTLtype hours + syntax keyword cppSTLtype treat_as_floating_point + syntax keyword cppSTLtype duration_values + " syntax keyword cppSTLtype rep period + " syntax keyword cppSTLfunction time_since_epoch + " syntax keyword cppSTLfunction zero + " syntax keyword cppSTLfunction now + " syntax keyword cppSTLfunction to_time_t + " syntax keyword cppSTLfunction from_time_t + + " complex + " syntax keyword cppSTLfunction proj + + " condition_variable + syntax keyword cppSTLtype condition_variable + " syntax keyword cppSTLfunction notify_all + " syntax keyword cppSTLfunction notify_one + + " cstddef + syntax keyword cppSTLtype nullptr_t max_align_t + + " cstdlib + " syntax keyword cppSTLfunction quick_exit + " syntax keyword cppSTLfunction _Exit + " syntax keyword cppSTLfunction at_quick_exit + + " cuchar + " syntax keyword cppSTLfunction mbrtoc16 + " syntax keyword cppSTLfunction c16rtomb + " syntax keyword cppSTLfunction mbrtoc32 + " syntax keyword cppSTLfunction c32rtomb + + " exception + syntax keyword cppSTLtype exception_ptr + syntax keyword cppSTLtype nested_exception + " syntax keyword cppSTLfunction get_terminate + " syntax keyword cppSTLfunction make_exception_ptr + " syntax keyword cppSTLfunction current_exception + " syntax keyword cppSTLfunction rethrow_exception + " syntax keyword cppSTLfunction throw_with_nested + " syntax keyword cppSTLfunction rethrow_if_nested + " syntax keyword cppSTLfunction rethrow_nested + + " functional + syntax keyword cppSTLexception bad_function_call + syntax keyword cppSTLfunctional function + syntax keyword cppSTLconstant _1 _2 _3 _4 _5 _6 _7 _8 _9 + syntax keyword cppSTLtype hash + syntax keyword cppSTLtype is_bind_expression + syntax keyword cppSTLtype is_placeholder + syntax keyword cppSTLtype reference_wrapper + " syntax keyword cppSTLfunction bind + " syntax keyword cppSTLfunction mem_fn + " syntax keyword cppSTLfunction ref cref + + " iomanip + " syntax keyword cppSTLios get_money + " syntax keyword cppSTLios get_time + " syntax keyword cppSTLios put_money + " syntax keyword cppSTLios put_time + + " iterator + syntax keyword cppSTLiterator move_iterator + " syntax keyword cppSTLfunction make_move_iterator + " syntax keyword cppSTLfunction next prev + " syntax keyword cppSTLfunction begin end + + " forward_list + syntax keyword cppSTLtype forward_list + " syntax keyword cppSTLfunction before_begin + " syntax keyword cppSTLfunction cbefore_begin + " syntax keyword cppSTLfunction insert_after + " syntax keyword cppSTLfunction emplace_after + " syntax keyword cppSTLfunction erase_after + " syntax keyword cppSTLfunction splice_after + + " future + syntax keyword cppSTLtype future + syntax keyword cppSTLtype packaged_task + syntax keyword cppSTLtype promise + syntax keyword cppSTLtype shared_future + syntax keyword cppSTLenum future_status + syntax keyword cppSTLenum future_errc + syntax keyword cppSTLenum launch + syntax keyword cppSTLexception future_error + " syntax keyword cppSTLfunction get_future + " syntax keyword cppSTLfunction set_value + " syntax keyword cppSTLfunction set_value_at_thread_exit + " syntax keyword cppSTLfunction set_exception + " syntax keyword cppSTLfunction set_exception_at_thread_exit + " syntax keyword cppSTLfunction wait_for + " syntax keyword cppSTLfunction wait_until + " syntax keyword cppSTLfunction future_category + " syntax keyword cppSTLfunction make_error_code + " syntax keyword cppSTLfunction make_error_condition + " syntax keyword cppSTLfunction make_ready_at_thread_exit + " syntax keyword cppSTLfunction async + " syntax keyword cppSTLfunction share + " syntax keyword cppSTLfunction valid + " syntax keyword cppSTLfunction wait + + " initializer_list + syntax keyword cppSTLtype initializer_list + + " ios + syntax keyword cppSTLenum io_errc + " syntax keyword cppSTLtype is_error_code_enum + " syntax keyword cppSTLfunction iostream_category + " syntax keyword cppSTLfunction vscanf vfscanf vsscanf + " syntax keyword cppSTLfunction snprintf vsnprintf + " syntax keyword cppSTLfunction vwscanf vfwscanf vswscanf + + " limits + syntax keyword cppSTLconstant max_digits10 + " syntax keyword cppSTLfunction lowest + + " locale + syntax keyword cppSTLtype wstring_convert + syntax keyword cppSTLtype wbuffer_convert + syntax keyword cppSTLtype codecvt_utf8 + syntax keyword cppSTLtype codecvt_utf16 + syntax keyword cppSTLtype codecvt_utf8_utf16 + syntax keyword cppSTLtype codecvt_mode + syntax keyword cppSTLfunction isblank + " syntax keyword cppSTLfunction iswblank + + " memory + syntax keyword cppSTLtype unique_ptr + syntax keyword cppSTLtype shared_ptr + syntax keyword cppSTLtype weak_ptr + syntax keyword cppSTLtype owner_less + syntax keyword cppSTLtype enable_shared_from_this + syntax keyword cppSTLtype default_delete + syntax keyword cppSTLtype allocator_traits + syntax keyword cppSTLtype allocator_type + syntax keyword cppSTLtype allocator_arg_t + syntax keyword cppSTLtype uses_allocator + syntax keyword cppSTLtype scoped_allocator_adaptor + syntax keyword cppSTLtype pointer_safety + syntax keyword cppSTLtype pointer_traits + syntax keyword cppSTLconstant allocator_arg + syntax keyword cppSTLexception bad_weak_ptr + syntax keyword cppSTLcast static_pointer_cast + syntax keyword cppSTLcast dynamic_pointer_cast + syntax keyword cppSTLcast const_pointer_cast + syntax keyword cppSTLfunction make_shared + " syntax keyword cppSTLfunction declare_reachable + " syntax keyword cppSTLfunction undeclare_reachable + " syntax keyword cppSTLfunction declare_no_pointers + " syntax keyword cppSTLfunction undeclare_no_pointers + " syntax keyword cppSTLfunction get_pointer_safety + " syntax keyword cppSTLfunction addressof + " syntax keyword cppSTLfunction allocate_shared + " syntax keyword cppSTLfunction get_deleter + " syntax keyword cppSTLfunction align + + " mutex + syntax keyword cppSTLtype mutex + syntax keyword cppSTLtype timed_mutex + syntax keyword cppSTLtype recursive_mutex + syntax keyword cppSTLtype recursive_timed_mutex + syntax keyword cppSTLtype lock_guard + syntax keyword cppSTLtype unique_lock + syntax keyword cppSTLtype defer_lock_t + syntax keyword cppSTLtype try_to_lock_t + syntax keyword cppSTLtype adopt_lock_t + syntax keyword cppSTLtype once_flag + syntax keyword cppSTLtype condition_variable_any + syntax keyword cppSTLenum cv_status + syntax keyword cppSTLconstant defer_lock try_to_lock adopt_lock + " syntax keyword cppSTLfunction try_lock lock unlock try_lock_for try_lock_until + " syntax keyword cppSTLfunction call_once + " syntax keyword cppSTLfunction owns_lock + " syntax keyword cppSTLfunction notify_all_at_thread_exit + " syntax keyword cppSTLfunction release + " Note: unique_lock has method 'mutex()', but already set as cppSTLtype + " syntax keyword cppSTLfunction mutex + + " new + syntax keyword cppSTLexception bad_array_new_length + " syntax keyword cppSTLfunction get_new_handler + + " numerics, cmath + syntax keyword cppSTLconstant HUGE_VALF + syntax keyword cppSTLconstant HUGE_VALL + syntax keyword cppSTLconstant INFINITY + syntax keyword cppSTLconstant NAN + syntax keyword cppSTLconstant math_errhandling + syntax keyword cppSTLconstant MATH_ERRNO + syntax keyword cppSTLconstant MATH_ERREXCEPT + syntax keyword cppSTLconstant FP_NORMAL + syntax keyword cppSTLconstant FP_SUBNORMAL + syntax keyword cppSTLconstant FP_ZERO + syntax keyword cppSTLconstant FP_INFINITY + syntax keyword cppSTLconstant FP_NAN + syntax keyword cppSTLconstant FLT_EVAL_METHOD + " syntax keyword cppSTLfunction imaxabs + " syntax keyword cppSTLfunction imaxdiv + " syntax keyword cppSTLfunction remainder + " syntax keyword cppSTLfunction remquo + " syntax keyword cppSTLfunction fma + " syntax keyword cppSTLfunction fmax + " syntax keyword cppSTLfunction fmin + " syntax keyword cppSTLfunction fdim + " syntax keyword cppSTLfunction nan + " syntax keyword cppSTLfunction nanf + " syntax keyword cppSTLfunction nanl + " syntax keyword cppSTLfunction exp2 + " syntax keyword cppSTLfunction expm1 + " syntax keyword cppSTLfunction log1p + " syntax keyword cppSTLfunction log2 + " syntax keyword cppSTLfunction cbrt + " syntax keyword cppSTLfunction hypot + " syntax keyword cppSTLfunction asinh + " syntax keyword cppSTLfunction acosh + " syntax keyword cppSTLfunction atanh + " syntax keyword cppSTLfunction erf + " syntax keyword cppSTLfunction erfc + " syntax keyword cppSTLfunction lgamma + " syntax keyword cppSTLfunction tgamma + " syntax keyword cppSTLfunction trunc + " syntax keyword cppSTLfunction round + " syntax keyword cppSTLfunction lround + " syntax keyword cppSTLfunction llround + " syntax keyword cppSTLfunction nearbyint + " syntax keyword cppSTLfunction rint + " syntax keyword cppSTLfunction lrint + " syntax keyword cppSTLfunction llrint + " syntax keyword cppSTLfunction scalbn + " syntax keyword cppSTLfunction scalbln + " syntax keyword cppSTLfunction ilogb + " syntax keyword cppSTLfunction logb + " syntax keyword cppSTLfunction nextafter + " syntax keyword cppSTLfunction nexttoward + " syntax keyword cppSTLfunction copysign + " syntax keyword cppSTLfunction fpclassify + " syntax keyword cppSTLfunction isfinite + " syntax keyword cppSTLfunction isinf + " syntax keyword cppSTLfunction isnan + " syntax keyword cppSTLfunction isnormal + " syntax keyword cppSTLfunction signbit + + " random + syntax keyword cppSTLtype linear_congruential_engine + syntax keyword cppSTLtype mersenne_twister_engine + syntax keyword cppSTLtype subtract_with_carry_engine + syntax keyword cppSTLtype discard_block_engine + syntax keyword cppSTLtype independent_bits_engine + syntax keyword cppSTLtype shuffle_order_engine + syntax keyword cppSTLtype random_device + syntax keyword cppSTLtype default_random_engine + syntax keyword cppSTLtype minstd_rand0 + syntax keyword cppSTLtype minstd_rand + syntax keyword cppSTLtype mt19937 + syntax keyword cppSTLtype mt19937_64 + syntax keyword cppSTLtype ranlux24_base + syntax keyword cppSTLtype ranlux48_base + syntax keyword cppSTLtype ranlux24 + syntax keyword cppSTLtype ranlux48 + syntax keyword cppSTLtype knuth_b + syntax keyword cppSTLtype uniform_int_distribution + syntax keyword cppSTLtype uniform_real_distribution + syntax keyword cppSTLtype bernoulli_distribution + syntax keyword cppSTLtype binomial_distribution + syntax keyword cppSTLtype negative_binomial_distribution + syntax keyword cppSTLtype geometric_distribution + syntax keyword cppSTLtype poisson_distribution + syntax keyword cppSTLtype exponential_distribution + syntax keyword cppSTLtype gamma_distribution + syntax keyword cppSTLtype weibull_distribution + syntax keyword cppSTLtype extreme_value_distribution + syntax keyword cppSTLtype normal_distribution + syntax keyword cppSTLtype lognormal_distribution + syntax keyword cppSTLtype chi_squared_distribution + syntax keyword cppSTLtype cauchy_distribution + syntax keyword cppSTLtype fisher_f_distribution + syntax keyword cppSTLtype student_t_distribution + syntax keyword cppSTLtype discrete_distribution + syntax keyword cppSTLtype piecewise_constant_distribution + syntax keyword cppSTLtype piecewise_linear_distribution + syntax keyword cppSTLtype seed_seq + syntax keyword cppSTLfunction generate_canonical + + " ratio + syntax keyword cppSTLtype ratio + syntax keyword cppSTLtype yocto + syntax keyword cppSTLtype zepto + syntax keyword cppSTLtype atto + syntax keyword cppSTLtype femto + syntax keyword cppSTLtype pico + syntax keyword cppSTLtype nano + syntax keyword cppSTLtype micro + syntax keyword cppSTLtype milli + syntax keyword cppSTLtype centi + syntax keyword cppSTLtype deci + syntax keyword cppSTLtype deca + syntax keyword cppSTLtype hecto + syntax keyword cppSTLtype kilo + syntax keyword cppSTLtype mega + syntax keyword cppSTLtype giga + syntax keyword cppSTLtype tera + syntax keyword cppSTLtype peta + syntax keyword cppSTLtype exa + syntax keyword cppSTLtype zetta + syntax keyword cppSTLtype yotta + syntax keyword cppSTLtype ratio_add + syntax keyword cppSTLtype ratio_subtract + syntax keyword cppSTLtype ratio_multiply + syntax keyword cppSTLtype ratio_divide + syntax keyword cppSTLtype ratio_equal + syntax keyword cppSTLtype ratio_not_equal + syntax keyword cppSTLtype ratio_less + syntax keyword cppSTLtype ratio_less_equal + syntax keyword cppSTLtype ratio_greater + syntax keyword cppSTLtype ratio_greater_equal + + " regex + syntax keyword cppSTLtype basic_regex + syntax keyword cppSTLtype sub_match + syntax keyword cppSTLtype match_results + syntax keyword cppSTLtype regex_traits + syntax keyword cppSTLtype regex_match regex_search regex_replace + syntax keyword cppSTLiterator regex_iterator + syntax keyword cppSTLiterator regex_token_iterator + syntax keyword cppSTLexception regex_error + syntax keyword cppSTLtype syntax_option_type match_flag_type error_type + + " string + " syntax keyword cppSTLfunction stoi + " syntax keyword cppSTLfunction stol + " syntax keyword cppSTLfunction stoll + " syntax keyword cppSTLfunction stoul + " syntax keyword cppSTLfunction stoull + " syntax keyword cppSTLfunction stof + " syntax keyword cppSTLfunction stod + " syntax keyword cppSTLfunction stold + + " system_error + syntax keyword cppSTLenum errc + syntax keyword cppSTLexception system_error + syntax keyword cppSTLtype error_code + syntax keyword cppSTLtype error_condition + syntax keyword cppSTLtype error_category + syntax keyword cppSTLtype is_error_code_enum + syntax keyword cppSTLtype is_error_condition_enum + " syntax keyword cppSTLfunction default_error_condition + " syntax keyword cppSTLfunction generic_category + " syntax keyword cppSTLfunction system_category + " syntax keyword cppSTLfunction code + " syntax keyword cppSTLfunction category + " syntax keyword cppSTLfunction message + " syntax keyword cppSTLfunction equivalent + + " thread + syntax keyword cppSTLnamespace this_thread + syntax keyword cppSTLtype thread + " syntax keyword cppSTLfunction get_id + " syntax keyword cppSTLfunction sleep_for + " syntax keyword cppSTLfunction sleep_until + " syntax keyword cppSTLfunction joinable + " syntax keyword cppSTLfunction native_handle + " syntax keyword cppSTLfunction hardware_concurrency + " syntax keyword cppSTLfunction yield + " syntax keyword cppSTLfunction join + " syntax keyword cppSTLfunction detach + + " tuple + syntax keyword cppSTLtype tuple + syntax keyword cppSTLtype tuple_size + syntax keyword cppSTLtype tuple_element + syntax keyword cppSTLfunction make_tuple + syntax keyword cppSTLfunction tie + syntax keyword cppSTLfunction forward_as_tuple + syntax keyword cppSTLfunction tuple_cat + " Note: 'ignore' is already set as cppSTLfunction + " syntax keyword cppSTLconstant ignore + + " typeindex + syntax keyword cppSTLtype type_index + + " type_traits + syntax keyword cppSTLtype is_void + syntax keyword cppSTLtype is_integral + syntax keyword cppSTLtype is_floating_point + syntax keyword cppSTLtype is_array + syntax keyword cppSTLtype is_enum + syntax keyword cppSTLtype is_union + syntax keyword cppSTLtype is_class + syntax keyword cppSTLtype is_function + syntax keyword cppSTLtype is_pointer + syntax keyword cppSTLtype is_lvalue_reference + syntax keyword cppSTLtype is_rvalue_reference + syntax keyword cppSTLtype is_member_object_pointer + syntax keyword cppSTLtype is_member_function_pointer + syntax keyword cppSTLtype is_fundamental + syntax keyword cppSTLtype is_arithmetic + syntax keyword cppSTLtype is_scalar + syntax keyword cppSTLtype is_object + syntax keyword cppSTLtype is_compound + syntax keyword cppSTLtype is_reference + syntax keyword cppSTLtype is_member_pointer + syntax keyword cppSTLtype is_const + syntax keyword cppSTLtype is_volatile + syntax keyword cppSTLtype is_trivial + syntax keyword cppSTLtype is_trivially_copyable + syntax keyword cppSTLtype is_standard_layout + syntax keyword cppSTLtype is_pod + syntax keyword cppSTLtype is_literal_type + syntax keyword cppSTLtype is_empty + syntax keyword cppSTLtype is_polymorphic + syntax keyword cppSTLtype is_abstract + syntax keyword cppSTLtype is_signed + syntax keyword cppSTLtype is_unsigned + syntax keyword cppSTLtype is_constructible + syntax keyword cppSTLtype is_trivially_constructible + syntax keyword cppSTLtype is_nothrow_constructible + syntax keyword cppSTLtype is_default_constructible + syntax keyword cppSTLtype is_trivially_default_constructible + syntax keyword cppSTLtype is_nothrow_default_constructible + syntax keyword cppSTLtype is_copy_constructible + syntax keyword cppSTLtype is_trivially_copy_constructible + syntax keyword cppSTLtype is_nothrow_copy_constructible + syntax keyword cppSTLtype is_move_constructible + syntax keyword cppSTLtype is_trivially_move_constructible + syntax keyword cppSTLtype is_nothrow_move_constructible + syntax keyword cppSTLtype is_assignable + syntax keyword cppSTLtype is_trivially_assignable + syntax keyword cppSTLtype is_nothrow_assignable + syntax keyword cppSTLtype is_copy_assignable + syntax keyword cppSTLtype is_trivially_copy_assignable + syntax keyword cppSTLtype is_nothrow_copy_assignable + syntax keyword cppSTLtype is_move_assignable + syntax keyword cppSTLtype is_trivially_move_assignable + syntax keyword cppSTLtype is_nothrow_move_assignable + syntax keyword cppSTLtype is_destructible + syntax keyword cppSTLtype is_trivially_destructible + syntax keyword cppSTLtype is_nothrow_destructible + syntax keyword cppSTLtype has_virtual_destructor + syntax keyword cppSTLtype alignment_of + syntax keyword cppSTLtype rank + syntax keyword cppSTLtype extent + syntax keyword cppSTLtype is_same + syntax keyword cppSTLtype is_base_of + syntax keyword cppSTLtype is_convertible + syntax keyword cppSTLtype remove_cv + syntax keyword cppSTLtype remove_const + syntax keyword cppSTLtype remove_volatile + syntax keyword cppSTLtype add_cv + syntax keyword cppSTLtype add_const + syntax keyword cppSTLtype add_volatile + syntax keyword cppSTLtype remove_reference + syntax keyword cppSTLtype add_lvalue_reference + syntax keyword cppSTLtype add_rvalue_reference + syntax keyword cppSTLtype remove_pointer + syntax keyword cppSTLtype add_pointer + syntax keyword cppSTLtype make_signed + syntax keyword cppSTLtype make_unsigned + syntax keyword cppSTLtype remove_extent + syntax keyword cppSTLtype remove_all_extents + syntax keyword cppSTLtype aligned_storage + syntax keyword cppSTLtype aligned_union + syntax keyword cppSTLtype decay + syntax keyword cppSTLtype enable_if + syntax keyword cppSTLtype conditional + syntax keyword cppSTLtype common_type + syntax keyword cppSTLtype underlying_type + syntax keyword cppSTLtype result_of + syntax keyword cppSTLtype integral_constant + syntax keyword cppSTLtype true_type + syntax keyword cppSTLtype false_type + + " unordered_map, unordered_set, unordered_multimap, unordered_multiset + syntax keyword cppSTLtype unordered_map + syntax keyword cppSTLtype unordered_set + syntax keyword cppSTLtype unordered_multimap + syntax keyword cppSTLtype unordered_multiset + syntax keyword cppSTLtype hasher + syntax keyword cppSTLtype key_equal + syntax keyword cppSTLiterator local_iterator + syntax keyword cppSTLiterator const_local_iterator + " syntax keyword cppSTLfunction bucket_count + " syntax keyword cppSTLfunction max_bucket_count + " syntax keyword cppSTLfunction bucket_size + " syntax keyword cppSTLfunction bucket + " syntax keyword cppSTLfunction load_factor + " syntax keyword cppSTLfunction max_load_factor + " syntax keyword cppSTLfunction rehash + " syntax keyword cppSTLfunction reserve + " syntax keyword cppSTLfunction hash_function + " syntax keyword cppSTLfunction key_eq + + " utility + syntax keyword cppSTLtype piecewise_construct_t + syntax keyword cppSTLconstant piecewise_construct + syntax keyword cppSTLfunction declval + syntax keyword cppSTLfunction forward + syntax keyword cppSTLfunction move + syntax keyword cppSTLfunction move_if_noexcept + + " raw string literals + syntax region cppRawString matchgroup=cppRawDelimiter start=@\%(u8\|[uLU]\)\=R"\z([[:alnum:]_{}[\]#<>%:;.?*\+\-/\^&|~!=,"']\{,16}\)(@ end=/)\z1"/ contains=@Spell + + syn match cNumber "0b[01]\+" +endif " C++11 + + +" ------------------------------------------------------------------------------ +" C++14 extensions +" ------------------------------------------------------------------------------ + +if !exists('cpp_no_cpp14') + " chrono + syntax keyword cppSTLnamespace literals + syntax keyword cppSTLnamespace chrono_literals + " TODO: add literals h, min, s, ms, us, ns + " syn keyword cppStorageClass? + + " complex + " TODO: add literals i, if, il + " syn keyword cppStorageClass? + + " iomanip + " syntax keyword cppSTLfunction quoted + + " iterator + " syntax keyword cppSTLfunction make_reverse_iterator + + " memory + syntax keyword cppSTLfunction make_unique + + " utility + syntax keyword cppSTLtype integer_sequence + syntax keyword cppSTLtype index_sequence + syntax keyword cppSTLtype make_integer_sequence + syntax keyword cppSTLtype make_index_sequence + syntax keyword cppSTLtype index_sequence_for + + " shared_mutex + syntax keyword cppSTLtype shared_timed_mutex + syntax keyword cppSTLtype shared_lock + " syntax keyword cppSTLfunction lock_shared + " syntax keyword cppSTLfunction unlock_shared + " syntax keyword cppSTLfunction try_lock_shared + " syntax keyword cppSTLfunction try_lock_shared_for + " syntax keyword cppSTLfunction try_lock_shared_until + + " string + syntax keyword cppSTLnamespace string_literals + + " tuple + syntax keyword cppSTLtype tuple_element_t + + " type_traits + syntax keyword cppSTLtype is_null_pointer + syntax keyword cppSTLtype remove_cv_t + syntax keyword cppSTLtype remove_const_t + syntax keyword cppSTLtype remove_volatile_t + syntax keyword cppSTLtype add_cv_t + syntax keyword cppSTLtype add_const_t + syntax keyword cppSTLtype add_volatile_t + syntax keyword cppSTLtype remove_reference_t + syntax keyword cppSTLtype add_lvalue_reference_t + syntax keyword cppSTLtype add_rvalue_reference_t + syntax keyword cppSTLtype remove_pointer_t + syntax keyword cppSTLtype add_pointer_t + syntax keyword cppSTLtype make_signed_t + syntax keyword cppSTLtype make_unsigned_t + syntax keyword cppSTLtype remove_extent_t + syntax keyword cppSTLtype remove_all_extents_t + syntax keyword cppSTLtype aligned_storage_t + syntax keyword cppSTLtype aligned_union_t + syntax keyword cppSTLtype decay_t + syntax keyword cppSTLtype enable_if_t + syntax keyword cppSTLtype conditional_t + syntax keyword cppSTLtype common_type_t + syntax keyword cppSTLtype underlying_type_t + syntax keyword cppSTLtype result_of_t +endif " C++14 + + +" ------------------------------------------------------------------------------ +" C++17 extensions +" ------------------------------------------------------------------------------ + +if !exists('cpp_no_cpp17') + " syntax keyword cppSTLfunction data + + " algorithm + " syntax keyword cppSTLfunction clamp + " syntax keyword cppSTLfunction for_each_n + + " any + syntax keyword cppSTLtype any + syntax keyword cppSTLexception bad_any_cast + syntax keyword cppSTLcast any_cast + " syntax keyword cppSTLfunction any_cast + " syntax keyword cppSTLfunction make_any + + " array + " syntax keyword cppSTLfunction to_array + " syntax keyword cppSTLfunction make_array + + " atomic + syntax keyword cppSTLconstant is_always_lock_free + + " chrono + syntax keyword cppSTLbool treat_as_floating_point_v + + " cmath + " syntax keyword cppSTLfunction assoc_laguerre assoc_laguerref assoc_laguerrel + " syntax keyword cppSTLfunction assoc_legendre assoc_legendref assoc_legendrel + " syntax keyword cppSTLfunction beta betaf betal + " syntax keyword cppSTLfunction comp_ellint_1 comp_ellint_1f comp_ellint_1l + " syntax keyword cppSTLfunction comp_ellint_2 comp_ellint_2f comp_ellint_2l + " syntax keyword cppSTLfunction comp_ellint_3 comp_ellint_3f comp_ellint_3l + " syntax keyword cppSTLfunction cyl_bessel_i cyl_bessel_if cyl_bessel_il + " syntax keyword cppSTLfunction cyl_bessel_j cyl_bessel_jf cyl_bessel_jl + " syntax keyword cppSTLfunction cyl_bessel_k cyl_bessel_kf cyl_bessel_kl + " syntax keyword cppSTLfunction cyl_neumann cyl_neumannf cyl_neumannl + " syntax keyword cppSTLfunction ellint_1 ellint_1f ellint_1l + " syntax keyword cppSTLfunction ellint_2 ellint_2f ellint_2l + " syntax keyword cppSTLfunction ellint_3 ellint_3f ellint_3l + " syntax keyword cppSTLfunction expint expintf expintl + " syntax keyword cppSTLfunction hermite hermitef hermitel + " syntax keyword cppSTLfunction legendre legendrefl egendrel + " syntax keyword cppSTLfunction laguerre laguerref laguerrel + " syntax keyword cppSTLfunction riemann_zeta riemann_zetaf riemann_zetal + " syntax keyword cppSTLfunction sph_bessel sph_besself sph_bessell + " syntax keyword cppSTLfunction sph_legendre sph_legendref sph_legendrel + " syntax keyword cppSTLfunction sph_neumann sph_neumannf sph_neumannl + + " cstdlib + " syntax keyword cppSTLfunction aligned_alloc + + " exception + " syntax keyword cppSTLfunction uncaught_exceptions + + " execution + syntax keyword cppSTLnamespace execution + syntax keyword cppSTLconstant seq par par_unseq + syntax keyword cppSTLbool is_execution_policy_v + syntax keyword cppSTLtype sequenced_policy + syntax keyword cppSTLtype parallel_policy + syntax keyword cppSTLtype parallel_unsequenced_policy + syntax keyword cppSTLtype is_execution_policy + + " filesystem + syntax keyword cppSTLnamespace filesystem + syntax keyword cppSTLexception filesystem_error + syntax keyword cppSTLtype path + syntax keyword cppSTLtype directory_entry + syntax keyword cppSTLtype directory_iterator + syntax keyword cppSTLtype recursive_directory_iterator + syntax keyword cppSTLtype file_status + syntax keyword cppSTLtype space_info + syntax keyword cppSTLtype file_time_type + syntax keyword cppSTLenum file_type + syntax keyword cppSTLenum perms + syntax keyword cppSTLenum perm_options + syntax keyword cppSTLenum copy_options + syntax keyword cppSTLenum directory_options + syntax keyword cppSTLenum format + syntax keyword cppSTLconstant native_format generic_format auto_format + syntax keyword cppSTLconstant preferred_separator + syntax keyword cppSTLconstant skip_existing + syntax keyword cppSTLconstant overwrite_existing + syntax keyword cppSTLconstant update_existing + syntax keyword cppSTLconstant recursive + syntax keyword cppSTLconstant copy_symlinks + syntax keyword cppSTLconstant skip_symlinks + syntax keyword cppSTLconstant directories_only + syntax keyword cppSTLconstant create_symlinks + syntax keyword cppSTLconstant create_hard_links + syntax keyword cppSTLconstant owner_read owner_write owner_exec owner_all + syntax keyword cppSTLconstant group_read group_write group_exec group_all + syntax keyword cppSTLconstant others_read others_write others_exec others_all + syntax keyword cppSTLconstant set_uid set_gid sticky_bit + syntax keyword cppSTLconstant follow_directory_symlink skip_permission_denied + " Note: following keywords are very likely to coincide with some user-defined variables + " syntax keyword cppSTLconstant all mask unknown + " syntax keyword cppSTLconstant replace add remove nofollow + " syntax keyword cppSTLconstant none + " syntax keyword cppSTLconstant not_found + " syntax keyword cppSTLconstant regular + " syntax keyword cppSTLconstant directory + " syntax keyword cppSTLconstant symlink + " syntax keyword cppSTLconstant block + " syntax keyword cppSTLconstant character + " syntax keyword cppSTLconstant fifo + " syntax keyword cppSTLconstant socket + " syntax keyword cppSTLconstant unknown + + " Note: 'capacity' and 'free' are already set as cppSTLfunction + " syntax keyword cppSTLconstant capacity + " syntax keyword cppSTLconstant free + " syntax keyword cppSTLconstant available + " syntax keyword cppSTLfunction concat + " syntax keyword cppSTLfunction make_preferred + " syntax keyword cppSTLfunction remove_filename + " syntax keyword cppSTLfunction replace_filename + " syntax keyword cppSTLfunction replace_extension + " syntax keyword cppSTLfunction native + " syntax keyword cppSTLfunction string_type + " Note: wstring, u8string, u16string, u32string already set as cppSTLtype + " syntax keyword cppSTLfunction wstring + " syntax keyword cppSTLfunction u8string + " syntax keyword cppSTLfunction u16string + " syntax keyword cppSTLfunction u32string + " syntax keyword cppSTLfunction generic_string + " syntax keyword cppSTLfunction generic_wstring + " syntax keyword cppSTLfunction generic_u8string + " syntax keyword cppSTLfunction generic_u16string + " syntax keyword cppSTLfunction generic_u32string + " syntax keyword cppSTLfunction lexically_normal + " syntax keyword cppSTLfunction lexically_relative + " syntax keyword cppSTLfunction lexically_proximate + " syntax keyword cppSTLfunction root_name + " syntax keyword cppSTLfunction root_directory + " syntax keyword cppSTLfunction root_path + " syntax keyword cppSTLfunction relative_path + " syntax keyword cppSTLfunction parent_path + " syntax keyword cppSTLfunction filename + " syntax keyword cppSTLfunction stem + " syntax keyword cppSTLfunction extension + " syntax keyword cppSTLfunction has_root_name + " syntax keyword cppSTLfunction has_root_directory + " syntax keyword cppSTLfunction has_root_path + " syntax keyword cppSTLfunction has_relative_path + " syntax keyword cppSTLfunction has_parent_path + " syntax keyword cppSTLfunction has_filename + " syntax keyword cppSTLfunction has_stem + " syntax keyword cppSTLfunction has_extension + " syntax keyword cppSTLfunction is_absolute + " syntax keyword cppSTLfunction is_relative + " syntax keyword cppSTLfunction hash_value + " syntax keyword cppSTLfunction u8path + " syntax keyword cppSTLfunction path1 + " syntax keyword cppSTLfunction path2 + " syntax keyword cppSTLfunction path + " syntax keyword cppSTLfunction status + " syntax keyword cppSTLfunction symlink_status + " syntax keyword cppSTLfunction options + " syntax keyword cppSTLfunction depth + " syntax keyword cppSTLfunction recursive_pending + " syntax keyword cppSTLfunction disable_recursive_pending + " syntax keyword cppSTLfunction type + " syntax keyword cppSTLfunction permissions + " syntax keyword cppSTLfunction absolute + " syntax keyword cppSTLfunction system_complete + " syntax keyword cppSTLfunction canonical + " syntax keyword cppSTLfunction weakly_canonical + " syntax keyword cppSTLfunction relative + " syntax keyword cppSTLfunction proximate + " syntax keyword cppSTLfunction copy_file + " syntax keyword cppSTLfunction copy_symlink + " syntax keyword cppSTLfunction create_directory + " syntax keyword cppSTLfunction create_directories + " syntax keyword cppSTLfunction create_hard_link + " syntax keyword cppSTLfunction create_symlink + " syntax keyword cppSTLfunction create_directory_symlink + " syntax keyword cppSTLfunction current_path + " syntax keyword cppSTLfunction exists + " syntax keyword cppSTLfunction file_size + " syntax keyword cppSTLfunction hard_link_count + " syntax keyword cppSTLfunction last_write_time + " syntax keyword cppSTLfunction read_symlink + " syntax keyword cppSTLfunction remove_all + " syntax keyword cppSTLfunction resize_file + " syntax keyword cppSTLfunction space + " syntax keyword cppSTLfunction temp_directory_path + " syntax keyword cppSTLfunction is_block_file + " syntax keyword cppSTLfunction is_character_file + " syntax keyword cppSTLfunction is_directory + " syntax keyword cppSTLfunction is_fifo + " syntax keyword cppSTLfunction is_other + " syntax keyword cppSTLfunction is_regular_file + " syntax keyword cppSTLfunction is_socket + " syntax keyword cppSTLfunction is_symlink + " syntax keyword cppSTLfunction status_known + " Note: 'is_empty' already set as cppSTLtype + " syntax keyword cppSTLfunction is_empty + + " functional + syntax keyword cppSTLtype default_order + syntax keyword cppSTLtype default_order_t + syntax keyword cppSTLtype default_searcher + syntax keyword cppSTLtype boyer_moore_searcher + syntax keyword cppSTLtype boyer_moore_horspool_searcher + syntax keyword cppSTLbool is_bind_expression_v + syntax keyword cppSTLbool is_placeholder_v + " syntax keyword cppSTLfunction not_fn + " syntax keyword cppSTLfunction make_default_searcher + " syntax keyword cppSTLfunction make_boyer_moore_searcher + " syntax keyword cppSTLfunction make_boyer_moore_horspool_searcher + " syntax keyword cppSTLfunction invoke + + " memory + syntax keyword cppSTLcast reinterpret_pointer_cast + " syntax keyword cppSTLfunction uninitialized_move + " syntax keyword cppSTLfunction uninitialized_move_n + " syntax keyword cppSTLfunction uninitialized_default_construct + " syntax keyword cppSTLfunction uninitialized_default_construct_n + " syntax keyword cppSTLfunction uninitialized_value_construct + " syntax keyword cppSTLfunction uninitialized_value_construct_n + " syntax keyword cppSTLfunction destroy_at + " syntax keyword cppSTLfunction destroy_n + + " memory_resource + syntax keyword cppSTLtype polymorphic_allocator + syntax keyword cppSTLtype memory_resource + syntax keyword cppSTLtype synchronized_pool_resource + syntax keyword cppSTLtype unsynchronized_pool_resource + syntax keyword cppSTLtype pool_options + syntax keyword cppSTLtype monotonic_buffer_resource + " syntax keyword cppSTLfunction upstream_resource + " syntax keyword cppSTLfunction get_default_resource + " syntax keyword cppSTLfunction new_default_resource + " syntax keyword cppSTLfunction set_default_resource + " syntax keyword cppSTLfunction null_memory_resource + " syntax keyword cppSTLfunction allocate + " syntax keyword cppSTLfunction deallocate + " syntax keyword cppSTLfunction construct + " syntax keyword cppSTLfunction destruct + " syntax keyword cppSTLfunction resource + " syntax keyword cppSTLfunction select_on_container_copy_construction + " syntax keyword cppSTLfunction do_allocate + " syntax keyword cppSTLfunction do_deallocate + " syntax keyword cppSTLfunction do_is_equal + + " mutex + syntax keyword cppSTLtype scoped_lock + + " new + syntax keyword cppSTLconstant hardware_destructive_interference_size + syntax keyword cppSTLconstant hardware_constructive_interference_size + " syntax keyword cppSTLfunction launder + + " numeric + " syntax keyword cppSTLfunction gcd + " syntax keyword cppSTLfunction lcm + " syntax keyword cppSTLfunction exclusive_scan + " syntax keyword cppSTLfunction inclusive_scan + " syntax keyword cppSTLfunction transform_reduce + " syntax keyword cppSTLfunction transform_exclusive_scan + " syntax keyword cppSTLfunction transform_inclusive_scan + " syntax keyword cppSTLfunction reduce + + " optional + syntax keyword cppSTLtype optional + syntax keyword cppSTLtype nullopt_t + syntax keyword cppSTLexception bad_optional_access + syntax keyword cppSTLconstant nullopt + syntax keyword cppSTLfunction make_optional + " syntax keyword cppSTLfunction value_or + " syntax keyword cppSTLfunction has_value + " syntax keyword cppSTLfunction value + + " shared_mutex + syntax keyword cppSTLtype shared_mutex + + " string_view + syntax keyword cppSTLtype basic_string_view + syntax keyword cppSTLtype string_view + syntax keyword cppSTLtype wstring_view + syntax keyword cppSTLtype u16string_view + syntax keyword cppSTLtype u32string_view + " syntax keyword cppSTLfunction remove_prefix + " syntax keyword cppSTLfunction remove_suffix + + " system_error + syntax keyword cppSTLbool is_error_code_enum_v + syntax keyword cppSTLbool is_error_condition_enum_v + + " tuple + syntax keyword cppSTLconstant tuple_size_v + syntax keyword cppSTLfunction make_from_tuple + " syntax keyword cppSTLfunction apply + + " type_traits + syntax keyword cppSTLbool is_void_v + syntax keyword cppSTLbool is_null_pointer_v + syntax keyword cppSTLbool is_integral_v + syntax keyword cppSTLbool is_floating_point_v + syntax keyword cppSTLbool is_array_v + syntax keyword cppSTLbool is_enum_v + syntax keyword cppSTLbool is_union_v + syntax keyword cppSTLbool is_class_v + syntax keyword cppSTLbool is_function_v + syntax keyword cppSTLbool is_pointer_v + syntax keyword cppSTLbool is_lvalue_reference_v + syntax keyword cppSTLbool is_rvalue_reference_v + syntax keyword cppSTLbool is_member_object_pointer_v + syntax keyword cppSTLbool is_member_function_pointer_v + syntax keyword cppSTLbool is_fundamental_v + syntax keyword cppSTLbool is_arithmetic_v + syntax keyword cppSTLbool is_scalar_v + syntax keyword cppSTLbool is_object_v + syntax keyword cppSTLbool is_compound_v + syntax keyword cppSTLbool is_reference_v + syntax keyword cppSTLbool is_member_pointer_v + syntax keyword cppSTLbool is_const_v + syntax keyword cppSTLbool is_volatile_v + syntax keyword cppSTLbool is_trivial_v + syntax keyword cppSTLbool is_trivially_copyable_v + syntax keyword cppSTLbool is_standard_layout_v + syntax keyword cppSTLbool is_pod_v + syntax keyword cppSTLbool is_literal_type_v + syntax keyword cppSTLbool is_empty_v + syntax keyword cppSTLbool is_polymorphic_v + syntax keyword cppSTLbool is_abstract_v + syntax keyword cppSTLbool is_signed_v + syntax keyword cppSTLbool is_unsigned_v + syntax keyword cppSTLbool is_constructible_v + syntax keyword cppSTLbool is_trivially_constructible_v + syntax keyword cppSTLbool is_nothrow_constructible_v + syntax keyword cppSTLbool is_default_constructible_v + syntax keyword cppSTLbool is_trivially_default_constructible_v + syntax keyword cppSTLbool is_nothrow_default_constructible_v + syntax keyword cppSTLbool is_copy_constructible_v + syntax keyword cppSTLbool is_trivially_copy_constructible_v + syntax keyword cppSTLbool is_nothrow_copy_constructible_v + syntax keyword cppSTLbool is_move_constructible_v + syntax keyword cppSTLbool is_trivially_move_constructible_v + syntax keyword cppSTLbool is_nothrow_move_constructible_v + syntax keyword cppSTLbool is_assignable_v + syntax keyword cppSTLbool is_trivially_assignable_v + syntax keyword cppSTLbool is_nothrow_assignable_v + syntax keyword cppSTLbool is_copy_assignable_v + syntax keyword cppSTLbool is_trivially_copy_assignable_v + syntax keyword cppSTLbool is_nothrow_copy_assignable_v + syntax keyword cppSTLbool is_move_assignable_v + syntax keyword cppSTLbool is_trivially_move_assignable_v + syntax keyword cppSTLbool is_nothrow_move_assignable_v + syntax keyword cppSTLbool is_destructible_v + syntax keyword cppSTLbool is_trivially_destructible_v + syntax keyword cppSTLbool is_nothrow_destructible_v + syntax keyword cppSTLbool has_virtual_destructor_v + syntax keyword cppSTLbool is_same_v + syntax keyword cppSTLbool is_base_of_v + syntax keyword cppSTLbool is_convertible_v + syntax keyword cppSTLbool is_callable_v + syntax keyword cppSTLbool is_nowthrow_callable_v + syntax keyword cppSTLbool conjunction_v + syntax keyword cppSTLbool disjunction_v + syntax keyword cppSTLbool negation_v + syntax keyword cppSTLbool has_unique_object_representations_v + syntax keyword cppSTLbool is_swappable_v + syntax keyword cppSTLbool is_swappable_with_v + syntax keyword cppSTLbool is_nothrow_swappable_v + syntax keyword cppSTLbool is_nothrow_swappable_with_v + syntax keyword cppSTLbool is_invocable_v + syntax keyword cppSTLbool is_invocable_r_v + syntax keyword cppSTLbool is_nothrow_invocable_v + syntax keyword cppSTLbool is_nothrow_invocable_r_v + syntax keyword cppSTLbool is_aggregate_v + syntax keyword cppSTLconstant alignment_of_v + syntax keyword cppSTLconstant rank_v + syntax keyword cppSTLconstant extent_v + syntax keyword cppSTLtype bool_constant + syntax keyword cppSTLtype is_callable + syntax keyword cppSTLtype is_nowthrow_callable + syntax keyword cppSTLtype conjunction + syntax keyword cppSTLtype disjunction + syntax keyword cppSTLtype negation + syntax keyword cppSTLtype void_t + syntax keyword cppSTLtype has_unique_object_representations + syntax keyword cppSTLtype is_swappable + syntax keyword cppSTLtype is_swappable_with + syntax keyword cppSTLtype is_nothrow_swappable + syntax keyword cppSTLtype is_nothrow_swappable_with + syntax keyword cppSTLtype is_invocable + syntax keyword cppSTLtype is_invocable_r + syntax keyword cppSTLtype is_nothrow_invocable + syntax keyword cppSTLtype is_nothrow_invocable_r + syntax keyword cppSTLtype invoke_result + syntax keyword cppSTLtype invoke_result_t + syntax keyword cppSTLtype is_aggregate + + " unordered_map, unordered_set, unordered_multimap, unordered_multiset + syntax keyword cppSTLtype node_type + syntax keyword cppSTLtype insert_return_type + " syntax keyword cppSTLfunction try_emplace + " syntax keyword cppSTLfunction insert_or_assign + " syntax keyword cppSTLfunction extract + + " utility + syntax keyword cppSTLtype in_place_tag + syntax keyword cppSTLtype in_place_t + syntax keyword cppSTLtype in_place_type_t + syntax keyword cppSTLtype in_place_index_t + " syntax keyword cppSTLfunction in_place + " syntax keyword cppSTLfunction as_const + + " variant + syntax keyword cppSTLtype variant + syntax keyword cppSTLtype monostate + syntax keyword cppSTLtype variant_size + syntax keyword cppSTLtype variant_alternative + syntax keyword cppSTLtype variant_alternative_t + syntax keyword cppSTLconstant variant_size_v + syntax keyword cppSTLconstant variant_npos + syntax keyword cppSTLexception bad_variant_access + " syntax keyword cppSTLfunction valueless_by_exception + " syntax keyword cppSTLfunction holds_alternative + " syntax keyword cppSTLfunction get_if + " syntax keyword cppSTLfunction index + " syntax keyword cppSTLfunction visit +endif " C++17 + + +" ------------------------------------------------------------------------------ +" C++20 extensions +" ------------------------------------------------------------------------------ + +if !exists('cpp_no_cpp20') + " type_traits + syntax keyword cppSTLtype remove_cvref remove_cvref_t + " syntax keyword cppSTLtype endian + + " TODO: add types from http://en.cppreference.com/w/cpp/header/compare +endif + + +" ------------------------------------------------------------------------------ +" C++ library concepts +" For details see: +" - http://en.cppreference.com/w/cpp/language/constraints +" - http://en.cppreference.com/w/cpp/concept +" ------------------------------------------------------------------------------ + +if exists('g:cpp_concepts_highlight') && g:cpp_concepts_highlight + syntax keyword cppStatement concept + syntax keyword cppStorageClass requires + syntax keyword cppSTLtype DefaultConstructible + syntax keyword cppSTLtype MoveConstructible + syntax keyword cppSTLtype CopyConstructible + syntax keyword cppSTLtype MoveAssignable + syntax keyword cppSTLtype CopyAssignable + syntax keyword cppSTLtype Destructible + syntax keyword cppSTLtype TriviallyCopyable + syntax keyword cppSTLtype TrivialType + syntax keyword cppSTLtype StandardLayoutType + syntax keyword cppSTLtype PODType + syntax keyword cppSTLtype EqualityComparable + syntax keyword cppSTLtype LessThanComparable + syntax keyword cppSTLtype Swappable + syntax keyword cppSTLtype ValueSwappable + syntax keyword cppSTLtype NullablePointer + syntax keyword cppSTLtype Hash + syntax keyword cppSTLtype Allocator + syntax keyword cppSTLtype FunctionObject + syntax keyword cppSTLtype Callable + syntax keyword cppSTLtype Predicate + syntax keyword cppSTLtype BinaryPredicate + syntax keyword cppSTLtype Compare + syntax keyword cppSTLtype Container + syntax keyword cppSTLtype ReversibleContainer + syntax keyword cppSTLtype AllocatorAwareContainer + syntax keyword cppSTLtype SequenceContainer + syntax keyword cppSTLtype ContiguousContainer + syntax keyword cppSTLtype AssociativeContainer + syntax keyword cppSTLtype UnorderedAssociativeContainer + syntax keyword cppSTLtype DefaultInsertable + syntax keyword cppSTLtype CopyInsertable + syntax keyword cppSTLtype CopyInsertable + syntax keyword cppSTLtype MoveInsertable + syntax keyword cppSTLtype EmplaceConstructible + syntax keyword cppSTLtype Erasable + syntax keyword cppSTLtype Iterator + syntax keyword cppSTLtype InputIterator + syntax keyword cppSTLtype OutputIterator + syntax keyword cppSTLtype ForwardIterator + syntax keyword cppSTLtype BidirectionalIterator + syntax keyword cppSTLtype RandomAccessIterator + syntax keyword cppSTLtype ContiguousIterator + syntax keyword cppSTLtype UnformattedInputFunction + syntax keyword cppSTLtype FormattedInputFunction + syntax keyword cppSTLtype UnformattedOutputFunction + syntax keyword cppSTLtype FormattedOutputFunction + syntax keyword cppSTLtype SeedSequence + syntax keyword cppSTLtype UniformRandomBitGenerator + syntax keyword cppSTLtype RandomNumberEngine + syntax keyword cppSTLtype RandomNumberEngineAdaptor + syntax keyword cppSTLtype RandomNumberDistribution + syntax keyword cppSTLtype BasicLockable + syntax keyword cppSTLtype Lockable + syntax keyword cppSTLtype TimedLockable + syntax keyword cppSTLtype Mutex + syntax keyword cppSTLtype TimedMutex + syntax keyword cppSTLtype SharedMutex + syntax keyword cppSTLtype SharedTimedMutex + syntax keyword cppSTLtype UnaryTypeTrait + syntax keyword cppSTLtype BinaryTypeTrait + syntax keyword cppSTLtype TransformationTrait + syntax keyword cppSTLtype Clock + syntax keyword cppSTLtype TrivialClock + syntax keyword cppSTLtype CharTraits + syntax keyword cppSTLtype pos_type + syntax keyword cppSTLtype off_type + syntax keyword cppSTLtype BitmaskType + syntax keyword cppSTLtype NumericType + syntax keyword cppSTLtype RegexTraits + syntax keyword cppSTLtype LiteralType +endif " C++ concepts + + +" Boost extensions +if !exists('cpp_no_boost') + syntax keyword cppSTLnamespace boost + syntax keyword cppSTLcast lexical_cast +endif + + +" Default highlighting +hi def link cCustomFunc Function +hi def link cppSTLbool Boolean +hi def link cppStorageClass StorageClass +hi def link cppStatement Statement +hi def link cppSTLfunction Function +hi def link cppSTLfunctional Typedef +hi def link cppSTLconstant Constant +hi def link cppSTLnamespace Constant +hi def link cppSTLtype Typedef +hi def link cppSTLexception Exception +hi def link cppSTLiterator Typedef +hi def link cppSTLiterator_tag Typedef +hi def link cppSTLenum Typedef +hi def link cppSTLios Function +hi def link cppSTLcast Statement +hi def link cppRawString String +hi def link cppRawDelimiter Delimiter + + +" Highlight all standard C++ keywords as Statement +" This is very similar to what other IDEs and editors do +if exists('g:cpp_simple_highlight') && g:cpp_simple_highlight + hi! link cppModifier Statement + hi! link cppStructure Statement + hi! link cppExceptions Statement + hi! link cppStorageClass Statement + hi! link cppSTLexception Typedef +else + " I don't like the way the keywords {inline, virtual, explicit, export, + " override, final} are highlighted with the default syntax file (by default + " they are highlighted as Type). Let's link them to a different highlighting + " group + hi! link cppModifier StorageClass +endif diff --git a/docker/atomer-v1.0.0/.vimrc b/docker/atomer-v1.0.0/.vimrc new file mode 100644 index 0000000000..d25487a8d6 --- /dev/null +++ b/docker/atomer-v1.0.0/.vimrc @@ -0,0 +1,14 @@ +" line numbers +set number + +" syntax highlighting and with color scheme +filetype plugin indent on +syntax enable +colorscheme monokai + +" coding +set encoding=utf-8 +set fileencoding=utf-8 + +" highlighting search matches +set hlsearch diff --git a/docker/atomer-v1.0.0/Dockerfile b/docker/atomer-v1.0.0/Dockerfile new file mode 100644 index 0000000000..9c286a1b26 --- /dev/null +++ b/docker/atomer-v1.0.0/Dockerfile @@ -0,0 +1,84 @@ +FROM debian:stretch-slim + +COPY .bashrc /root/.bashrc +COPY .inputrc /root/.inputrc +COPY .vimrc /root/.vimrc +COPY .vim /root/.vim + +RUN apt-get update +# mkdir the man/man1 directory due to Debian bug #863199 +RUN mkdir -p /usr/share/man/man1 +RUN apt-get install --yes --no-install-recommends \ + autoconf \ + automake \ + bubblewrap \ + bzip2 \ + cmake \ + curl \ + g++ \ + gcc \ + git \ + libc6-dev \ + libgmp-dev \ + libmpfr-dev \ + libsqlite3-dev \ + make \ + openjdk-8-jdk-headless \ + patch \ + pkg-config \ + python2.7 \ + unzip \ + xz-utils \ + zlib1g-dev \ + vim \ + man \ + patchelf +RUN rm -rf /var/lib/apt/lists/* + +# Some scripts in facebook-clang-plugins assume "python" is available. +RUN cd /usr/local/bin && ln -s /usr/bin/python2.7 python + +# install opam 2 +RUN curl -sL https://github.com/ocaml/opam/releases/download/2.0.2/opam-2.0.2-x86_64-linux > /usr/bin/opam && chmod +x /usr/bin/opam +# disable sandboxing +# Without this opam fails to compile OCaml for some reason. We don't need sandboxing inside a Docker container anyway. +RUN opam init --reinit --bare --disable-sandboxing + +# download Infer +RUN cd / && \ + git clone https://github.com/harmim/infer.git --branch atomer-v1.0.0 --recurse-submodules && \ + cd /infer && \ + git config user.email "foo@bar.com" && \ + git config user.name "Foo Bar" && \ + git cherry-pick --strategy=recursive -X theirs 2a68099640ddcd252dbc3eb1323428b6a7792790 && \ + git cherry-pick --strategy=recursive -X theirs 7221c93980c76727f600090c2955a1ae85ae84f6 + +# build in non-optimized mode by default to speed up build times +ENV BUILD_MODE=default + +# Build opam deps first, then clang, then infer. This way if any step +# fails we don't lose the significant amount of work done in the +# previous steps. +RUN cd /infer && ./build-infer.sh --only-setup-opam +RUN cd /infer && \ + eval $(opam env) && \ + ./autogen.sh && \ + ./configure && \ + ./facebook-clang-plugins/clang/setup.sh +RUN cd /infer && make + +# install Infer +RUN cd /infer && make install +ENV INFER_HOME /infer/infer +ENV PATH ${INFER_HOME}/bin:${PATH} +ENV MANPATH ${INFER_HOME}/man:${MANPATH} + +# generate a release +RUN cd /infer && \ + make install-with-libs \ + BUILD_MODE=opt \ + PATCHELF=patchelf \ + DESTDIR="/infer-release" \ + libdir_relative_to_bindir="../lib" +RUN tar -cJf /infer-atomer-v1.0.0.tar.xz -C /infer-release/usr/local . && \ + rm -rf /infer-release diff --git a/docker/atomer-v1.0.0/run.bat b/docker/atomer-v1.0.0/run.bat new file mode 100755 index 0000000000..2a43616740 --- /dev/null +++ b/docker/atomer-v1.0.0/run.bat @@ -0,0 +1,2 @@ +docker build -t infer-atomer-v1.0.0 . +docker run -it --rm infer-atomer-v1.0.0 /bin/bash diff --git a/docker/atomer-v1.0.0/run.sh b/docker/atomer-v1.0.0/run.sh new file mode 100755 index 0000000000..2a43616740 --- /dev/null +++ b/docker/atomer-v1.0.0/run.sh @@ -0,0 +1,2 @@ +docker build -t infer-atomer-v1.0.0 . +docker run -it --rm infer-atomer-v1.0.0 /bin/bash