codekingpro/portable-devtools
114k
1" Vim syntax file2" Language: M$ Resource files (*.rc)3" Maintainer: Christian Brabandt4" Last Change: 202201165" Repository: https://github.com/chrisbra/vim-rc-syntax6" License: Vim (see :h license)7" Previous Maintainer: Heiko Erhardt <Heiko.Erhardt@munich.netsurf.de>8 9" This file is based on the c.vim10 11" quit when a syntax file was already loaded12if exists("b:current_syntax")13 finish14endif15 16" Common RC keywords17syn keyword rcLanguage LANGUAGE18 19syn keyword rcMainObject TEXTINCLUDE VERSIONINFO BITMAP ICON CURSOR CURSOR20syn keyword rcMainObject MENU ACCELERATORS TOOLBAR DIALOG21syn keyword rcMainObject STRINGTABLE MESSAGETABLE RCDATA DLGINIT DESIGNINFO22 23syn keyword rcSubObject POPUP MENUITEM SEPARATOR24syn keyword rcSubObject CONTROL LTEXT CTEXT RTEXT EDITTEXT25syn keyword rcSubObject BUTTON PUSHBUTTON DEFPUSHBUTTON GROUPBOX LISTBOX COMBOBOX26syn keyword rcSubObject FILEVERSION PRODUCTVERSION FILEFLAGSMASK FILEFLAGS FILEOS27syn keyword rcSubObject FILETYPE FILESUBTYPE28 29syn keyword rcCaptionParam CAPTION30syn keyword rcParam CHARACTERISTICS CLASS STYLE EXSTYLE VERSION FONT31 32syn keyword rcStatement BEGIN END BLOCK VALUE33 34syn keyword rcCommonAttribute PRELOAD LOADONCALL FIXED MOVEABLE DISCARDABLE PURE IMPURE35 36syn keyword rcAttribute WS_OVERLAPPED WS_POPUP WS_CHILD WS_MINIMIZE WS_VISIBLE WS_DISABLED WS_CLIPSIBLINGS37syn keyword rcAttribute WS_CLIPCHILDREN WS_MAXIMIZE WS_CAPTION WS_BORDER WS_DLGFRAME WS_VSCROLL WS_HSCROLL38syn keyword rcAttribute WS_SYSMENU WS_THICKFRAME WS_GROUP WS_TABSTOP WS_MINIMIZEBOX WS_MAXIMIZEBOX WS_TILED39syn keyword rcAttribute WS_ICONIC WS_SIZEBOX WS_TILEDWINDOW WS_OVERLAPPEDWINDOW WS_POPUPWINDOW WS_CHILDWINDOW40syn keyword rcAttribute WS_EX_DLGMODALFRAME WS_EX_NOPARENTNOTIFY WS_EX_TOPMOST WS_EX_ACCEPTFILES41syn keyword rcAttribute WS_EX_TRANSPARENT WS_EX_MDICHILD WS_EX_TOOLWINDOW WS_EX_WINDOWEDGE WS_EX_CLIENTEDGE42syn keyword rcAttribute WS_EX_CONTEXTHELP WS_EX_RIGHT WS_EX_LEFT WS_EX_RTLREADING WS_EX_LTRREADING43syn keyword rcAttribute WS_EX_LEFTSCROLLBAR WS_EX_RIGHTSCROLLBAR WS_EX_CONTROLPARENT WS_EX_STATICEDGE44syn keyword rcAttribute WS_EX_APPWINDOW WS_EX_OVERLAPPEDWINDOW WS_EX_PALETTEWINDOW45syn keyword rcAttribute ES_LEFT ES_CENTER ES_RIGHT ES_MULTILINE ES_UPPERCASE ES_LOWERCASE ES_PASSWORD46syn keyword rcAttribute ES_AUTOVSCROLL ES_AUTOHSCROLL ES_NOHIDESEL ES_OEMCONVERT ES_READONLY ES_WANTRETURN47syn keyword rcAttribute ES_NUMBER48syn keyword rcAttribute BS_PUSHBUTTON BS_DEFPUSHBUTTON BS_CHECKBOX BS_AUTOCHECKBOX BS_RADIOBUTTON BS_3STATE49syn keyword rcAttribute BS_AUTO3STATE BS_GROUPBOX BS_USERBUTTON BS_AUTORADIOBUTTON BS_OWNERDRAW BS_LEFTTEXT50syn keyword rcAttribute BS_TEXT BS_ICON BS_BITMAP BS_LEFT BS_RIGHT BS_CENTER BS_TOP BS_BOTTOM BS_VCENTER51syn keyword rcAttribute BS_PUSHLIKE BS_MULTILINE BS_NOTIFY BS_FLAT BS_RIGHTBUTTON52syn keyword rcAttribute SS_LEFT SS_CENTER SS_RIGHT SS_ICON SS_BLACKRECT SS_GRAYRECT SS_WHITERECT53syn keyword rcAttribute SS_BLACKFRAME SS_GRAYFRAME SS_WHITEFRAME SS_USERITEM SS_SIMPLE SS_LEFTNOWORDWRAP54syn keyword rcAttribute SS_OWNERDRAW SS_BITMAP SS_ENHMETAFILE SS_ETCHEDHORZ SS_ETCHEDVERT SS_ETCHEDFRAME55syn keyword rcAttribute SS_TYPEMASK SS_NOPREFIX SS_NOTIFY SS_CENTERIMAGE SS_RIGHTJUST SS_REALSIZEIMAGE56syn keyword rcAttribute SS_SUNKEN SS_ENDELLIPSIS SS_PATHELLIPSIS SS_WORDELLIPSIS SS_ELLIPSISMASK57syn keyword rcAttribute DS_ABSALIGN DS_SYSMODAL DS_LOCALEDIT DS_SETFONT DS_MODALFRAME DS_NOIDLEMSG58syn keyword rcAttribute DS_SETFOREGROUND DS_3DLOOK DS_FIXEDSYS DS_NOFAILCREATE DS_CONTROL DS_CENTER59syn keyword rcAttribute DS_CENTERMOUSE DS_CONTEXTHELP60syn keyword rcAttribute LBS_NOTIFY LBS_SORT LBS_NOREDRAW LBS_MULTIPLESEL LBS_OWNERDRAWFIXED61syn keyword rcAttribute LBS_OWNERDRAWVARIABLE LBS_HASSTRINGS LBS_USETABSTOPS LBS_NOINTEGRALHEIGHT62syn keyword rcAttribute LBS_MULTICOLUMN LBS_WANTKEYBOARDINPUT LBS_EXTENDEDSEL LBS_DISABLENOSCROLL63syn keyword rcAttribute LBS_NODATA LBS_NOSEL LBS_STANDARD64syn keyword rcAttribute CBS_SIMPLE CBS_DROPDOWN CBS_DROPDOWNLIST CBS_OWNERDRAWFIXED CBS_OWNERDRAWVARIABLE65syn keyword rcAttribute CBS_AUTOHSCROLL CBS_OEMCONVERT CBS_SORT CBS_HASSTRINGS CBS_NOINTEGRALHEIGHT66syn keyword rcAttribute CBS_DISABLENOSCROLL CBS_UPPERCASE CBS_LOWERCASE67syn keyword rcAttribute SBS_HORZ SBS_VERT SBS_TOPALIGN SBS_LEFTALIGN SBS_BOTTOMALIGN SBS_RIGHTALIGN68syn keyword rcAttribute SBS_SIZEBOXTOPLEFTALIGN SBS_SIZEBOXBOTTOMRIGHTALIGN SBS_SIZEBOX SBS_SIZEGRIP69syn keyword rcAttribute CCS_TOP CCS_NOMOVEY CCS_BOTTOM CCS_NORESIZE CCS_NOPARENTALIGN CCS_ADJUSTABLE70syn keyword rcAttribute CCS_NODIVIDER71syn keyword rcAttribute LVS_ICON LVS_REPORT LVS_SMALLICON LVS_LIST LVS_TYPEMASK LVS_SINGLESEL LVS_SHOWSELALWAYS72syn keyword rcAttribute LVS_SORTASCENDING LVS_SORTDESCENDING LVS_SHAREIMAGELISTS LVS_NOLABELWRAP73syn keyword rcAttribute LVS_EDITLABELS LVS_OWNERDATA LVS_NOSCROLL LVS_TYPESTYLEMASK LVS_ALIGNTOP LVS_ALIGNLEFT74syn keyword rcAttribute LVS_ALIGNMASK LVS_OWNERDRAWFIXED LVS_NOCOLUMNHEADER LVS_NOSORTHEADER LVS_AUTOARRANGE75syn keyword rcAttribute TVS_HASBUTTONS TVS_HASLINES TVS_LINESATROOT TVS_EDITLABELS TVS_DISABLEDRAGDROP76syn keyword rcAttribute TVS_SHOWSELALWAYS77syn keyword rcAttribute TCS_FORCEICONLEFT TCS_FORCELABELLEFT TCS_TABS TCS_BUTTONS TCS_SINGLELINE TCS_MULTILINE78syn keyword rcAttribute TCS_RIGHTJUSTIFY TCS_FIXEDWIDTH TCS_RAGGEDRIGHT TCS_FOCUSONBUTTONDOWN79syn keyword rcAttribute TCS_OWNERDRAWFIXED TCS_TOOLTIPS TCS_FOCUSNEVER80syn keyword rcAttribute ACS_CENTER ACS_TRANSPARENT ACS_AUTOPLAY81syn keyword rcStdId IDI_APPLICATION IDI_HAND IDI_QUESTION IDI_EXCLAMATION IDI_ASTERISK IDI_WINLOGO IDI_WINLOGO82syn keyword rcStdId IDI_WARNING IDI_ERROR IDI_INFORMATION83syn keyword rcStdId IDCANCEL IDABORT IDRETRY IDIGNORE IDYES IDNO IDCLOSE IDHELP IDC_STATIC84 85" Common RC keywords86 87" Common RC keywords88syn keyword rcTodo contained TODO FIXME XXX89 90" String and Character constants91" Highlight special characters (those which have a backslash) differently92syn match rcSpecial contained "\\[0-7][0-7][0-7]\=\|\\."93syn region rcString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=rcSpecial94syn match rcCharacter "'[^\\]'"95syn match rcSpecialCharacter "'\\.'"96syn match rcSpecialCharacter "'\\[0-7][0-7]'"97syn match rcSpecialCharacter "'\\[0-7][0-7][0-7]'"98 99"catch errors caused by wrong parenthesis100syn region rcParen transparent start='(' end=')' contains=ALLBUT,rcParenError,rcIncluded,rcSpecial,rcTodo101syn match rcParenError ")"102syn match rcInParen contained "[{}]"103 104"integer number, or floating point number without a dot and with "f".105syn case ignore106syn match rcNumber "\<\d\+\(u\=l\=\|lu\|f\)\>"107"floating point number, with dot, optional exponent108syn match rcFloat "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"109"floating point number, starting with a dot, optional exponent110syn match rcFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"111"floating point number, without dot, with exponent112syn match rcFloat "\<\d\+e[-+]\=\d\+[fl]\=\>"113"hex number114syn match rcNumber "\<0x[0-9a-f]\+\(u\=l\=\|lu\)\>"115"syn match rcIdentifier "\<[a-z_][a-z0-9_]*\>"116syn case match117" flag an octal number with wrong digits118syn match rcOctalError "\<0[0-7]*[89]"119 120if exists("rc_comment_strings")121 " A comment can contain rcString, rcCharacter and rcNumber.122 " But a "*/" inside a rcString in a rcComment DOES end the comment! So we123 " need to use a special type of rcString: rcCommentString, which also ends on124 " "*/", and sees a "*" at the start of the line as comment again.125 " Unfortunately this doesn't very well work for // type of comments :-(126 syntax match rcCommentSkip contained "^\s*\*\($\|\s\+\)"127 syntax region rcCommentString contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=rcSpecial,rcCommentSkip128 syntax region rcComment2String contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=rcSpecial129 syntax region rcComment start="/\*" end="\*/" contains=rcTodo,rcCommentString,rcCharacter,rcNumber,rcFloat130 syntax match rcComment "//.*" contains=rcTodo,rcComment2String,rcCharacter,rcNumber131else132 syn region rcComment start="/\*" end="\*/" contains=rcTodo133 syn match rcComment "//.*" contains=rcTodo134endif135syntax match rcCommentError "\*/"136 137syn region rcPreCondit start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=rcComment,rcString,rcCharacter,rcNumber,rcCommentError138syn region rcIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+139syn match rcIncluded contained "<[^>]*>"140syn match rcInclude "^\s*#\s*include\>\s*["<]" contains=rcIncluded141"syn match rcLineSkip "\\$"142syn region rcDefine start="^\s*#\s*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,rcPreCondit,rcIncluded,rcInclude,rcDefine,rcInParen143syn region rcPreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,rcPreCondit,rcIncluded,rcInclude,rcDefine,rcInParen144 145syn sync ccomment rcComment minlines=10146 147" Define the default highlighting.148" Only when an item doesn't have highlighting yet149 150hi def link rcCharacter Character151hi def link rcSpecialCharacter rcSpecial152hi def link rcNumber Number153hi def link rcFloat Float154hi def link rcOctalError rcError155hi def link rcParenError rcError156hi def link rcInParen rcError157hi def link rcCommentError rcError158hi def link rcInclude Include159hi def link rcPreProc PreProc160hi def link rcDefine Macro161hi def link rcIncluded rcString162hi def link rcError Error163hi def link rcPreCondit PreCondit164hi def link rcCommentString rcString165hi def link rcComment2String rcString166hi def link rcCommentSkip rcComment167hi def link rcString String168hi def link rcComment Comment169hi def link rcSpecial SpecialChar170hi def link rcTodo Todo171 172hi def link rcAttribute rcCommonAttribute173hi def link rcStdId rcStatement174hi def link rcStatement Statement175 176hi def link rcLanguage Constant177hi def link rcCaptionParam Constant178hi def link rcCommonAttribute Constant179 180hi def link rcMainObject Identifier181hi def link rcSubObject Define182hi def link rcParam Constant183hi def link rcStatement Statement184"185"hi def link rcIdentifier Identifier186 187 188 189let b:current_syntax = "rc"190 191" vim: ts=8192 