ini.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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. // src/basic-languages/ini/ini.ts
  8. var conf = {
  9. comments: {
  10. lineComment: "#"
  11. },
  12. brackets: [
  13. ["{", "}"],
  14. ["[", "]"],
  15. ["(", ")"]
  16. ],
  17. autoClosingPairs: [
  18. { open: "{", close: "}" },
  19. { open: "[", close: "]" },
  20. { open: "(", close: ")" },
  21. { open: '"', close: '"' },
  22. { open: "'", close: "'" }
  23. ],
  24. surroundingPairs: [
  25. { open: "{", close: "}" },
  26. { open: "[", close: "]" },
  27. { open: "(", close: ")" },
  28. { open: '"', close: '"' },
  29. { open: "'", close: "'" }
  30. ]
  31. };
  32. var language = {
  33. defaultToken: "",
  34. tokenPostfix: ".ini",
  35. escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
  36. tokenizer: {
  37. root: [
  38. [/^\[[^\]]*\]/, "metatag"],
  39. [/(^\w+)(\s*)(\=)/, ["key", "", "delimiter"]],
  40. { include: "@whitespace" },
  41. [/\d+/, "number"],
  42. [/"([^"\\]|\\.)*$/, "string.invalid"],
  43. [/'([^'\\]|\\.)*$/, "string.invalid"],
  44. [/"/, "string", '@string."'],
  45. [/'/, "string", "@string.'"]
  46. ],
  47. whitespace: [
  48. [/[ \t\r\n]+/, ""],
  49. [/^\s*[#;].*$/, "comment"]
  50. ],
  51. string: [
  52. [/[^\\"']+/, "string"],
  53. [/@escapes/, "string.escape"],
  54. [/\\./, "string.escape.invalid"],
  55. [
  56. /["']/,
  57. {
  58. cases: {
  59. "$#==$S2": { token: "string", next: "@pop" },
  60. "@default": "string"
  61. }
  62. }
  63. ]
  64. ]
  65. }
  66. };
  67. export {
  68. conf,
  69. language
  70. };