html.js 10.0 KB

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