html.js236 lines · main
1'use strict'
2/*!-----------------------------------------------------------------------------
3 * Copyright (c) Microsoft Corporation. All rights reserved.
4 * Version: 0.37.0(14a92401d7aff24ad84578a4c8b9a701ff533a84)
5 * Released under the MIT license
6 * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
7 *-----------------------------------------------------------------------------*/
8define('vs/basic-languages/html/html', ['require', 'require'], (require) => {
9 var moduleExports = (() => {
10 var u = Object.create
11 var a = Object.defineProperty
12 var b = Object.getOwnPropertyDescriptor
13 var x = Object.getOwnPropertyNames
14 var y = Object.getPrototypeOf,
15 g = Object.prototype.hasOwnProperty
16 var k = ((e) =>
17 typeof require != 'undefined'
18 ? require
19 : typeof Proxy != 'undefined'
20 ? new Proxy(e, { get: (t, n) => (typeof require != 'undefined' ? require : t)[n] })
21 : e)(function (e) {
22 if (typeof require != 'undefined') return require.apply(this, arguments)
23 throw new Error('Dynamic require of "' + e + '" is not supported')
24 })
25 var E = (e, t) => () => (t || e((t = { exports: {} }).exports, t), t.exports),
26 T = (e, t) => {
27 for (var n in t) a(e, n, { get: t[n], enumerable: !0 })
28 },
29 o = (e, t, n, s) => {
30 if ((t && typeof t == 'object') || typeof t == 'function')
31 for (let r of x(t))
32 !g.call(e, r) &&
33 r !== n &&
34 a(e, r, { get: () => t[r], enumerable: !(s = b(t, r)) || s.enumerable })
35 return e
36 },
37 d = (e, t, n) => (o(e, t, 'default'), n && o(n, t, 'default')),
38 m = (e, t, n) => (
39 (n = e != null ? u(y(e)) : {}),
40 o(t || !e || !e.__esModule ? a(n, 'default', { value: e, enumerable: !0 }) : n, e)
41 ),
42 w = (e) => o(a({}, '__esModule', { value: !0 }), e)
43 var l = E((A, p) => {
44 var h = m(k('vs/editor/editor.api'))
45 p.exports = h
46 })
47 var $ = {}
48 T($, { conf: () => v, language: () => f })
49 var i = {}
50 d(i, m(l()))
51 var c = [
52 'area',
53 'base',
54 'br',
55 'col',
56 'embed',
57 'hr',
58 'img',
59 'input',
60 'keygen',
61 'link',
62 'menuitem',
63 'meta',
64 'param',
65 'source',
66 'track',
67 'wbr',
68 ],
69 v = {
70 wordPattern:
71 /(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,
72 comments: { blockComment: ['<!--', '-->'] },
73 brackets: [
74 ['<!--', '-->'],
75 ['<', '>'],
76 ['{', '}'],
77 ['(', ')'],
78 ],
79 autoClosingPairs: [
80 { open: '{', close: '}' },
81 { open: '[', close: ']' },
82 { open: '(', close: ')' },
83 { open: '"', close: '"' },
84 { open: "'", close: "'" },
85 ],
86 surroundingPairs: [
87 { open: '"', close: '"' },
88 { open: "'", close: "'" },
89 { open: '{', close: '}' },
90 { open: '[', close: ']' },
91 { open: '(', close: ')' },
92 { open: '<', close: '>' },
93 ],
94 onEnterRules: [
95 {
96 beforeText: new RegExp(
97 `<(?!(?:${c.join('|')}))([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`,
98 'i'
99 ),
100 afterText: /^<\/([_:\w][_:\w-.\d]*)\s*>$/i,
101 action: { indentAction: i.languages.IndentAction.IndentOutdent },
102 },
103 {
104 beforeText: new RegExp(
105 `<(?!(?:${c.join('|')}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,
106 'i'
107 ),
108 action: { indentAction: i.languages.IndentAction.Indent },
109 },
110 ],
111 folding: {
112 markers: {
113 start: new RegExp('^\\s*<!--\\s*#region\\b.*-->'),
114 end: new RegExp('^\\s*<!--\\s*#endregion\\b.*-->'),
115 },
116 },
117 },
118 f = {
119 defaultToken: '',
120 tokenPostfix: '.html',
121 ignoreCase: !0,
122 tokenizer: {
123 root: [
124 [/<!DOCTYPE/, 'metatag', '@doctype'],
125 [/<!--/, 'comment', '@comment'],
126 [/(<)((?:[\w\-]+:)?[\w\-]+)(\s*)(\/>)/, ['delimiter', 'tag', '', 'delimiter']],
127 [/(<)(script)/, ['delimiter', { token: 'tag', next: '@script' }]],
128 [/(<)(style)/, ['delimiter', { token: 'tag', next: '@style' }]],
129 [/(<)((?:[\w\-]+:)?[\w\-]+)/, ['delimiter', { token: 'tag', next: '@otherTag' }]],
130 [/(<\/)((?:[\w\-]+:)?[\w\-]+)/, ['delimiter', { token: 'tag', next: '@otherTag' }]],
131 [/</, 'delimiter'],
132 [/[^<]+/],
133 ],
134 doctype: [
135 [/[^>]+/, 'metatag.content'],
136 [/>/, 'metatag', '@pop'],
137 ],
138 comment: [
139 [/-->/, 'comment', '@pop'],
140 [/[^-]+/, 'comment.content'],
141 [/./, 'comment.content'],
142 ],
143 otherTag: [
144 [/\/?>/, 'delimiter', '@pop'],
145 [/"([^"]*)"/, 'attribute.value'],
146 [/'([^']*)'/, 'attribute.value'],
147 [/[\w\-]+/, 'attribute.name'],
148 [/=/, 'delimiter'],
149 [/[ \t\r\n]+/],
150 ],
151 script: [
152 [/type/, 'attribute.name', '@scriptAfterType'],
153 [/"([^"]*)"/, 'attribute.value'],
154 [/'([^']*)'/, 'attribute.value'],
155 [/[\w\-]+/, 'attribute.name'],
156 [/=/, 'delimiter'],
157 [/>/, { token: 'delimiter', next: '@scriptEmbedded', nextEmbedded: 'text/javascript' }],
158 [/[ \t\r\n]+/],
159 [/(<\/)(script\s*)(>)/, ['delimiter', 'tag', { token: 'delimiter', next: '@pop' }]],
160 ],
161 scriptAfterType: [
162 [/=/, 'delimiter', '@scriptAfterTypeEquals'],
163 [/>/, { token: 'delimiter', next: '@scriptEmbedded', nextEmbedded: 'text/javascript' }],
164 [/[ \t\r\n]+/],
165 [/<\/script\s*>/, { token: '@rematch', next: '@pop' }],
166 ],
167 scriptAfterTypeEquals: [
168 [
169 /"module"/,
170 { token: 'attribute.value', switchTo: '@scriptWithCustomType.text/javascript' },
171 ],
172 [
173 /'module'/,
174 { token: 'attribute.value', switchTo: '@scriptWithCustomType.text/javascript' },
175 ],
176 [/"([^"]*)"/, { token: 'attribute.value', switchTo: '@scriptWithCustomType.$1' }],
177 [/'([^']*)'/, { token: 'attribute.value', switchTo: '@scriptWithCustomType.$1' }],
178 [/>/, { token: 'delimiter', next: '@scriptEmbedded', nextEmbedded: 'text/javascript' }],
179 [/[ \t\r\n]+/],
180 [/<\/script\s*>/, { token: '@rematch', next: '@pop' }],
181 ],
182 scriptWithCustomType: [
183 [/>/, { token: 'delimiter', next: '@scriptEmbedded.$S2', nextEmbedded: '$S2' }],
184 [/"([^"]*)"/, 'attribute.value'],
185 [/'([^']*)'/, 'attribute.value'],
186 [/[\w\-]+/, 'attribute.name'],
187 [/=/, 'delimiter'],
188 [/[ \t\r\n]+/],
189 [/<\/script\s*>/, { token: '@rematch', next: '@pop' }],
190 ],
191 scriptEmbedded: [
192 [/<\/script/, { token: '@rematch', next: '@pop', nextEmbedded: '@pop' }],
193 [/[^<]+/, ''],
194 ],
195 style: [
196 [/type/, 'attribute.name', '@styleAfterType'],
197 [/"([^"]*)"/, 'attribute.value'],
198 [/'([^']*)'/, 'attribute.value'],
199 [/[\w\-]+/, 'attribute.name'],
200 [/=/, 'delimiter'],
201 [/>/, { token: 'delimiter', next: '@styleEmbedded', nextEmbedded: 'text/css' }],
202 [/[ \t\r\n]+/],
203 [/(<\/)(style\s*)(>)/, ['delimiter', 'tag', { token: 'delimiter', next: '@pop' }]],
204 ],
205 styleAfterType: [
206 [/=/, 'delimiter', '@styleAfterTypeEquals'],
207 [/>/, { token: 'delimiter', next: '@styleEmbedded', nextEmbedded: 'text/css' }],
208 [/[ \t\r\n]+/],
209 [/<\/style\s*>/, { token: '@rematch', next: '@pop' }],
210 ],
211 styleAfterTypeEquals: [
212 [/"([^"]*)"/, { token: 'attribute.value', switchTo: '@styleWithCustomType.$1' }],
213 [/'([^']*)'/, { token: 'attribute.value', switchTo: '@styleWithCustomType.$1' }],
214 [/>/, { token: 'delimiter', next: '@styleEmbedded', nextEmbedded: 'text/css' }],
215 [/[ \t\r\n]+/],
216 [/<\/style\s*>/, { token: '@rematch', next: '@pop' }],
217 ],
218 styleWithCustomType: [
219 [/>/, { token: 'delimiter', next: '@styleEmbedded.$S2', nextEmbedded: '$S2' }],
220 [/"([^"]*)"/, 'attribute.value'],
221 [/'([^']*)'/, 'attribute.value'],
222 [/[\w\-]+/, 'attribute.name'],
223 [/=/, 'delimiter'],
224 [/[ \t\r\n]+/],
225 [/<\/style\s*>/, { token: '@rematch', next: '@pop' }],
226 ],
227 styleEmbedded: [
228 [/<\/style/, { token: '@rematch', next: '@pop', nextEmbedded: '@pop' }],
229 [/[^<]+/, ''],
230 ],
231 },
232 }
233 return w($)
234 })()
235 return moduleExports
236})