rc.vim (10024B)
1 " Vim syntax file 2 " Language: M$ Resource files (*.rc) 3 " Maintainer: Christian Brabandt 4 " Last Change: 20220116 5 " Repository: https://github.com/chrisbra/vim-rc-syntax 6 " License: Vim (see :h license) 7 " Previous Maintainer: Heiko Erhardt <Heiko.Erhardt@munich.netsurf.de> 8 9 " This file is based on the c.vim 10 11 " quit when a syntax file was already loaded 12 if exists("b:current_syntax") 13 finish 14 endif 15 16 " Common RC keywords 17 syn keyword rcLanguage LANGUAGE 18 19 syn keyword rcMainObject TEXTINCLUDE VERSIONINFO BITMAP ICON CURSOR CURSOR 20 syn keyword rcMainObject MENU ACCELERATORS TOOLBAR DIALOG 21 syn keyword rcMainObject STRINGTABLE MESSAGETABLE RCDATA DLGINIT DESIGNINFO 22 23 syn keyword rcSubObject POPUP MENUITEM SEPARATOR 24 syn keyword rcSubObject CONTROL LTEXT CTEXT RTEXT EDITTEXT 25 syn keyword rcSubObject BUTTON PUSHBUTTON DEFPUSHBUTTON GROUPBOX LISTBOX COMBOBOX 26 syn keyword rcSubObject FILEVERSION PRODUCTVERSION FILEFLAGSMASK FILEFLAGS FILEOS 27 syn keyword rcSubObject FILETYPE FILESUBTYPE 28 29 syn keyword rcCaptionParam CAPTION 30 syn keyword rcParam CHARACTERISTICS CLASS STYLE EXSTYLE VERSION FONT 31 32 syn keyword rcStatement BEGIN END BLOCK VALUE 33 34 syn keyword rcCommonAttribute PRELOAD LOADONCALL FIXED MOVEABLE DISCARDABLE PURE IMPURE 35 36 syn keyword rcAttribute WS_OVERLAPPED WS_POPUP WS_CHILD WS_MINIMIZE WS_VISIBLE WS_DISABLED WS_CLIPSIBLINGS 37 syn keyword rcAttribute WS_CLIPCHILDREN WS_MAXIMIZE WS_CAPTION WS_BORDER WS_DLGFRAME WS_VSCROLL WS_HSCROLL 38 syn keyword rcAttribute WS_SYSMENU WS_THICKFRAME WS_GROUP WS_TABSTOP WS_MINIMIZEBOX WS_MAXIMIZEBOX WS_TILED 39 syn keyword rcAttribute WS_ICONIC WS_SIZEBOX WS_TILEDWINDOW WS_OVERLAPPEDWINDOW WS_POPUPWINDOW WS_CHILDWINDOW 40 syn keyword rcAttribute WS_EX_DLGMODALFRAME WS_EX_NOPARENTNOTIFY WS_EX_TOPMOST WS_EX_ACCEPTFILES 41 syn keyword rcAttribute WS_EX_TRANSPARENT WS_EX_MDICHILD WS_EX_TOOLWINDOW WS_EX_WINDOWEDGE WS_EX_CLIENTEDGE 42 syn keyword rcAttribute WS_EX_CONTEXTHELP WS_EX_RIGHT WS_EX_LEFT WS_EX_RTLREADING WS_EX_LTRREADING 43 syn keyword rcAttribute WS_EX_LEFTSCROLLBAR WS_EX_RIGHTSCROLLBAR WS_EX_CONTROLPARENT WS_EX_STATICEDGE 44 syn keyword rcAttribute WS_EX_APPWINDOW WS_EX_OVERLAPPEDWINDOW WS_EX_PALETTEWINDOW 45 syn keyword rcAttribute ES_LEFT ES_CENTER ES_RIGHT ES_MULTILINE ES_UPPERCASE ES_LOWERCASE ES_PASSWORD 46 syn keyword rcAttribute ES_AUTOVSCROLL ES_AUTOHSCROLL ES_NOHIDESEL ES_OEMCONVERT ES_READONLY ES_WANTRETURN 47 syn keyword rcAttribute ES_NUMBER 48 syn keyword rcAttribute BS_PUSHBUTTON BS_DEFPUSHBUTTON BS_CHECKBOX BS_AUTOCHECKBOX BS_RADIOBUTTON BS_3STATE 49 syn keyword rcAttribute BS_AUTO3STATE BS_GROUPBOX BS_USERBUTTON BS_AUTORADIOBUTTON BS_OWNERDRAW BS_LEFTTEXT 50 syn keyword rcAttribute BS_TEXT BS_ICON BS_BITMAP BS_LEFT BS_RIGHT BS_CENTER BS_TOP BS_BOTTOM BS_VCENTER 51 syn keyword rcAttribute BS_PUSHLIKE BS_MULTILINE BS_NOTIFY BS_FLAT BS_RIGHTBUTTON 52 syn keyword rcAttribute SS_LEFT SS_CENTER SS_RIGHT SS_ICON SS_BLACKRECT SS_GRAYRECT SS_WHITERECT 53 syn keyword rcAttribute SS_BLACKFRAME SS_GRAYFRAME SS_WHITEFRAME SS_USERITEM SS_SIMPLE SS_LEFTNOWORDWRAP 54 syn keyword rcAttribute SS_OWNERDRAW SS_BITMAP SS_ENHMETAFILE SS_ETCHEDHORZ SS_ETCHEDVERT SS_ETCHEDFRAME 55 syn keyword rcAttribute SS_TYPEMASK SS_NOPREFIX SS_NOTIFY SS_CENTERIMAGE SS_RIGHTJUST SS_REALSIZEIMAGE 56 syn keyword rcAttribute SS_SUNKEN SS_ENDELLIPSIS SS_PATHELLIPSIS SS_WORDELLIPSIS SS_ELLIPSISMASK 57 syn keyword rcAttribute DS_ABSALIGN DS_SYSMODAL DS_LOCALEDIT DS_SETFONT DS_MODALFRAME DS_NOIDLEMSG 58 syn keyword rcAttribute DS_SETFOREGROUND DS_3DLOOK DS_FIXEDSYS DS_NOFAILCREATE DS_CONTROL DS_CENTER 59 syn keyword rcAttribute DS_CENTERMOUSE DS_CONTEXTHELP 60 syn keyword rcAttribute LBS_NOTIFY LBS_SORT LBS_NOREDRAW LBS_MULTIPLESEL LBS_OWNERDRAWFIXED 61 syn keyword rcAttribute LBS_OWNERDRAWVARIABLE LBS_HASSTRINGS LBS_USETABSTOPS LBS_NOINTEGRALHEIGHT 62 syn keyword rcAttribute LBS_MULTICOLUMN LBS_WANTKEYBOARDINPUT LBS_EXTENDEDSEL LBS_DISABLENOSCROLL 63 syn keyword rcAttribute LBS_NODATA LBS_NOSEL LBS_STANDARD 64 syn keyword rcAttribute CBS_SIMPLE CBS_DROPDOWN CBS_DROPDOWNLIST CBS_OWNERDRAWFIXED CBS_OWNERDRAWVARIABLE 65 syn keyword rcAttribute CBS_AUTOHSCROLL CBS_OEMCONVERT CBS_SORT CBS_HASSTRINGS CBS_NOINTEGRALHEIGHT 66 syn keyword rcAttribute CBS_DISABLENOSCROLL CBS_UPPERCASE CBS_LOWERCASE 67 syn keyword rcAttribute SBS_HORZ SBS_VERT SBS_TOPALIGN SBS_LEFTALIGN SBS_BOTTOMALIGN SBS_RIGHTALIGN 68 syn keyword rcAttribute SBS_SIZEBOXTOPLEFTALIGN SBS_SIZEBOXBOTTOMRIGHTALIGN SBS_SIZEBOX SBS_SIZEGRIP 69 syn keyword rcAttribute CCS_TOP CCS_NOMOVEY CCS_BOTTOM CCS_NORESIZE CCS_NOPARENTALIGN CCS_ADJUSTABLE 70 syn keyword rcAttribute CCS_NODIVIDER 71 syn keyword rcAttribute LVS_ICON LVS_REPORT LVS_SMALLICON LVS_LIST LVS_TYPEMASK LVS_SINGLESEL LVS_SHOWSELALWAYS 72 syn keyword rcAttribute LVS_SORTASCENDING LVS_SORTDESCENDING LVS_SHAREIMAGELISTS LVS_NOLABELWRAP 73 syn keyword rcAttribute LVS_EDITLABELS LVS_OWNERDATA LVS_NOSCROLL LVS_TYPESTYLEMASK LVS_ALIGNTOP LVS_ALIGNLEFT 74 syn keyword rcAttribute LVS_ALIGNMASK LVS_OWNERDRAWFIXED LVS_NOCOLUMNHEADER LVS_NOSORTHEADER LVS_AUTOARRANGE 75 syn keyword rcAttribute TVS_HASBUTTONS TVS_HASLINES TVS_LINESATROOT TVS_EDITLABELS TVS_DISABLEDRAGDROP 76 syn keyword rcAttribute TVS_SHOWSELALWAYS 77 syn keyword rcAttribute TCS_FORCEICONLEFT TCS_FORCELABELLEFT TCS_TABS TCS_BUTTONS TCS_SINGLELINE TCS_MULTILINE 78 syn keyword rcAttribute TCS_RIGHTJUSTIFY TCS_FIXEDWIDTH TCS_RAGGEDRIGHT TCS_FOCUSONBUTTONDOWN 79 syn keyword rcAttribute TCS_OWNERDRAWFIXED TCS_TOOLTIPS TCS_FOCUSNEVER 80 syn keyword rcAttribute ACS_CENTER ACS_TRANSPARENT ACS_AUTOPLAY 81 syn keyword rcStdId IDI_APPLICATION IDI_HAND IDI_QUESTION IDI_EXCLAMATION IDI_ASTERISK IDI_WINLOGO IDI_WINLOGO 82 syn keyword rcStdId IDI_WARNING IDI_ERROR IDI_INFORMATION 83 syn keyword rcStdId IDCANCEL IDABORT IDRETRY IDIGNORE IDYES IDNO IDCLOSE IDHELP IDC_STATIC 84 85 " Common RC keywords 86 87 " Common RC keywords 88 syn keyword rcTodo contained TODO FIXME XXX 89 90 " String and Character constants 91 " Highlight special characters (those which have a backslash) differently 92 syn match rcSpecial contained "\\[0-7][0-7][0-7]\=\|\\." 93 syn region rcString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=rcSpecial 94 syn match rcCharacter "'[^\\]'" 95 syn match rcSpecialCharacter "'\\.'" 96 syn match rcSpecialCharacter "'\\[0-7][0-7]'" 97 syn match rcSpecialCharacter "'\\[0-7][0-7][0-7]'" 98 99 "catch errors caused by wrong parenthesis 100 syn region rcParen transparent start='(' end=')' contains=ALLBUT,rcParenError,rcIncluded,rcSpecial,rcTodo 101 syn match rcParenError ")" 102 syn match rcInParen contained "[{}]" 103 104 "integer number, or floating point number without a dot and with "f". 105 syn case ignore 106 syn match rcNumber "\<\d\+\(u\=l\=\|lu\|f\)\>" 107 "floating point number, with dot, optional exponent 108 syn match rcFloat "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>" 109 "floating point number, starting with a dot, optional exponent 110 syn match rcFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" 111 "floating point number, without dot, with exponent 112 syn match rcFloat "\<\d\+e[-+]\=\d\+[fl]\=\>" 113 "hex number 114 syn match rcNumber "\<0x[0-9a-f]\+\(u\=l\=\|lu\)\>" 115 "syn match rcIdentifier "\<[a-z_][a-z0-9_]*\>" 116 syn case match 117 " flag an octal number with wrong digits 118 syn match rcOctalError "\<0[0-7]*[89]" 119 120 if 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 we 123 " need to use a special type of rcString: rcCommentString, which also ends on 124 " "*/", 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,rcCommentSkip 128 syntax region rcComment2String contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=rcSpecial 129 syntax region rcComment start="/\*" end="\*/" contains=rcTodo,rcCommentString,rcCharacter,rcNumber,rcFloat 130 syntax match rcComment "//.*" contains=rcTodo,rcComment2String,rcCharacter,rcNumber 131 else 132 syn region rcComment start="/\*" end="\*/" contains=rcTodo 133 syn match rcComment "//.*" contains=rcTodo 134 endif 135 syntax match rcCommentError "\*/" 136 137 syn region rcPreCondit start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=rcComment,rcString,rcCharacter,rcNumber,rcCommentError 138 syn region rcIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+ 139 syn match rcIncluded contained "<[^>]*>" 140 syn match rcInclude "^\s*#\s*include\>\s*["<]" contains=rcIncluded 141 "syn match rcLineSkip "\\$" 142 syn region rcDefine start="^\s*#\s*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,rcPreCondit,rcIncluded,rcInclude,rcDefine,rcInParen 143 syn region rcPreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,rcPreCondit,rcIncluded,rcInclude,rcDefine,rcInParen 144 145 syn sync ccomment rcComment minlines=10 146 147 " Define the default highlighting. 148 " Only when an item doesn't have highlighting yet 149 150 hi def link rcCharacter Character 151 hi def link rcSpecialCharacter rcSpecial 152 hi def link rcNumber Number 153 hi def link rcFloat Float 154 hi def link rcOctalError rcError 155 hi def link rcParenError rcError 156 hi def link rcInParen rcError 157 hi def link rcCommentError rcError 158 hi def link rcInclude Include 159 hi def link rcPreProc PreProc 160 hi def link rcDefine Macro 161 hi def link rcIncluded rcString 162 hi def link rcError Error 163 hi def link rcPreCondit PreCondit 164 hi def link rcCommentString rcString 165 hi def link rcComment2String rcString 166 hi def link rcCommentSkip rcComment 167 hi def link rcString String 168 hi def link rcComment Comment 169 hi def link rcSpecial SpecialChar 170 hi def link rcTodo Todo 171 172 hi def link rcAttribute rcCommonAttribute 173 hi def link rcStdId rcStatement 174 hi def link rcStatement Statement 175 176 hi def link rcLanguage Constant 177 hi def link rcCaptionParam Constant 178 hi def link rcCommonAttribute Constant 179 180 hi def link rcMainObject Identifier 181 hi def link rcSubObject Define 182 hi def link rcParam Constant 183 hi def link rcStatement Statement 184 " 185 "hi def link rcIdentifier Identifier 186 187 188 189 let b:current_syntax = "rc" 190 191 " vim: ts=8