" Vim syntax file " Language: Celestia Star Catalogs " Maintainer: Kevin Lauder " Latest Revision: 26 April 2008 if !exists("main_syntax") if exists("b:current_syntax") finish endif let main_syntax = 'c' elseif exists("b:current_syntax") && b:current_syntax == "c" finish endif let s:cpo_save = &cpo set cpo&vim syn match cBrightRed "[A-Z_][0-9A-Z_]\+" highlight cBrightRed ctermfg=1 cterm=bold syn match cBrightMagenta /^\s*[A-Z_a-z]\+:\s*$/ syn match cType /\<\(float\|double\|bool\|char\|int\|short\|long\|sizeof\|enum\|void\|auto\|static\|const\|struct\|union\|typedef\|extern\|unsigned\|signed\|inline\)\>/ syn match cType /\(\(s\?size\)\|\(\(u_\?\)\?int\(8\|16\|32\|64\|ptr\)\)\)_t/ syn match cType /\<\(class\|namespace\|template\|public\|protected\|private\|typename\|this\|friend\|virtual\|override\|using\|mutable\|volatile\|register\|explicit\)\>/ highlight cType ctermfg=2 syn match cStatement /\<\(for\|if\|while\|do\|else\|case\|default\|switch\)\>/ syn match cStatement /\<\(try\|throw\|catch\|operator\|new\|delete\)\>/ highlight cStatement ctermfg=3 cterm=bold syn match cMagenta /\<\(goto\|continue\|break\|return\)\>/ highlight cMagenta ctermfg=5 syn match cPreProc /^[[:space:]]*#[[:space:]]*\(define\|include\(_next\)\?\|\(un\|ifn\?\)def\|endif\|el\(if\|se\)\|if\|warning\|error\|pragma\)/ highlight cPreProc ctermfg=6 cterm=bold syn match cBrightMagenta /'\([^'\\]\|\(\\\\["'abfnrtv\\\\]\)\)'/ syn match cBrightMagenta /\'\\\(\([0-3]\?[0-7]{1,2}\)\)\'/ syn match cBrightMagenta /\\x[0-9A-Fa-f]{1,2}\'/ highlight cBrightMagenta ctermfg=5 cterm=bold syn match cAttr /__attribute__[[:space:]]*\\(\\([^\)]*\\)\\)/ syn match cAttr /__\(aligned\|asm\|builtin\|hidden\|inline\|packed\|restrict\|section\|typeof\|weak\)__/ highlight cAttr ctermfg=6 syn match cTodo /\<\(FIXME\|TODO\|XXX\)\>/ highlight cTodo ctermbg=3* cterm=bold syn match cString /"\([^"]\|\\"\)*"/ syn match cString /<[^[:blank:]=]*>/ highlight cString ctermfg=3 cterm=bold syn match cComment "/\/.*" contains=@Spell,cTodo syn region cBlockComment start='/\*' end='\*/' contains=@Spell,cComment,cTodo " syn sync linecont cBlockComment highlight cComment ctermfg=4* cterm=bold highlight cBlockComment ctermfg=4* cterm=bold syn match cGreenBg /\s\+$/ highlight cGreenBg ctermbg=2 if main_syntax == "c" syn sync minlines=10 endif hi def link cAttr Attribute hi def link cGreenBg Error hi def link cString String hi def link cType Type hi def link cStatement Statement hi def link cComment Comment hi def link cBlockComment Comment hi def link cBrightMagenta Number let b:current_syntax = "c" if main_syntax == 'c' unlet main_syntax endif let &cpo = s:cpo_save unlet s:cpo_save