blob: 67b5e49bcb79c088cc864b2717c9032863b99e9e [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Windows Registry export with regedit (*.reg)
Bram Moolenaar32efaf62014-11-05 17:02:17 +01003" Maintainer: Dominique Stéphan (dominique@mggen.com)
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
Bram Moolenaar071d4272004-06-13 20:20:40 +00007
8" clear any unwanted syntax defs
Bram Moolenaar89bcfda2016-08-30 23:26:57 +02009" quit when a syntax file was already loaded
10if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000011 finish
12endif
13
14" shut case off
15syn case ignore
16
17" Head of regedit .reg files, it's REGEDIT4 on Win9#/NT
Bram Moolenaar32efaf62014-11-05 17:02:17 +010018syn match registryHead "^REGEDIT[0-9]*\s*$\|^Windows Registry Editor Version \d*\.\d*\s*$"
Bram Moolenaar071d4272004-06-13 20:20:40 +000019
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
Bram Moolenaar32efaf62014-11-05 17:02:17 +010059syn match registrySubKey "^@="
Bram Moolenaar071d4272004-06-13 20:20:40 +000060
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
Bram Moolenaar071d4272004-06-13 20:20:40 +000085
86" The default methods for highlighting. Can be overridden later
Bram Moolenaarf37506f2016-08-31 22:22:10 +020087hi 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
Bram Moolenaar071d4272004-06-13 20:20:40 +000098
Bram Moolenaar071d4272004-06-13 20:20:40 +000099
100
101let b:current_syntax = "registry"
102
103" vim:ts=8