mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 01:34:25 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			192 lines
		
	
	
		
			9.8 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			192 lines
		
	
	
		
			9.8 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
" Vim syntax file
 | 
						|
" Language:	M$ Resource files (*.rc)
 | 
						|
" Maintainer:	Christian Brabandt
 | 
						|
" Last Change:	20220116
 | 
						|
" Repository:   https://github.com/chrisbra/vim-rc-syntax
 | 
						|
" License:	Vim (see :h license)
 | 
						|
" Previous Maintainer:	Heiko Erhardt <Heiko.Erhardt@munich.netsurf.de>
 | 
						|
 | 
						|
" This file is based on the c.vim
 | 
						|
 | 
						|
" quit when a syntax file was already loaded
 | 
						|
if exists("b:current_syntax")
 | 
						|
  finish
 | 
						|
endif
 | 
						|
 | 
						|
" Common RC keywords
 | 
						|
syn keyword rcLanguage LANGUAGE
 | 
						|
 | 
						|
syn keyword rcMainObject TEXTINCLUDE VERSIONINFO BITMAP ICON CURSOR CURSOR
 | 
						|
syn keyword rcMainObject MENU ACCELERATORS TOOLBAR DIALOG
 | 
						|
syn keyword rcMainObject STRINGTABLE MESSAGETABLE RCDATA DLGINIT DESIGNINFO
 | 
						|
 | 
						|
syn keyword rcSubObject POPUP MENUITEM SEPARATOR
 | 
						|
syn keyword rcSubObject CONTROL LTEXT CTEXT RTEXT EDITTEXT
 | 
						|
syn keyword rcSubObject BUTTON PUSHBUTTON DEFPUSHBUTTON GROUPBOX LISTBOX COMBOBOX
 | 
						|
syn keyword rcSubObject FILEVERSION PRODUCTVERSION FILEFLAGSMASK FILEFLAGS FILEOS
 | 
						|
syn keyword rcSubObject FILETYPE FILESUBTYPE
 | 
						|
 | 
						|
syn keyword rcCaptionParam CAPTION
 | 
						|
syn keyword rcParam CHARACTERISTICS CLASS STYLE EXSTYLE VERSION FONT
 | 
						|
 | 
						|
syn keyword rcStatement BEGIN END BLOCK VALUE
 | 
						|
 | 
						|
syn keyword rcCommonAttribute PRELOAD LOADONCALL FIXED MOVEABLE DISCARDABLE PURE IMPURE
 | 
						|
 | 
						|
syn keyword rcAttribute WS_OVERLAPPED WS_POPUP WS_CHILD WS_MINIMIZE WS_VISIBLE WS_DISABLED WS_CLIPSIBLINGS
 | 
						|
syn keyword rcAttribute WS_CLIPCHILDREN WS_MAXIMIZE WS_CAPTION WS_BORDER WS_DLGFRAME WS_VSCROLL WS_HSCROLL
 | 
						|
syn keyword rcAttribute WS_SYSMENU WS_THICKFRAME WS_GROUP WS_TABSTOP WS_MINIMIZEBOX WS_MAXIMIZEBOX WS_TILED
 | 
						|
syn keyword rcAttribute WS_ICONIC WS_SIZEBOX WS_TILEDWINDOW WS_OVERLAPPEDWINDOW WS_POPUPWINDOW WS_CHILDWINDOW
 | 
						|
syn keyword rcAttribute WS_EX_DLGMODALFRAME WS_EX_NOPARENTNOTIFY WS_EX_TOPMOST WS_EX_ACCEPTFILES
 | 
						|
syn keyword rcAttribute WS_EX_TRANSPARENT WS_EX_MDICHILD WS_EX_TOOLWINDOW WS_EX_WINDOWEDGE WS_EX_CLIENTEDGE
 | 
						|
syn keyword rcAttribute WS_EX_CONTEXTHELP WS_EX_RIGHT WS_EX_LEFT WS_EX_RTLREADING WS_EX_LTRREADING
 | 
						|
syn keyword rcAttribute WS_EX_LEFTSCROLLBAR WS_EX_RIGHTSCROLLBAR WS_EX_CONTROLPARENT WS_EX_STATICEDGE
 | 
						|
syn keyword rcAttribute WS_EX_APPWINDOW WS_EX_OVERLAPPEDWINDOW WS_EX_PALETTEWINDOW
 | 
						|
syn keyword rcAttribute ES_LEFT ES_CENTER ES_RIGHT ES_MULTILINE ES_UPPERCASE ES_LOWERCASE ES_PASSWORD
 | 
						|
syn keyword rcAttribute ES_AUTOVSCROLL ES_AUTOHSCROLL ES_NOHIDESEL ES_OEMCONVERT ES_READONLY ES_WANTRETURN
 | 
						|
syn keyword rcAttribute ES_NUMBER
 | 
						|
syn keyword rcAttribute BS_PUSHBUTTON BS_DEFPUSHBUTTON BS_CHECKBOX BS_AUTOCHECKBOX BS_RADIOBUTTON BS_3STATE
 | 
						|
syn keyword rcAttribute BS_AUTO3STATE BS_GROUPBOX BS_USERBUTTON BS_AUTORADIOBUTTON BS_OWNERDRAW BS_LEFTTEXT
 | 
						|
syn keyword rcAttribute BS_TEXT BS_ICON BS_BITMAP BS_LEFT BS_RIGHT BS_CENTER BS_TOP BS_BOTTOM BS_VCENTER
 | 
						|
syn keyword rcAttribute BS_PUSHLIKE BS_MULTILINE BS_NOTIFY BS_FLAT BS_RIGHTBUTTON
 | 
						|
syn keyword rcAttribute SS_LEFT SS_CENTER SS_RIGHT SS_ICON SS_BLACKRECT SS_GRAYRECT SS_WHITERECT
 | 
						|
syn keyword rcAttribute SS_BLACKFRAME SS_GRAYFRAME SS_WHITEFRAME SS_USERITEM SS_SIMPLE SS_LEFTNOWORDWRAP
 | 
						|
syn keyword rcAttribute SS_OWNERDRAW SS_BITMAP SS_ENHMETAFILE SS_ETCHEDHORZ SS_ETCHEDVERT SS_ETCHEDFRAME
 | 
						|
syn keyword rcAttribute SS_TYPEMASK SS_NOPREFIX SS_NOTIFY SS_CENTERIMAGE SS_RIGHTJUST SS_REALSIZEIMAGE
 | 
						|
syn keyword rcAttribute SS_SUNKEN SS_ENDELLIPSIS SS_PATHELLIPSIS SS_WORDELLIPSIS SS_ELLIPSISMASK
 | 
						|
syn keyword rcAttribute DS_ABSALIGN DS_SYSMODAL DS_LOCALEDIT DS_SETFONT DS_MODALFRAME DS_NOIDLEMSG
 | 
						|
syn keyword rcAttribute DS_SETFOREGROUND DS_3DLOOK DS_FIXEDSYS DS_NOFAILCREATE DS_CONTROL DS_CENTER
 | 
						|
syn keyword rcAttribute DS_CENTERMOUSE DS_CONTEXTHELP
 | 
						|
syn keyword rcAttribute LBS_NOTIFY LBS_SORT LBS_NOREDRAW LBS_MULTIPLESEL LBS_OWNERDRAWFIXED
 | 
						|
syn keyword rcAttribute LBS_OWNERDRAWVARIABLE LBS_HASSTRINGS LBS_USETABSTOPS LBS_NOINTEGRALHEIGHT
 | 
						|
syn keyword rcAttribute LBS_MULTICOLUMN LBS_WANTKEYBOARDINPUT LBS_EXTENDEDSEL LBS_DISABLENOSCROLL
 | 
						|
syn keyword rcAttribute LBS_NODATA LBS_NOSEL LBS_STANDARD
 | 
						|
syn keyword rcAttribute CBS_SIMPLE CBS_DROPDOWN CBS_DROPDOWNLIST CBS_OWNERDRAWFIXED CBS_OWNERDRAWVARIABLE
 | 
						|
syn keyword rcAttribute CBS_AUTOHSCROLL CBS_OEMCONVERT CBS_SORT CBS_HASSTRINGS CBS_NOINTEGRALHEIGHT
 | 
						|
syn keyword rcAttribute CBS_DISABLENOSCROLL CBS_UPPERCASE CBS_LOWERCASE
 | 
						|
syn keyword rcAttribute SBS_HORZ SBS_VERT SBS_TOPALIGN SBS_LEFTALIGN SBS_BOTTOMALIGN SBS_RIGHTALIGN
 | 
						|
syn keyword rcAttribute SBS_SIZEBOXTOPLEFTALIGN SBS_SIZEBOXBOTTOMRIGHTALIGN SBS_SIZEBOX SBS_SIZEGRIP
 | 
						|
syn keyword rcAttribute CCS_TOP CCS_NOMOVEY CCS_BOTTOM CCS_NORESIZE CCS_NOPARENTALIGN CCS_ADJUSTABLE
 | 
						|
syn keyword rcAttribute CCS_NODIVIDER
 | 
						|
syn keyword rcAttribute LVS_ICON LVS_REPORT LVS_SMALLICON LVS_LIST LVS_TYPEMASK LVS_SINGLESEL LVS_SHOWSELALWAYS
 | 
						|
syn keyword rcAttribute LVS_SORTASCENDING LVS_SORTDESCENDING LVS_SHAREIMAGELISTS LVS_NOLABELWRAP
 | 
						|
syn keyword rcAttribute LVS_EDITLABELS LVS_OWNERDATA LVS_NOSCROLL LVS_TYPESTYLEMASK  LVS_ALIGNTOP LVS_ALIGNLEFT
 | 
						|
syn keyword rcAttribute LVS_ALIGNMASK LVS_OWNERDRAWFIXED LVS_NOCOLUMNHEADER LVS_NOSORTHEADER LVS_AUTOARRANGE
 | 
						|
syn keyword rcAttribute TVS_HASBUTTONS TVS_HASLINES TVS_LINESATROOT TVS_EDITLABELS TVS_DISABLEDRAGDROP
 | 
						|
syn keyword rcAttribute TVS_SHOWSELALWAYS
 | 
						|
syn keyword rcAttribute TCS_FORCEICONLEFT TCS_FORCELABELLEFT TCS_TABS TCS_BUTTONS TCS_SINGLELINE TCS_MULTILINE
 | 
						|
syn keyword rcAttribute TCS_RIGHTJUSTIFY TCS_FIXEDWIDTH TCS_RAGGEDRIGHT TCS_FOCUSONBUTTONDOWN
 | 
						|
syn keyword rcAttribute TCS_OWNERDRAWFIXED TCS_TOOLTIPS TCS_FOCUSNEVER
 | 
						|
syn keyword rcAttribute ACS_CENTER ACS_TRANSPARENT ACS_AUTOPLAY
 | 
						|
syn keyword rcStdId IDI_APPLICATION IDI_HAND IDI_QUESTION IDI_EXCLAMATION IDI_ASTERISK IDI_WINLOGO IDI_WINLOGO
 | 
						|
syn keyword rcStdId IDI_WARNING IDI_ERROR IDI_INFORMATION
 | 
						|
syn keyword rcStdId IDCANCEL IDABORT IDRETRY IDIGNORE IDYES IDNO IDCLOSE IDHELP IDC_STATIC
 | 
						|
 | 
						|
" Common RC keywords
 | 
						|
 | 
						|
" Common RC keywords
 | 
						|
syn keyword rcTodo contained	TODO FIXME XXX
 | 
						|
 | 
						|
" String and Character constants
 | 
						|
" Highlight special characters (those which have a backslash) differently
 | 
						|
syn match rcSpecial contained	"\\[0-7][0-7][0-7]\=\|\\."
 | 
						|
syn region rcString		start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=rcSpecial
 | 
						|
syn 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 parenthesis
 | 
						|
syn region rcParen		transparent start='(' end=')' contains=ALLBUT,rcParenError,rcIncluded,rcSpecial,rcTodo
 | 
						|
syn match rcParenError		")"
 | 
						|
syn match rcInParen contained	"[{}]"
 | 
						|
 | 
						|
"integer number, or floating point number without a dot and with "f".
 | 
						|
syn case ignore
 | 
						|
syn match rcNumber		"\<\d\+\(u\=l\=\|lu\|f\)\>"
 | 
						|
"floating point number, with dot, optional exponent
 | 
						|
syn match rcFloat		"\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
 | 
						|
"floating point number, starting with a dot, optional exponent
 | 
						|
syn match rcFloat		"\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
 | 
						|
"floating point number, without dot, with exponent
 | 
						|
syn match rcFloat		"\<\d\+e[-+]\=\d\+[fl]\=\>"
 | 
						|
"hex number
 | 
						|
syn 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 digits
 | 
						|
syn 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,rcCommentSkip
 | 
						|
  syntax region rcComment2String	contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=rcSpecial
 | 
						|
  syntax region rcComment	start="/\*" end="\*/" contains=rcTodo,rcCommentString,rcCharacter,rcNumber,rcFloat
 | 
						|
  syntax match  rcComment	"//.*" contains=rcTodo,rcComment2String,rcCharacter,rcNumber
 | 
						|
else
 | 
						|
  syn region rcComment		start="/\*" end="\*/" contains=rcTodo
 | 
						|
  syn match rcComment		"//.*" contains=rcTodo
 | 
						|
endif
 | 
						|
syntax match rcCommentError	"\*/"
 | 
						|
 | 
						|
syn region rcPreCondit	start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=rcComment,rcString,rcCharacter,rcNumber,rcCommentError
 | 
						|
syn 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,rcInParen
 | 
						|
syn region rcPreProc		start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,rcPreCondit,rcIncluded,rcInclude,rcDefine,rcInParen
 | 
						|
 | 
						|
syn sync ccomment rcComment minlines=10
 | 
						|
 | 
						|
" Define the default highlighting.
 | 
						|
" Only when an item doesn't have highlighting yet
 | 
						|
 | 
						|
hi def link rcCharacter	Character
 | 
						|
hi def link rcSpecialCharacter rcSpecial
 | 
						|
hi def link rcNumber	Number
 | 
						|
hi def link rcFloat	Float
 | 
						|
hi def link rcOctalError	rcError
 | 
						|
hi def link rcParenError	rcError
 | 
						|
hi def link rcInParen	rcError
 | 
						|
hi def link rcCommentError	rcError
 | 
						|
hi def link rcInclude	Include
 | 
						|
hi def link rcPreProc	PreProc
 | 
						|
hi def link rcDefine	Macro
 | 
						|
hi def link rcIncluded	rcString
 | 
						|
hi def link rcError	Error
 | 
						|
hi def link rcPreCondit	PreCondit
 | 
						|
hi def link rcCommentString rcString
 | 
						|
hi def link rcComment2String rcString
 | 
						|
hi def link rcCommentSkip	rcComment
 | 
						|
hi def link rcString	String
 | 
						|
hi def link rcComment	Comment
 | 
						|
hi def link rcSpecial	SpecialChar
 | 
						|
hi def link rcTodo	Todo
 | 
						|
 | 
						|
hi def link rcAttribute	rcCommonAttribute
 | 
						|
hi def link rcStdId	rcStatement
 | 
						|
hi def link rcStatement	Statement
 | 
						|
 | 
						|
hi def link rcLanguage	Constant
 | 
						|
hi def link rcCaptionParam Constant
 | 
						|
hi def link rcCommonAttribute Constant
 | 
						|
 | 
						|
hi def link rcMainObject Identifier
 | 
						|
hi def link rcSubObject	Define
 | 
						|
hi def link rcParam	Constant
 | 
						|
hi def link rcStatement	Statement
 | 
						|
"
 | 
						|
"hi def link rcIdentifier Identifier
 | 
						|
 | 
						|
 | 
						|
 | 
						|
let b:current_syntax = "rc"
 | 
						|
 | 
						|
" vim: ts=8
 |