Mercurial > vim
annotate runtime/syntax/typescriptreact.vim @ 34359:0447bf3a88a5 v9.1.0110
patch 9.1.0110: filetype: add 'Config.in' filetype detection
Commit: https://github.com/vim/vim/commit/5f20f050efed3431beaf85739f0113e9ef0abd8e
Author: Brandon Maier <brandon.maier@collins.com>
Date: Wed Feb 14 22:30:06 2024 +0100
patch 9.1.0110: filetype: add 'Config.in' filetype detection
The 'Config.in' file type is for Buildroot configuration files.
Buildroot Config.in files use the same Kconfig backend as the Linux
kernel's Kconfig files.
Buildroot also has other filename variants that follow "Config.in.*",
they are used to distinguish multiple Config.in files in the same
directory.
See https://buildroot.org/downloads/manual/manual.html#_literal_config_in_literal_file
closes: #14038
Signed-off-by: Brandon Maier <brandon.maier@collins.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 14 Feb 2024 22:45:02 +0100 |
parents | 71cbad0921c9 |
children | 5ea191f0c8a1 |
rev | line source |
---|---|
18639 | 1 " Vim syntax file |
2 " Language: TypeScript with React (JSX) | |
32975
71cbad0921c9
runtime: Remove Brams name from a few more runtime files (#12780)
Christian Brabandt <cb@256bit.org>
parents:
29756
diff
changeset
|
3 " Maintainer: The Vim Project <https://github.com/vim/vim> |
71cbad0921c9
runtime: Remove Brams name from a few more runtime files (#12780)
Christian Brabandt <cb@256bit.org>
parents:
29756
diff
changeset
|
4 " Last Change: 2023 Aug 13 |
18639 | 5 " Based On: Herrington Darkholme's yats.vim |
32975
71cbad0921c9
runtime: Remove Brams name from a few more runtime files (#12780)
Christian Brabandt <cb@256bit.org>
parents:
29756
diff
changeset
|
6 " Changes: See https://github.com/HerringtonDarkholme/yats.vim |
18639 | 7 " Credits: See yats.vim on github |
8 | |
9 if !exists("main_syntax") | |
10 if exists("b:current_syntax") | |
11 finish | |
12 endif | |
13 let main_syntax = 'typescriptreact' | |
14 endif | |
15 | |
16 let s:cpo_save = &cpo | |
17 set cpo&vim | |
18 | |
19 syntax region tsxTag | |
20 \ start=+<\([^/!?<>="':]\+\)\@=+ | |
21 \ skip=+</[^ /!?<>"']\+>+ | |
22 \ end=+/\@<!>+ | |
23 \ end=+\(/>\)\@=+ | |
24 \ contained | |
25 \ contains=tsxTagName,tsxIntrinsicTagName,tsxAttrib,tsxEscJs, | |
26 \tsxCloseString,@tsxComment | |
27 | |
28 syntax match tsxTag /<>/ contained | |
29 | |
30 | |
31 " <tag></tag> | |
32 " s~~~~~~~~~e | |
33 " and self close tag | |
34 " <tag/> | |
35 " s~~~~e | |
36 " A big start regexp borrowed from https://git.io/vDyxc | |
37 syntax region tsxRegion | |
38 \ start=+<\_s*\z([a-zA-Z1-9\$_-]\+\(\.\k\+\)*\)+ | |
39 \ skip=+<!--\_.\{-}-->+ | |
40 \ end=+</\_s*\z1>+ | |
41 \ matchgroup=tsxCloseString end=+/>+ | |
42 \ fold | |
43 \ contains=tsxRegion,tsxCloseString,tsxCloseTag,tsxTag,tsxCommentInvalid,tsxFragment,tsxEscJs,@Spell | |
44 \ keepend | |
45 \ extend | |
46 | |
47 " <> </> | |
48 " s~~~~~~e | |
49 " A big start regexp borrowed from https://git.io/vDyxc | |
50 syntax region tsxFragment | |
51 \ start=+\(\((\|{\|}\|\[\|,\|&&\|||\|?\|:\|=\|=>\|\Wreturn\|^return\|\Wdefault\|^\|>\)\_s*\)\@<=<>+ | |
52 \ skip=+<!--\_.\{-}-->+ | |
53 \ end=+</>+ | |
54 \ fold | |
55 \ contains=tsxRegion,tsxCloseString,tsxCloseTag,tsxTag,tsxCommentInvalid,tsxFragment,tsxEscJs,@Spell | |
56 \ keepend | |
57 \ extend | |
58 | |
59 " </tag> | |
60 " ~~~~~~ | |
61 syntax match tsxCloseTag | |
62 \ +</\_s*[^/!?<>"']\+>+ | |
63 \ contained | |
64 \ contains=tsxTagName,tsxIntrinsicTagName | |
65 | |
66 syntax match tsxCloseTag +</>+ contained | |
67 | |
68 syntax match tsxCloseString | |
69 \ +/>+ | |
70 \ contained | |
71 | |
72 " <!-- --> | |
73 " ~~~~~~~~ | |
74 syntax match tsxCommentInvalid /<!--\_.\{-}-->/ display | |
75 | |
76 syntax region tsxBlockComment | |
77 \ contained | |
78 \ start="/\*" | |
79 \ end="\*/" | |
80 | |
81 syntax match tsxLineComment | |
82 \ "//.*$" | |
83 \ contained | |
84 \ display | |
85 | |
86 syntax cluster tsxComment contains=tsxBlockComment,tsxLineComment | |
87 | |
88 syntax match tsxEntity "&[^; \t]*;" contains=tsxEntityPunct | |
89 syntax match tsxEntityPunct contained "[&.;]" | |
90 | |
91 " <tag key={this.props.key}> | |
92 " ~~~ | |
93 syntax match tsxTagName | |
94 \ +[</]\_s*[^/!?<>"'* ]\++hs=s+1 | |
95 \ contained | |
96 \ nextgroup=tsxAttrib | |
97 \ skipwhite | |
98 \ display | |
99 syntax match tsxIntrinsicTagName | |
100 \ +[</]\_s*[a-z1-9-]\++hs=s+1 | |
101 \ contained | |
102 \ nextgroup=tsxAttrib | |
103 \ skipwhite | |
104 \ display | |
105 | |
106 " <tag key={this.props.key}> | |
107 " ~~~ | |
108 syntax match tsxAttrib | |
109 \ +[a-zA-Z_][-0-9a-zA-Z_]*+ | |
110 \ nextgroup=tsxEqual skipwhite | |
111 \ contained | |
112 \ display | |
113 | |
114 " <tag id="sample"> | |
115 " ~ | |
116 syntax match tsxEqual +=+ display contained | |
117 \ nextgroup=tsxString skipwhite | |
118 | |
119 " <tag id="sample"> | |
120 " s~~~~~~e | |
121 syntax region tsxString contained start=+"+ end=+"+ contains=tsxEntity,@Spell display | |
122 | |
123 " <tag key={this.props.key}> | |
124 " s~~~~~~~~~~~~~~e | |
125 syntax region tsxEscJs | |
126 \ contained | |
127 \ contains=@typescriptValue,@tsxComment | |
128 \ matchgroup=typescriptBraces | |
129 \ start=+{+ | |
130 \ end=+}+ | |
131 \ extend | |
132 | |
133 | |
134 """"""""""""""""""""""""""""""""""""""""""""""""""" | |
135 " Source the part common with typescriptreact.vim | |
29756 | 136 source <sfile>:h/shared/typescriptcommon.vim |
18639 | 137 |
138 | |
139 syntax cluster typescriptExpression add=tsxRegion,tsxFragment | |
140 | |
141 hi def link tsxTag htmlTag | |
142 hi def link tsxTagName Function | |
143 hi def link tsxIntrinsicTagName htmlTagName | |
144 hi def link tsxString String | |
145 hi def link tsxNameSpace Function | |
146 hi def link tsxCommentInvalid Error | |
147 hi def link tsxBlockComment Comment | |
148 hi def link tsxLineComment Comment | |
149 hi def link tsxAttrib Type | |
150 hi def link tsxEscJs tsxEscapeJs | |
151 hi def link tsxCloseTag htmlTag | |
152 hi def link tsxCloseString Identifier | |
153 | |
154 let b:current_syntax = "typescriptreact" | |
155 if main_syntax == 'typescriptreact' | |
156 unlet main_syntax | |
157 endif | |
158 | |
159 let &cpo = s:cpo_save | |
160 unlet s:cpo_save |