xref: /vim-8.2.3635/runtime/syntax/registry.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	Windows Registry export with regedit (*.reg)
332efaf61SBram Moolenaar" Maintainer:	Dominique Stéphan ([email protected])
432efaf61SBram Moolenaar" URL: 		http://www.mggen.com/vim/syntax/registry.zip (doesn't work)
532efaf61SBram Moolenaar" Last change:	2014 Oct 31
632efaf61SBram Moolenaar"		Included patch from Alexander A. Ulitin
7071d4279SBram Moolenaar
8071d4279SBram Moolenaar" clear any unwanted syntax defs
989bcfda6SBram Moolenaar" quit when a syntax file was already loaded
1089bcfda6SBram Moolenaarif exists("b:current_syntax")
11071d4279SBram Moolenaar  finish
12071d4279SBram Moolenaarendif
13071d4279SBram Moolenaar
14071d4279SBram Moolenaar" shut case off
15071d4279SBram Moolenaarsyn case ignore
16071d4279SBram Moolenaar
17071d4279SBram Moolenaar" Head of regedit .reg files, it's REGEDIT4 on Win9#/NT
1832efaf61SBram Moolenaarsyn match registryHead		"^REGEDIT[0-9]*\s*$\|^Windows Registry Editor Version \d*\.\d*\s*$"
19071d4279SBram Moolenaar
20071d4279SBram Moolenaar" Comment
21071d4279SBram Moolenaarsyn match  registryComment	"^;.*$"
22071d4279SBram Moolenaar
23071d4279SBram Moolenaar" Registry Key constant
24071d4279SBram Moolenaarsyn keyword registryHKEY	HKEY_LOCAL_MACHINE HKEY_CLASSES_ROOT HKEY_CURRENT_USER
25071d4279SBram Moolenaarsyn keyword registryHKEY	HKEY_USERS HKEY_CURRENT_CONFIG HKEY_DYN_DATA
26071d4279SBram Moolenaar" Registry Key shortcuts
27071d4279SBram Moolenaarsyn keyword registryHKEY	HKLM HKCR HKCU HKU HKCC HKDD
28071d4279SBram Moolenaar
29071d4279SBram Moolenaar" Some values often found in the registry
30071d4279SBram Moolenaar" GUID (Global Unique IDentifier)
31071d4279SBram Moolenaarsyn 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
32071d4279SBram Moolenaar
33071d4279SBram Moolenaar" Disk
34071d4279SBram Moolenaar" syn match   registryDisk	"[a-zA-Z]:\\\\"
35071d4279SBram Moolenaar
36071d4279SBram Moolenaar" Special and Separator characters
37071d4279SBram Moolenaarsyn match   registrySpecial	"\\"
38071d4279SBram Moolenaarsyn match   registrySpecial	"\\\\"
39071d4279SBram Moolenaarsyn match   registrySpecial	"\\\""
40071d4279SBram Moolenaarsyn match   registrySpecial	"\."
41071d4279SBram Moolenaarsyn match   registrySpecial	","
42071d4279SBram Moolenaarsyn match   registrySpecial	"\/"
43071d4279SBram Moolenaarsyn match   registrySpecial	":"
44071d4279SBram Moolenaarsyn match   registrySpecial	"-"
45071d4279SBram Moolenaar
46071d4279SBram Moolenaar" String
47071d4279SBram Moolenaarsyn match   registryString	"\".*\"" contains=registryGUID,registrySpecial
48071d4279SBram Moolenaar
49071d4279SBram Moolenaar" Path
50071d4279SBram Moolenaarsyn region  registryPath		start="\[" end="\]" contains=registryHKEY,registryGUID,registrySpecial
51071d4279SBram Moolenaar
52071d4279SBram Moolenaar" Path to remove
53071d4279SBram Moolenaar" like preceding path but with a "-" at begin
54071d4279SBram Moolenaarsyn region registryRemove	start="\[\-" end="\]" contains=registryHKEY,registryGUID,registrySpecial
55071d4279SBram Moolenaar
56071d4279SBram Moolenaar" Subkey
57071d4279SBram Moolenaarsyn match  registrySubKey		"^\".*\"="
58071d4279SBram Moolenaar" Default value
5932efaf61SBram Moolenaarsyn match  registrySubKey		"^@="
60071d4279SBram Moolenaar
61071d4279SBram Moolenaar" Numbers
62071d4279SBram Moolenaar
63071d4279SBram Moolenaar" Hex or Binary
64071d4279SBram Moolenaar" The format can be precised between () :
65071d4279SBram Moolenaar" 0    REG_NONE
66071d4279SBram Moolenaar" 1    REG_SZ
67071d4279SBram Moolenaar" 2    REG_EXPAND_SZ
68071d4279SBram Moolenaar" 3    REG_BINARY
69071d4279SBram Moolenaar" 4    REG_DWORD, REG_DWORD_LITTLE_ENDIAN
70071d4279SBram Moolenaar" 5    REG_DWORD_BIG_ENDIAN
71071d4279SBram Moolenaar" 6    REG_LINK
72071d4279SBram Moolenaar" 7    REG_MULTI_SZ
73071d4279SBram Moolenaar" 8    REG_RESOURCE_LIST
74071d4279SBram Moolenaar" 9    REG_FULL_RESOURCE_DESCRIPTOR
75071d4279SBram Moolenaar" 10   REG_RESOURCE_REQUIREMENTS_LIST
76071d4279SBram Moolenaar" The value can take several lines, if \ ends the line
77071d4279SBram Moolenaar" The limit to 999 matches is arbitrary, it avoids Vim crashing on a very long
78071d4279SBram Moolenaar" line of hex values that ends in a comma.
79071d4279SBram Moolenaar"syn match registryHex		"hex\(([0-9]\{0,2})\)\=:\([0-9a-fA-F]\{2},\)\{0,999}\([0-9a-fA-F]\{2}\|\\\)$" contains=registrySpecial
80071d4279SBram Moolenaarsyn match registryHex		"hex\(([0-9]\{0,2})\)\=:\([0-9a-fA-F]\{2},\)*\([0-9a-fA-F]\{2}\|\\\)$" contains=registrySpecial
81071d4279SBram Moolenaarsyn match registryHex		"^\s*\([0-9a-fA-F]\{2},\)\{0,999}\([0-9a-fA-F]\{2}\|\\\)$" contains=registrySpecial
82071d4279SBram Moolenaar" Dword (32 bits)
83071d4279SBram Moolenaarsyn match registryDword		"dword:[0-9a-fA-F]\{8}$" contains=registrySpecial
84071d4279SBram Moolenaar
85071d4279SBram Moolenaar
86071d4279SBram Moolenaar" The default methods for highlighting.  Can be overridden later
87*f37506f6SBram Moolenaarhi def link registryComment	Comment
88*f37506f6SBram Moolenaarhi def link registryHead		Constant
89*f37506f6SBram Moolenaarhi def link registryHKEY		Constant
90*f37506f6SBram Moolenaarhi def link registryPath		Special
91*f37506f6SBram Moolenaarhi def link registryRemove	PreProc
92*f37506f6SBram Moolenaarhi def link registryGUID		Identifier
93*f37506f6SBram Moolenaarhi def link registrySpecial	Special
94*f37506f6SBram Moolenaarhi def link registrySubKey	Type
95*f37506f6SBram Moolenaarhi def link registryString	String
96*f37506f6SBram Moolenaarhi def link registryHex		Number
97*f37506f6SBram Moolenaarhi def link registryDword		Number
98071d4279SBram Moolenaar
99071d4279SBram Moolenaar
100071d4279SBram Moolenaar
101071d4279SBram Moolenaarlet b:current_syntax = "registry"
102071d4279SBram Moolenaar
103071d4279SBram Moolenaar" vim:ts=8
104