neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

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