shell.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  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/shell/shell",[],()=>{
  8. var moduleExports = (() => {
  9. var __defProp = Object.defineProperty;
  10. var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
  11. var __export = (target, all) => {
  12. __markAsModule(target);
  13. for (var name in all)
  14. __defProp(target, name, { get: all[name], enumerable: true });
  15. };
  16. // src/basic-languages/shell/shell.ts
  17. var shell_exports = {};
  18. __export(shell_exports, {
  19. conf: () => conf,
  20. language: () => language
  21. });
  22. var conf = {
  23. comments: {
  24. lineComment: "#"
  25. },
  26. brackets: [
  27. ["{", "}"],
  28. ["[", "]"],
  29. ["(", ")"]
  30. ],
  31. autoClosingPairs: [
  32. { open: "{", close: "}" },
  33. { open: "[", close: "]" },
  34. { open: "(", close: ")" },
  35. { open: '"', close: '"' },
  36. { open: "'", close: "'" },
  37. { open: "`", close: "`" }
  38. ],
  39. surroundingPairs: [
  40. { open: "{", close: "}" },
  41. { open: "[", close: "]" },
  42. { open: "(", close: ")" },
  43. { open: '"', close: '"' },
  44. { open: "'", close: "'" },
  45. { open: "`", close: "`" }
  46. ]
  47. };
  48. var language = {
  49. defaultToken: "",
  50. ignoreCase: true,
  51. tokenPostfix: ".shell",
  52. brackets: [
  53. { token: "delimiter.bracket", open: "{", close: "}" },
  54. { token: "delimiter.parenthesis", open: "(", close: ")" },
  55. { token: "delimiter.square", open: "[", close: "]" }
  56. ],
  57. keywords: [
  58. "if",
  59. "then",
  60. "do",
  61. "else",
  62. "elif",
  63. "while",
  64. "until",
  65. "for",
  66. "in",
  67. "esac",
  68. "fi",
  69. "fin",
  70. "fil",
  71. "done",
  72. "exit",
  73. "set",
  74. "unset",
  75. "export",
  76. "function"
  77. ],
  78. builtins: [
  79. "ab",
  80. "awk",
  81. "bash",
  82. "beep",
  83. "cat",
  84. "cc",
  85. "cd",
  86. "chown",
  87. "chmod",
  88. "chroot",
  89. "clear",
  90. "cp",
  91. "curl",
  92. "cut",
  93. "diff",
  94. "echo",
  95. "find",
  96. "gawk",
  97. "gcc",
  98. "get",
  99. "git",
  100. "grep",
  101. "hg",
  102. "kill",
  103. "killall",
  104. "ln",
  105. "ls",
  106. "make",
  107. "mkdir",
  108. "openssl",
  109. "mv",
  110. "nc",
  111. "node",
  112. "npm",
  113. "ping",
  114. "ps",
  115. "restart",
  116. "rm",
  117. "rmdir",
  118. "sed",
  119. "service",
  120. "sh",
  121. "shopt",
  122. "shred",
  123. "source",
  124. "sort",
  125. "sleep",
  126. "ssh",
  127. "start",
  128. "stop",
  129. "su",
  130. "sudo",
  131. "svn",
  132. "tee",
  133. "telnet",
  134. "top",
  135. "touch",
  136. "vi",
  137. "vim",
  138. "wall",
  139. "wc",
  140. "wget",
  141. "who",
  142. "write",
  143. "yes",
  144. "zsh"
  145. ],
  146. symbols: /[=><!~?&|+\-*\/\^;\.,]+/,
  147. tokenizer: {
  148. root: [
  149. { include: "@whitespace" },
  150. [
  151. /[a-zA-Z]\w*/,
  152. {
  153. cases: {
  154. "@keywords": "keyword",
  155. "@builtins": "type.identifier",
  156. "@default": ""
  157. }
  158. }
  159. ],
  160. { include: "@strings" },
  161. { include: "@parameters" },
  162. { include: "@heredoc" },
  163. [/[{}\[\]()]/, "@brackets"],
  164. [/-+\w+/, "attribute.name"],
  165. [/@symbols/, "delimiter"],
  166. { include: "@numbers" },
  167. [/[,;]/, "delimiter"]
  168. ],
  169. whitespace: [
  170. [/\s+/, "white"],
  171. [/(^#!.*$)/, "metatag"],
  172. [/(^#.*$)/, "comment"]
  173. ],
  174. numbers: [
  175. [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"],
  176. [/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, "number.hex"],
  177. [/\d+/, "number"]
  178. ],
  179. strings: [
  180. [/'/, "string", "@stringBody"],
  181. [/"/, "string", "@dblStringBody"]
  182. ],
  183. stringBody: [
  184. [/'/, "string", "@popall"],
  185. [/./, "string"]
  186. ],
  187. dblStringBody: [
  188. [/"/, "string", "@popall"],
  189. [/./, "string"]
  190. ],
  191. heredoc: [
  192. [
  193. /(<<[-<]?)(\s*)(['"`]?)([\w\-]+)(['"`]?)/,
  194. [
  195. "constants",
  196. "white",
  197. "string.heredoc.delimiter",
  198. "string.heredoc",
  199. "string.heredoc.delimiter"
  200. ]
  201. ]
  202. ],
  203. parameters: [
  204. [/\$\d+/, "variable.predefined"],
  205. [/\$\w+/, "variable"],
  206. [/\$[*@#?\-$!0_]/, "variable"],
  207. [/\$'/, "variable", "@parameterBodyQuote"],
  208. [/\$"/, "variable", "@parameterBodyDoubleQuote"],
  209. [/\$\(/, "variable", "@parameterBodyParen"],
  210. [/\$\{/, "variable", "@parameterBodyCurlyBrace"]
  211. ],
  212. parameterBodyQuote: [
  213. [/[^#:%*@\-!_']+/, "variable"],
  214. [/[#:%*@\-!_]/, "delimiter"],
  215. [/[']/, "variable", "@pop"]
  216. ],
  217. parameterBodyDoubleQuote: [
  218. [/[^#:%*@\-!_"]+/, "variable"],
  219. [/[#:%*@\-!_]/, "delimiter"],
  220. [/["]/, "variable", "@pop"]
  221. ],
  222. parameterBodyParen: [
  223. [/[^#:%*@\-!_)]+/, "variable"],
  224. [/[#:%*@\-!_]/, "delimiter"],
  225. [/[)]/, "variable", "@pop"]
  226. ],
  227. parameterBodyCurlyBrace: [
  228. [/[^#:%*@\-!_}]+/, "variable"],
  229. [/[#:%*@\-!_]/, "delimiter"],
  230. [/[}]/, "variable", "@pop"]
  231. ]
  232. }
  233. };
  234. return shell_exports;
  235. })();
  236. return moduleExports;
  237. });