/*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.36.1(6c56744c3419458f0dd48864520b759d1a3a1ca8) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/ // src/basic-languages/hcl/hcl.ts 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: /[=>](?!@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" } ] } }; export { conf, language };