123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- /*!-----------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Version: 0.31.1(337587859b1c171314b40503171188b6cea6a32a)
- * Released under the MIT license
- * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
- *-----------------------------------------------------------------------------*/
- define("vs/basic-languages/hcl/hcl",[],()=>{
- var moduleExports = (() => {
- var __defProp = Object.defineProperty;
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
- var __export = (target, all) => {
- __markAsModule(target);
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
- };
- // src/basic-languages/hcl/hcl.ts
- var hcl_exports = {};
- __export(hcl_exports, {
- conf: () => conf,
- language: () => language
- });
- var conf = {
- comments: {
- lineComment: "#",
- blockComment: ["/*", "*/"]
- },
- brackets: [
- ["{", "}"],
- ["[", "]"],
- ["(", ")"]
- ],
- autoClosingPairs: [
- { open: "{", close: "}" },
- { open: "[", close: "]" },
- { open: "(", close: ")" },
- { open: '"', close: '"', notIn: ["string"] }
- ],
- surroundingPairs: [
- { open: "{", close: "}" },
- { open: "[", close: "]" },
- { open: "(", close: ")" },
- { open: '"', close: '"' }
- ]
- };
- var language = {
- defaultToken: "",
- tokenPostfix: ".hcl",
- keywords: [
- "var",
- "local",
- "path",
- "for_each",
- "any",
- "string",
- "number",
- "bool",
- "true",
- "false",
- "null",
- "if ",
- "else ",
- "endif ",
- "for ",
- "in",
- "endfor"
- ],
- operators: [
- "=",
- ">=",
- "<=",
- "==",
- "!=",
- "+",
- "-",
- "*",
- "/",
- "%",
- "&&",
- "||",
- "!",
- "<",
- ">",
- "?",
- "...",
- ":"
- ],
- symbols: /[=><!~?:&|+\-*\/\^%]+/,
- escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
- terraformFunctions: /(abs|ceil|floor|log|max|min|pow|signum|chomp|format|formatlist|indent|join|lower|regex|regexall|replace|split|strrev|substr|title|trimspace|upper|chunklist|coalesce|coalescelist|compact|concat|contains|distinct|element|flatten|index|keys|length|list|lookup|map|matchkeys|merge|range|reverse|setintersection|setproduct|setunion|slice|sort|transpose|values|zipmap|base64decode|base64encode|base64gzip|csvdecode|jsondecode|jsonencode|urlencode|yamldecode|yamlencode|abspath|dirname|pathexpand|basename|file|fileexists|fileset|filebase64|templatefile|formatdate|timeadd|timestamp|base64sha256|base64sha512|bcrypt|filebase64sha256|filebase64sha512|filemd5|filemd1|filesha256|filesha512|md5|rsadecrypt|sha1|sha256|sha512|uuid|uuidv5|cidrhost|cidrnetmask|cidrsubnet|tobool|tolist|tomap|tonumber|toset|tostring)/,
- terraformMainBlocks: /(module|data|terraform|resource|provider|variable|output|locals)/,
- tokenizer: {
- root: [
- [
- /^@terraformMainBlocks([ \t]*)([\w-]+|"[\w-]+"|)([ \t]*)([\w-]+|"[\w-]+"|)([ \t]*)(\{)/,
- ["type", "", "string", "", "string", "", "@brackets"]
- ],
- [
- /(\w+[ \t]+)([ \t]*)([\w-]+|"[\w-]+"|)([ \t]*)([\w-]+|"[\w-]+"|)([ \t]*)(\{)/,
- ["identifier", "", "string", "", "string", "", "@brackets"]
- ],
- [
- /(\w+[ \t]+)([ \t]*)([\w-]+|"[\w-]+"|)([ \t]*)([\w-]+|"[\w-]+"|)(=)(\{)/,
- ["identifier", "", "string", "", "operator", "", "@brackets"]
- ],
- { include: "@terraform" }
- ],
- terraform: [
- [/@terraformFunctions(\()/, ["type", "@brackets"]],
- [
- /[a-zA-Z_]\w*-*/,
- {
- cases: {
- "@keywords": { token: "keyword.$0" },
- "@default": "variable"
- }
- }
- ],
- { include: "@whitespace" },
- { include: "@heredoc" },
- [/[{}()\[\]]/, "@brackets"],
- [/[<>](?!@symbols)/, "@brackets"],
- [
- /@symbols/,
- {
- cases: {
- "@operators": "operator",
- "@default": ""
- }
- }
- ],
- [/\d*\d+[eE]([\-+]?\d+)?/, "number.float"],
- [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"],
- [/\d[\d']*/, "number"],
- [/\d/, "number"],
- [/[;,.]/, "delimiter"],
- [/"/, "string", "@string"],
- [/'/, "invalid"]
- ],
- heredoc: [
- [/<<[-]*\s*["]?([\w\-]+)["]?/, { token: "string.heredoc.delimiter", next: "@heredocBody.$1" }]
- ],
- heredocBody: [
- [
- /([\w\-]+)$/,
- {
- cases: {
- "$1==$S2": [
- {
- token: "string.heredoc.delimiter",
- next: "@popall"
- }
- ],
- "@default": "string.heredoc"
- }
- }
- ],
- [/./, "string.heredoc"]
- ],
- whitespace: [
- [/[ \t\r\n]+/, ""],
- [/\/\*/, "comment", "@comment"],
- [/\/\/.*$/, "comment"],
- [/#.*$/, "comment"]
- ],
- comment: [
- [/[^\/*]+/, "comment"],
- [/\*\//, "comment", "@pop"],
- [/[\/*]/, "comment"]
- ],
- string: [
- [/\$\{/, { token: "delimiter", next: "@stringExpression" }],
- [/[^\\"\$]+/, "string"],
- [/@escapes/, "string.escape"],
- [/\\./, "string.escape.invalid"],
- [/"/, "string", "@popall"]
- ],
- stringInsideExpression: [
- [/[^\\"]+/, "string"],
- [/@escapes/, "string.escape"],
- [/\\./, "string.escape.invalid"],
- [/"/, "string", "@pop"]
- ],
- stringExpression: [
- [/\}/, { token: "delimiter", next: "@pop" }],
- [/"/, "string", "@stringInsideExpression"],
- { include: "@terraform" }
- ]
- }
- };
- return hcl_exports;
- })();
- return moduleExports;
- });
|