" Vim syntax file" Language: M$ Resource files (*.rc)" Maintainer: Heiko Erhardt <Heiko.Erhardt@munich.netsurf.de>" Last Change: 2001 May 09" This file is based on the c.vim" For version 5.x: Clear all syntax items" For version 6.x: Quit when a syntax file was already loadedif version < 600syntax clearelseif exists("b:current_syntax")finishendif" Common RC keywordssyn keyword rcLanguage LANGUAGEsyn keyword rcMainObject TEXTINCLUDE VERSIONINFO BITMAP ICON CURSOR CURSORsyn keyword rcMainObject MENU ACCELERATORS TOOLBAR DIALOGsyn keyword rcMainObject STRINGTABLE MESSAGETABLE RCDATA DLGINIT DESIGNINFOsyn keyword rcSubObject POPUP MENUITEM SEPARATORsyn keyword rcSubObject CONTROL LTEXT CTEXT EDITTEXTsyn keyword rcSubObject BUTTON PUSHBUTTON DEFPUSHBUTTON GROUPBOX LISTBOX COMBOBOXsyn keyword rcSubObject FILEVERSION PRODUCTVERSION FILEFLAGSMASK FILEFLAGS FILEOSsyn keyword rcSubObject FILETYPE FILESUBTYPEsyn keyword rcCaptionParam CAPTIONsyn keyword rcParam CHARACTERISTICS CLASS STYLE EXSTYLE VERSION FONTsyn keyword rcStatement BEGIN END BLOCK VALUEsyn keyword rcCommonAttribute PRELOAD LOADONCALL FIXED MOVEABLE DISCARDABLE PURE IMPUREsyn keyword rcAttribute WS_OVERLAPPED WS_POPUP WS_CHILD WS_MINIMIZE WS_VISIBLE WS_DISABLED WS_CLIPSIBLINGSsyn keyword rcAttribute WS_CLIPCHILDREN WS_MAXIMIZE WS_CAPTION WS_BORDER WS_DLGFRAME WS_VSCROLL WS_HSCROLLsyn keyword rcAttribute WS_SYSMENU WS_THICKFRAME WS_GROUP WS_TABSTOP WS_MINIMIZEBOX WS_MAXIMIZEBOX WS_TILEDsyn keyword rcAttribute WS_ICONIC WS_SIZEBOX WS_TILEDWINDOW WS_OVERLAPPEDWINDOW WS_POPUPWINDOW WS_CHILDWINDOWsyn keyword rcAttribute WS_EX_DLGMODALFRAME WS_EX_NOPARENTNOTIFY WS_EX_TOPMOST WS_EX_ACCEPTFILESsyn keyword rcAttribute WS_EX_TRANSPARENT WS_EX_MDICHILD WS_EX_TOOLWINDOW WS_EX_WINDOWEDGE WS_EX_CLIENTEDGEsyn keyword rcAttribute WS_EX_CONTEXTHELP WS_EX_RIGHT WS_EX_LEFT WS_EX_RTLREADING WS_EX_LTRREADINGsyn keyword rcAttribute WS_EX_LEFTSCROLLBAR WS_EX_RIGHTSCROLLBAR WS_EX_CONTROLPARENT WS_EX_STATICEDGEsyn keyword rcAttribute WS_EX_APPWINDOW WS_EX_OVERLAPPEDWINDOW WS_EX_PALETTEWINDOWsyn keyword rcAttribute ES_LEFT ES_CENTER ES_RIGHT ES_MULTILINE ES_UPPERCASE ES_LOWERCASE ES_PASSWORDsyn keyword rcAttribute ES_AUTOVSCROLL ES_AUTOHSCROLL ES_NOHIDESEL ES_OEMCONVERT ES_READONLY ES_WANTRETURNsyn keyword rcAttribute ES_NUMBERsyn keyword rcAttribute BS_PUSHBUTTON BS_DEFPUSHBUTTON BS_CHECKBOX BS_AUTOCHECKBOX BS_RADIOBUTTON BS_3STATEsyn keyword rcAttribute BS_AUTO3STATE BS_GROUPBOX BS_USERBUTTON BS_AUTORADIOBUTTON BS_OWNERDRAW BS_LEFTTEXTsyn keyword rcAttribute BS_TEXT BS_ICON BS_BITMAP BS_LEFT BS_RIGHT BS_CENTER BS_TOP BS_BOTTOM BS_VCENTERsyn keyword rcAttribute BS_PUSHLIKE BS_MULTILINE BS_NOTIFY BS_FLAT BS_RIGHTBUTTONsyn keyword rcAttribute SS_LEFT SS_CENTER SS_RIGHT SS_ICON SS_BLACKRECT SS_GRAYRECT SS_WHITERECTsyn keyword rcAttribute SS_BLACKFRAME SS_GRAYFRAME SS_WHITEFRAME SS_USERITEM SS_SIMPLE SS_LEFTNOWORDWRAPsyn keyword rcAttribute SS_OWNERDRAW SS_BITMAP SS_ENHMETAFILE SS_ETCHEDHORZ SS_ETCHEDVERT SS_ETCHEDFRAMEsyn keyword rcAttribute SS_TYPEMASK SS_NOPREFIX SS_NOTIFY SS_CENTERIMAGE SS_RIGHTJUST SS_REALSIZEIMAGEsyn keyword rcAttribute SS_SUNKEN SS_ENDELLIPSIS SS_PATHELLIPSIS SS_WORDELLIPSIS SS_ELLIPSISMASKsyn keyword rcAttribute DS_ABSALIGN DS_SYSMODAL DS_LOCALEDIT DS_SETFONT DS_MODALFRAME DS_NOIDLEMSGsyn keyword rcAttribute DS_SETFOREGROUND DS_3DLOOK DS_FIXEDSYS DS_NOFAILCREATE DS_CONTROL DS_CENTERsyn keyword rcAttribute DS_CENTERMOUSE DS_CONTEXTHELPsyn keyword rcAttribute LBS_NOTIFY LBS_SORT LBS_NOREDRAW LBS_MULTIPLESEL LBS_OWNERDRAWFIXEDsyn keyword rcAttribute LBS_OWNERDRAWVARIABLE LBS_HASSTRINGS LBS_USETABSTOPS LBS_NOINTEGRALHEIGHTsyn keyword rcAttribute LBS_MULTICOLUMN LBS_WANTKEYBOARDINPUT LBS_EXTENDEDSEL LBS_DISABLENOSCROLLsyn keyword rcAttribute LBS_NODATA LBS_NOSEL LBS_STANDARDsyn keyword rcAttribute CBS_SIMPLE CBS_DROPDOWN CBS_DROPDOWNLIST CBS_OWNERDRAWFIXED CBS_OWNERDRAWVARIABLEsyn keyword rcAttribute CBS_AUTOHSCROLL CBS_OEMCONVERT CBS_SORT CBS_HASSTRINGS CBS_NOINTEGRALHEIGHTsyn keyword rcAttribute CBS_DISABLENOSCROLL CBS_UPPERCASE CBS_LOWERCASEsyn keyword rcAttribute SBS_HORZ SBS_VERT SBS_TOPALIGN SBS_LEFTALIGN SBS_BOTTOMALIGN SBS_RIGHTALIGNsyn keyword rcAttribute SBS_SIZEBOXTOPLEFTALIGN SBS_SIZEBOXBOTTOMRIGHTALIGN SBS_SIZEBOX SBS_SIZEGRIPsyn keyword rcAttribute CCS_TOP CCS_NOMOVEY CCS_BOTTOM CCS_NORESIZE CCS_NOPARENTALIGN CCS_ADJUSTABLEsyn keyword rcAttribute CCS_NODIVIDERsyn keyword rcAttribute LVS_ICON LVS_REPORT LVS_SMALLICON LVS_LIST LVS_TYPEMASK LVS_SINGLESEL LVS_SHOWSELALWAYSsyn keyword rcAttribute LVS_SORTASCENDING LVS_SORTDESCENDING LVS_SHAREIMAGELISTS LVS_NOLABELWRAPsyn keyword rcAttribute LVS_EDITLABELS LVS_OWNERDATA LVS_NOSCROLL LVS_TYPESTYLEMASK LVS_ALIGNTOP LVS_ALIGNLEFTsyn keyword rcAttribute LVS_ALIGNMASK LVS_OWNERDRAWFIXED LVS_NOCOLUMNHEADER LVS_NOSORTHEADER LVS_AUTOARRANGEsyn keyword rcAttribute TVS_HASBUTTONS TVS_HASLINES TVS_LINESATROOT TVS_EDITLABELS TVS_DISABLEDRAGDROPsyn keyword rcAttribute TVS_SHOWSELALWAYSsyn keyword rcAttribute TCS_FORCEICONLEFT TCS_FORCELABELLEFT TCS_TABS TCS_BUTTONS TCS_SINGLELINE TCS_MULTILINEsyn keyword rcAttribute TCS_RIGHTJUSTIFY TCS_FIXEDWIDTH TCS_RAGGEDRIGHT TCS_FOCUSONBUTTONDOWNsyn keyword rcAttribute TCS_OWNERDRAWFIXED TCS_TOOLTIPS TCS_FOCUSNEVERsyn keyword rcAttribute ACS_CENTER ACS_TRANSPARENT ACS_AUTOPLAYsyn keyword rcStdId IDI_APPLICATION IDI_HAND IDI_QUESTION IDI_EXCLAMATION IDI_ASTERISK IDI_WINLOGO IDI_WINLOGOsyn keyword rcStdId IDI_WARNING IDI_ERROR IDI_INFORMATIONsyn keyword rcStdId IDCANCEL IDABORT IDRETRY IDIGNORE IDYES IDNO IDCLOSE IDHELP IDC_STATIC" Common RC keywords" Common RC keywordssyn keyword rcTodo contained TODO FIXME XXX" String and Character constants" Highlight special characters (those which have a backslash) differentlysyn match rcSpecial contained "\\[0-7][0-7][0-7]\=\|\\."syn region rcString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=rcSpecialsyn match rcCharacter "'[^\\]'"syn match rcSpecialCharacter "'\\.'"syn match rcSpecialCharacter "'\\[0-7][0-7]'"syn match rcSpecialCharacter "'\\[0-7][0-7][0-7]'""catch errors caused by wrong parenthesissyn region rcParen transparent start='(' end=')' contains=ALLBUT,rcParenError,rcIncluded,rcSpecial,rcTodosyn match rcParenError ")"syn match rcInParen contained "[{}]""integer number, or floating point number without a dot and with "f".syn case ignoresyn match rcNumber "\<\d\+\(u\=l\=\|lu\|f\)\>""floating point number, with dot, optional exponentsyn match rcFloat "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>""floating point number, starting with a dot, optional exponentsyn match rcFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>""floating point number, without dot, with exponentsyn match rcFloat "\<\d\+e[-+]\=\d\+[fl]\=\>""hex numbersyn match rcNumber "\<0x[0-9a-f]\+\(u\=l\=\|lu\)\>""syn match rcIdentifier "\<[a-z_][a-z0-9_]*\>"syn case match" flag an octal number with wrong digitssyn match rcOctalError "\<0[0-7]*[89]"if exists("rc_comment_strings")" A comment can contain rcString, rcCharacter and rcNumber." But a "*/" inside a rcString in a rcComment DOES end the comment! So we" need to use a special type of rcString: rcCommentString, which also ends on" "*/", and sees a "*" at the start of the line as comment again." Unfortunately this doesn't very well work for // type of comments :-(syntax match rcCommentSkip contained "^\s*\*\($\|\s\+\)"syntax region rcCommentString contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=rcSpecial,rcCommentSkipsyntax region rcComment2String contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=rcSpecialsyntax region rcComment start="/\*" end="\*/" contains=rcTodo,rcCommentString,rcCharacter,rcNumber,rcFloatsyntax match rcComment "//.*" contains=rcTodo,rcComment2String,rcCharacter,rcNumberelsesyn region rcComment start="/\*" end="\*/" contains=rcTodosyn match rcComment "//.*" contains=rcTodoendifsyntax match rcCommentError "\*/"syn region rcPreCondit start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=rcComment,rcString,rcCharacter,rcNumber,rcCommentErrorsyn region rcIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+syn match rcIncluded contained "<[^>]*>"syn match rcInclude "^\s*#\s*include\>\s*["<]" contains=rcIncluded"syn match rcLineSkip "\\$"syn region rcDefine start="^\s*#\s*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,rcPreCondit,rcIncluded,rcInclude,rcDefine,rcInParensyn region rcPreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,rcPreCondit,rcIncluded,rcInclude,rcDefine,rcInParensyn sync ccomment rcComment minlines=10" Define the default highlighting." For version 5.7 and earlier: only when not done already" For version 5.8 and later: only when an item doesn't have highlighting yetif version >= 508 || !exists("did_rc_syntax_inits")if version < 508let did_rc_syntax_inits = 1command -nargs=+ HiLink hi link <args>elsecommand -nargs=+ HiLink hi def link <args>endifHiLink rcCharacter CharacterHiLink rcSpecialCharacter rcSpecialHiLink rcNumber NumberHiLink rcFloat FloatHiLink rcOctalError rcErrorHiLink rcParenError rcErrorHiLink rcInParen rcErrorHiLink rcCommentError rcErrorHiLink rcInclude IncludeHiLink rcPreProc PreProcHiLink rcDefine MacroHiLink rcIncluded rcStringHiLink rcError ErrorHiLink rcPreCondit PreConditHiLink rcCommentString rcStringHiLink rcComment2String rcStringHiLink rcCommentSkip rcCommentHiLink rcString StringHiLink rcComment CommentHiLink rcSpecial SpecialCharHiLink rcTodo TodoHiLink rcAttribute rcCommonAttributeHiLink rcStdId rcStatementHiLink rcStatement Statement" Default color overrideshi def rcLanguage term=reverse ctermbg=Red ctermfg=Yellow guibg=Red guifg=Yellowhi def rcMainObject term=underline ctermfg=Blue guifg=Bluehi def rcSubObject ctermfg=Green guifg=Greenhi def rcCaptionParam term=underline ctermfg=DarkGreen guifg=Greenhi def rcParam ctermfg=DarkGreen guifg=DarkGreenhi def rcStatement ctermfg=DarkGreen guifg=DarkGreenhi def rcCommonAttribute ctermfg=Brown guifg=Brown"HiLink rcIdentifier Identifierdelcommand HiLinkendiflet b:current_syntax = "rc"" vim: ts=8