Mercurial > vim
annotate runtime/syntax/msmessages.vim @ 17410:5f5c552c1acb
Added tag v8.1.1703 for changeset e24bbd061233d8d27ed38c10210b39d955f0a8e0
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 16 Jul 2019 21:30:06 +0200 |
parents | 43efa4f5a8ea |
children |
rev | line source |
---|---|
1619 | 1 " Vim syntax file |
2 " Language: MS Message Text files (*.mc) | |
3 " Maintainer: Kevin Locke <kwl7@cornell.edu> | |
4 " Last Change: 2008 April 09 | |
5 " Location: http://kevinlocke.name/programs/vim/syntax/msmessages.vim | |
6 | |
7 " See format description at <http://msdn2.microsoft.com/en-us/library/aa385646.aspx> | |
8 " This file is based on the rc.vim and c.vim | |
9 | |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
1619
diff
changeset
|
10 " quit when a syntax file was already loaded |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
1619
diff
changeset
|
11 if exists("b:current_syntax") |
1619 | 12 finish |
13 endif | |
14 | |
15 " Common MS Messages keywords | |
16 syn case ignore | |
17 syn keyword msmessagesIdentifier MessageIdTypedef | |
18 syn keyword msmessagesIdentifier SeverityNames | |
19 syn keyword msmessagesIdentifier FacilityNames | |
20 syn keyword msmessagesIdentifier LanguageNames | |
21 syn keyword msmessagesIdentifier OutputBase | |
22 | |
23 syn keyword msmessagesIdentifier MessageId | |
24 syn keyword msmessagesIdentifier Severity | |
25 syn keyword msmessagesIdentifier Facility | |
26 syn keyword msmessagesIdentifier OutputBase | |
27 | |
28 syn match msmessagesIdentifier /\<SymbolicName\>/ nextgroup=msmessagesIdentEq skipwhite | |
29 syn match msmessagesIdentEq transparent /=/ nextgroup=msmessagesIdentDef skipwhite contained | |
30 syn match msmessagesIdentDef display /\w\+/ contained | |
31 " Note: The Language keyword is highlighted as part of an msmessagesLangEntry | |
32 | |
33 " Set value | |
34 syn case match | |
35 syn region msmessagesSet start="(" end=")" transparent fold contains=msmessagesName keepend | |
36 syn match msmessagesName /\w\+/ nextgroup=msmessagesSetEquals skipwhite contained | |
37 syn match msmessagesSetEquals /=/ display transparent nextgroup=msmessagesNumVal skipwhite contained | |
38 syn match msmessagesNumVal display transparent "\<\d\|\.\d" contains=msmessagesNumber,msmessagesFloat,msmessagesOctalError,msmessagesOctal nextgroup=msmessagesValSep | |
39 syn match msmessagesValSep /:/ display nextgroup=msmessagesNameDef contained | |
40 syn match msmessagesNameDef /\w\+/ display contained | |
41 | |
42 | |
43 " Comments are converted to C source (by removing leading ;) | |
44 " So we highlight the comments as C | |
45 syn include @msmessagesC syntax/c.vim | |
46 unlet b:current_syntax | |
47 syn region msmessagesCComment matchgroup=msmessagesComment start=/;/ end=/$/ contains=@msmessagesC keepend | |
48 | |
49 " String and Character constants | |
50 " Highlight special characters (those which have a escape) differently | |
51 syn case ignore | |
52 syn region msmessagesLangEntry start=/\<Language\>\s*=\s*\S\+\s*$/hs=e+1 end=/^\./ contains=msmessagesFormat,msmessagesLangEntryEnd,msmessagesLanguage keepend | |
53 syn match msmessagesLanguage /\<Language\(\s*=\)\@=/ contained | |
54 syn match msmessagesLangEntryEnd display /^\./ contained | |
55 syn case match | |
56 syn match msmessagesFormat display /%[1-9]\d\?\(![-+0 #]*\d*\(\.\d\+\)\?\(h\|l\|ll\|I\|I32\|I64\)\?[aAcCdeEfgGinopsSuxX]!\)\?/ contained | |
57 syn match msmessagesFormat display /%[0.%\\br]/ contained | |
58 syn match msmessagesFormat display /%!\(\s\)\@=/ contained | |
59 | |
60 " Integer number, or floating point number without a dot and with "f". | |
61 " Copied from c.vim | |
62 syn case ignore | |
63 "(long) integer | |
64 syn match msmessagesNumber display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>" | |
65 "hex number | |
66 syn match msmessagesNumber display contained "\<0x\x\+\(u\=l\{0,2}\|ll\=u\)\>" | |
67 " Flag the first zero of an octal number as something special | |
68 syn match msmessagesOctal display contained "\<0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=msmessagesOctalZero | |
69 syn match msmessagesOctalZero display contained "\<0" | |
70 " flag an octal number with wrong digits | |
71 syn match msmessagesOctalError display contained "\<0\o*[89]\d*" | |
72 syn match msmessagesFloat display contained "\d\+f" | |
73 "floating point number, with dot, optional exponent | |
74 syn match msmessagesFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=" | |
75 "floating point number, starting with a dot, optional exponent | |
76 syn match msmessagesFloat display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" | |
77 "floating point number, without dot, with exponent | |
78 syn match msmessagesFloat display contained "\d\+e[-+]\=\d\+[fl]\=\>" | |
79 "hexadecimal floating point number, optional leading digits, with dot, with exponent | |
80 syn match msmessagesFloat display contained "0x\x*\.\x\+p[-+]\=\d\+[fl]\=\>" | |
81 "hexadecimal floating point number, with leading digits, optional dot, with exponent | |
82 syn match msmessagesFloat display contained "0x\x\+\.\=p[-+]\=\d\+[fl]\=\>" | |
83 | |
84 " Types (used in MessageIdTypedef statement) | |
85 syn case match | |
86 syn keyword msmessagesType int long short char | |
87 syn keyword msmessagesType signed unsigned | |
88 syn keyword msmessagesType size_t ssize_t sig_atomic_t | |
89 syn keyword msmessagesType int8_t int16_t int32_t int64_t | |
90 syn keyword msmessagesType uint8_t uint16_t uint32_t uint64_t | |
91 syn keyword msmessagesType int_least8_t int_least16_t int_least32_t int_least64_t | |
92 syn keyword msmessagesType uint_least8_t uint_least16_t uint_least32_t uint_least64_t | |
93 syn keyword msmessagesType int_fast8_t int_fast16_t int_fast32_t int_fast64_t | |
94 syn keyword msmessagesType uint_fast8_t uint_fast16_t uint_fast32_t uint_fast64_t | |
95 syn keyword msmessagesType intptr_t uintptr_t | |
96 syn keyword msmessagesType intmax_t uintmax_t | |
97 " Add some Windows datatypes that will be common in msmessages files | |
98 syn keyword msmessagesType BYTE CHAR SHORT SIZE_T SSIZE_T TBYTE TCHAR UCHAR USHORT | |
99 syn keyword msmessagesType DWORD DWORDLONG DWORD32 DWORD64 | |
100 syn keyword msmessagesType INT INT32 INT64 UINT UINT32 UINT64 | |
101 syn keyword msmessagesType LONG LONGLONG LONG32 LONG64 | |
102 syn keyword msmessagesType ULONG ULONGLONG ULONG32 ULONG64 | |
103 | |
104 " Sync to language entries, since they should be most common | |
105 syn sync match msmessagesLangSync grouphere msmessagesLangEntry "\<Language\s*=" | |
106 syn sync match msmessagesLangEndSync grouphere NONE "^\." | |
107 | |
108 " Define the default highlighting. | |
109 hi def link msmessagesNumber Number | |
110 hi def link msmessagesOctal Number | |
111 hi def link msmessagesFloat Float | |
112 hi def link msmessagesOctalError msmessagesError | |
113 hi def link msmessagesSetError msmessagesError | |
114 hi def link msmessagesError Error | |
115 hi def link msmessagesLangEntry String | |
116 hi def link msmessagesLangEntryEnd Special | |
117 hi def link msmessagesComment Comment | |
118 hi def link msmessagesFormat msmessagesSpecial | |
119 hi def link msmessagesSpecial SpecialChar | |
120 | |
121 hi def link msmessagesType Type | |
122 hi def link msmessagesIdentifier Identifier | |
123 hi def link msmessagesLanguage msmessagesIdentifier | |
124 hi def link msmessagesName msmessagesIdentifier | |
125 hi def link msmessagesNameDef Macro | |
126 hi def link msmessagesIdentDef Macro | |
127 hi def link msmessagesValSep Special | |
128 hi def link msmessagesNameErr Error | |
129 | |
130 let b:current_syntax = "msmessages" | |
131 | |
132 " vim: ts=8 |