html.js 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. /*!-----------------------------------------------------------------------------
  2. * Copyright (c) Microsoft Corporation. All rights reserved.
  3. * Version: 0.31.1(337587859b1c171314b40503171188b6cea6a32a)
  4. * Released under the MIT license
  5. * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
  6. *-----------------------------------------------------------------------------*/
  7. define("vs/basic-languages/html/html",[],()=>{
  8. var moduleExports = (() => {
  9. var __create = Object.create;
  10. var __defProp = Object.defineProperty;
  11. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  12. var __getOwnPropNames = Object.getOwnPropertyNames;
  13. var __getProtoOf = Object.getPrototypeOf;
  14. var __hasOwnProp = Object.prototype.hasOwnProperty;
  15. var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
  16. var __commonJS = (cb, mod) => function __require() {
  17. return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
  18. };
  19. var __export = (target, all) => {
  20. __markAsModule(target);
  21. for (var name in all)
  22. __defProp(target, name, { get: all[name], enumerable: true });
  23. };
  24. var __reExport = (target, module, desc) => {
  25. if (module && typeof module === "object" || typeof module === "function") {
  26. for (let key of __getOwnPropNames(module))
  27. if (!__hasOwnProp.call(target, key) && key !== "default")
  28. __defProp(target, key, { get: () => module[key], enumerable: !(desc = __getOwnPropDesc(module, key)) || desc.enumerable });
  29. }
  30. return target;
  31. };
  32. var __toModule = (module) => {
  33. return __reExport(__markAsModule(__defProp(module != null ? __create(__getProtoOf(module)) : {}, "default", module && module.__esModule && "default" in module ? { get: () => module.default, enumerable: true } : { value: module, enumerable: true })), module);
  34. };
  35. // build/fillers/monaco-editor-core-amd.ts
  36. var require_monaco_editor_core_amd = __commonJS({
  37. "build/fillers/monaco-editor-core-amd.ts"(exports, module) {
  38. module.exports = self.monaco;
  39. }
  40. });
  41. // src/basic-languages/html/html.ts
  42. var html_exports = {};
  43. __export(html_exports, {
  44. conf: () => conf,
  45. language: () => language
  46. });
  47. // src/fillers/monaco-editor-core.ts
  48. var monaco_editor_core_exports = {};
  49. __markAsModule(monaco_editor_core_exports);
  50. __reExport(monaco_editor_core_exports, __toModule(require_monaco_editor_core_amd()));
  51. // src/basic-languages/html/html.ts
  52. var EMPTY_ELEMENTS = [
  53. "area",
  54. "base",
  55. "br",
  56. "col",
  57. "embed",
  58. "hr",
  59. "img",
  60. "input",
  61. "keygen",
  62. "link",
  63. "menuitem",
  64. "meta",
  65. "param",
  66. "source",
  67. "track",
  68. "wbr"
  69. ];
  70. var conf = {
  71. wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,
  72. comments: {
  73. blockComment: ["<!--", "-->"]
  74. },
  75. brackets: [
  76. ["<!--", "-->"],
  77. ["<", ">"],
  78. ["{", "}"],
  79. ["(", ")"]
  80. ],
  81. autoClosingPairs: [
  82. { open: "{", close: "}" },
  83. { open: "[", close: "]" },
  84. { open: "(", close: ")" },
  85. { open: '"', close: '"' },
  86. { open: "'", close: "'" }
  87. ],
  88. surroundingPairs: [
  89. { open: '"', close: '"' },
  90. { open: "'", close: "'" },
  91. { open: "{", close: "}" },
  92. { open: "[", close: "]" },
  93. { open: "(", close: ")" },
  94. { open: "<", close: ">" }
  95. ],
  96. onEnterRules: [
  97. {
  98. beforeText: new RegExp(`<(?!(?:${EMPTY_ELEMENTS.join("|")}))([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`, "i"),
  99. afterText: /^<\/([_:\w][_:\w-.\d]*)\s*>$/i,
  100. action: {
  101. indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent
  102. }
  103. },
  104. {
  105. beforeText: new RegExp(`<(?!(?:${EMPTY_ELEMENTS.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`, "i"),
  106. action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent }
  107. }
  108. ],
  109. folding: {
  110. markers: {
  111. start: new RegExp("^\\s*<!--\\s*#region\\b.*-->"),
  112. end: new RegExp("^\\s*<!--\\s*#endregion\\b.*-->")
  113. }
  114. }
  115. };
  116. var language = {
  117. defaultToken: "",
  118. tokenPostfix: ".html",
  119. ignoreCase: true,
  120. tokenizer: {
  121. root: [
  122. [/<!DOCTYPE/, "metatag", "@doctype"],
  123. [/<!--/, "comment", "@comment"],
  124. [/(<)((?:[\w\-]+:)?[\w\-]+)(\s*)(\/>)/, ["delimiter", "tag", "", "delimiter"]],
  125. [/(<)(script)/, ["delimiter", { token: "tag", next: "@script" }]],
  126. [/(<)(style)/, ["delimiter", { token: "tag", next: "@style" }]],
  127. [/(<)((?:[\w\-]+:)?[\w\-]+)/, ["delimiter", { token: "tag", next: "@otherTag" }]],
  128. [/(<\/)((?:[\w\-]+:)?[\w\-]+)/, ["delimiter", { token: "tag", next: "@otherTag" }]],
  129. [/</, "delimiter"],
  130. [/[^<]+/]
  131. ],
  132. doctype: [
  133. [/[^>]+/, "metatag.content"],
  134. [/>/, "metatag", "@pop"]
  135. ],
  136. comment: [
  137. [/-->/, "comment", "@pop"],
  138. [/[^-]+/, "comment.content"],
  139. [/./, "comment.content"]
  140. ],
  141. otherTag: [
  142. [/\/?>/, "delimiter", "@pop"],
  143. [/"([^"]*)"/, "attribute.value"],
  144. [/'([^']*)'/, "attribute.value"],
  145. [/[\w\-]+/, "attribute.name"],
  146. [/=/, "delimiter"],
  147. [/[ \t\r\n]+/]
  148. ],
  149. script: [
  150. [/type/, "attribute.name", "@scriptAfterType"],
  151. [/"([^"]*)"/, "attribute.value"],
  152. [/'([^']*)'/, "attribute.value"],
  153. [/[\w\-]+/, "attribute.name"],
  154. [/=/, "delimiter"],
  155. [
  156. />/,
  157. {
  158. token: "delimiter",
  159. next: "@scriptEmbedded",
  160. nextEmbedded: "text/javascript"
  161. }
  162. ],
  163. [/[ \t\r\n]+/],
  164. [/(<\/)(script\s*)(>)/, ["delimiter", "tag", { token: "delimiter", next: "@pop" }]]
  165. ],
  166. scriptAfterType: [
  167. [/=/, "delimiter", "@scriptAfterTypeEquals"],
  168. [
  169. />/,
  170. {
  171. token: "delimiter",
  172. next: "@scriptEmbedded",
  173. nextEmbedded: "text/javascript"
  174. }
  175. ],
  176. [/[ \t\r\n]+/],
  177. [/<\/script\s*>/, { token: "@rematch", next: "@pop" }]
  178. ],
  179. scriptAfterTypeEquals: [
  180. [
  181. /"([^"]*)"/,
  182. {
  183. token: "attribute.value",
  184. switchTo: "@scriptWithCustomType.$1"
  185. }
  186. ],
  187. [
  188. /'([^']*)'/,
  189. {
  190. token: "attribute.value",
  191. switchTo: "@scriptWithCustomType.$1"
  192. }
  193. ],
  194. [
  195. />/,
  196. {
  197. token: "delimiter",
  198. next: "@scriptEmbedded",
  199. nextEmbedded: "text/javascript"
  200. }
  201. ],
  202. [/[ \t\r\n]+/],
  203. [/<\/script\s*>/, { token: "@rematch", next: "@pop" }]
  204. ],
  205. scriptWithCustomType: [
  206. [
  207. />/,
  208. {
  209. token: "delimiter",
  210. next: "@scriptEmbedded.$S2",
  211. nextEmbedded: "$S2"
  212. }
  213. ],
  214. [/"([^"]*)"/, "attribute.value"],
  215. [/'([^']*)'/, "attribute.value"],
  216. [/[\w\-]+/, "attribute.name"],
  217. [/=/, "delimiter"],
  218. [/[ \t\r\n]+/],
  219. [/<\/script\s*>/, { token: "@rematch", next: "@pop" }]
  220. ],
  221. scriptEmbedded: [
  222. [/<\/script/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }],
  223. [/[^<]+/, ""]
  224. ],
  225. style: [
  226. [/type/, "attribute.name", "@styleAfterType"],
  227. [/"([^"]*)"/, "attribute.value"],
  228. [/'([^']*)'/, "attribute.value"],
  229. [/[\w\-]+/, "attribute.name"],
  230. [/=/, "delimiter"],
  231. [
  232. />/,
  233. {
  234. token: "delimiter",
  235. next: "@styleEmbedded",
  236. nextEmbedded: "text/css"
  237. }
  238. ],
  239. [/[ \t\r\n]+/],
  240. [/(<\/)(style\s*)(>)/, ["delimiter", "tag", { token: "delimiter", next: "@pop" }]]
  241. ],
  242. styleAfterType: [
  243. [/=/, "delimiter", "@styleAfterTypeEquals"],
  244. [
  245. />/,
  246. {
  247. token: "delimiter",
  248. next: "@styleEmbedded",
  249. nextEmbedded: "text/css"
  250. }
  251. ],
  252. [/[ \t\r\n]+/],
  253. [/<\/style\s*>/, { token: "@rematch", next: "@pop" }]
  254. ],
  255. styleAfterTypeEquals: [
  256. [
  257. /"([^"]*)"/,
  258. {
  259. token: "attribute.value",
  260. switchTo: "@styleWithCustomType.$1"
  261. }
  262. ],
  263. [
  264. /'([^']*)'/,
  265. {
  266. token: "attribute.value",
  267. switchTo: "@styleWithCustomType.$1"
  268. }
  269. ],
  270. [
  271. />/,
  272. {
  273. token: "delimiter",
  274. next: "@styleEmbedded",
  275. nextEmbedded: "text/css"
  276. }
  277. ],
  278. [/[ \t\r\n]+/],
  279. [/<\/style\s*>/, { token: "@rematch", next: "@pop" }]
  280. ],
  281. styleWithCustomType: [
  282. [
  283. />/,
  284. {
  285. token: "delimiter",
  286. next: "@styleEmbedded.$S2",
  287. nextEmbedded: "$S2"
  288. }
  289. ],
  290. [/"([^"]*)"/, "attribute.value"],
  291. [/'([^']*)'/, "attribute.value"],
  292. [/[\w\-]+/, "attribute.name"],
  293. [/=/, "delimiter"],
  294. [/[ \t\r\n]+/],
  295. [/<\/style\s*>/, { token: "@rematch", next: "@pop" }]
  296. ],
  297. styleEmbedded: [
  298. [/<\/style/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }],
  299. [/[^<]+/, ""]
  300. ]
  301. }
  302. };
  303. return html_exports;
  304. })();
  305. return moduleExports;
  306. });