xref: /vim-8.2.3635/runtime/syntax/registry.vim (revision f37506f6)
1" Vim syntax file
2" Language:	Windows Registry export with regedit (*.reg)
3" Maintainer:	Dominique Stéphan ([email protected])
4" URL: 		http://www.mggen.com/vim/syntax/registry.zip (doesn't work)
5" Last change:	2014 Oct 31
6"		Included patch from Alexander A. Ulitin
7
8" clear any unwanted syntax defs
9" quit when a syntax file was already loaded
10if exists("b:current_syntax")
11  finish
12endif
13
14" shut case off
15syn case ignore
16
17" Head of regedit .reg files, it's REGEDIT4 on Win9#/NT
18syn match registryHead		"^REGEDIT[0-9]*\s*$\|^Windows Registry Editor Version \d*\.\d*\s*$"
19
20" Comment
21syn match  registryComment	"^;.*$"
22
23" Registry Key constant
24syn keyword registryHKEY	HKEY_LOCAL_MACHINE HKEY_CLASSES_ROOT HKEY_CURRENT_USER
25syn keyword registryHKEY	HKEY_USERS HKEY_CURRENT_CONFIG HKEY_DYN_DATA
26" Registry Key shortcuts
27syn keyword registryHKEY	HKLM HKCR HKCU HKU HKCC HKDD
28
29" Some values often found in the registry
30" GUID (Global Unique IDentifier)
31syn match   registryGUID	"{[0-9A-Fa-f]\{8}\-[0-9A-Fa-f]\{4}\-[0-9A-Fa-f]\{4}\-[0-9A-Fa-f]\{4}\-[0-9A-Fa-f]\{12}}" contains=registrySpecial
32
33" Disk
34" syn match   registryDisk	"[a-zA-Z]:\\\\"
35
36" Special and Separator characters
37syn match   registrySpecial	"\\"
38syn match   registrySpecial	"\\\\"
39syn match   registrySpecial	"\\\""
40syn match   registrySpecial	"\."
41syn match   registrySpecial	","
42syn match   registrySpecial	"\/"
43syn match   registrySpecial	":"
44syn match   registrySpecial	"-"
45
46" String
47syn match   registryString	"\".*\"" contains=registryGUID,registrySpecial
48
49" Path
50syn region  registryPath		start="\[" end="\]" contains=registryHKEY,registryGUID,registrySpecial
51
52" Path to remove
53" like preceding path but with a "-" at begin
54syn region registryRemove	start="\[\-" end="\]" contains=registryHKEY,registryGUID,registrySpecial
55
56" Subkey
57syn match  registrySubKey		"^\".*\"="
58" Default value
59syn match  registrySubKey		"^@="
60
61" Numbers
62
63" Hex or Binary
64" The format can be precised between () :
65" 0    REG_NONE
66" 1    REG_SZ
67" 2    REG_EXPAND_SZ
68" 3    REG_BINARY
69" 4    REG_DWORD, REG_DWORD_LITTLE_ENDIAN
70" 5    REG_DWORD_BIG_ENDIAN
71" 6    REG_LINK
72" 7    REG_MULTI_SZ
73" 8    REG_RESOURCE_LIST
74" 9    REG_FULL_RESOURCE_DESCRIPTOR
75" 10   REG_RESOURCE_REQUIREMENTS_LIST
76" The value can take several lines, if \ ends the line
77" The limit to 999 matches is arbitrary, it avoids Vim crashing on a very long
78" line of hex values that ends in a comma.
79"syn match registryHex		"hex\(([0-9]\{0,2})\)\=:\([0-9a-fA-F]\{2},\)\{0,999}\([0-9a-fA-F]\{2}\|\\\)$" contains=registrySpecial
80syn match registryHex		"hex\(([0-9]\{0,2})\)\=:\([0-9a-fA-F]\{2},\)*\([0-9a-fA-F]\{2}\|\\\)$" contains=registrySpecial
81syn match registryHex		"^\s*\([0-9a-fA-F]\{2},\)\{0,999}\([0-9a-fA-F]\{2}\|\\\)$" contains=registrySpecial
82" Dword (32 bits)
83syn match registryDword		"dword:[0-9a-fA-F]\{8}$" contains=registrySpecial
84
85
86" The default methods for highlighting.  Can be overridden later
87hi def link registryComment	Comment
88hi def link registryHead		Constant
89hi def link registryHKEY		Constant
90hi def link registryPath		Special
91hi def link registryRemove	PreProc
92hi def link registryGUID		Identifier
93hi def link registrySpecial	Special
94hi def link registrySubKey	Type
95hi def link registryString	String
96hi def link registryHex		Number
97hi def link registryDword		Number
98
99
100
101let b:current_syntax = "registry"
102
103" vim:ts=8
104