diff --git a/.gitmodules b/.gitmodules index 0350bf6..d76c3a0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -13,3 +13,6 @@ [submodule "vendor/highlightjs-solidity"] path = vendor/highlightjs-solidity url = https://github.com/highlightjs/highlightjs-solidity.git +[submodule "vendor/highlightjs-terraform"] + path = vendor/highlightjs-terraform + url = https://github.com/highlightjs/highlightjs-terraform diff --git a/highlight/lib/languages/all.dart b/highlight/lib/languages/all.dart index ccde6f4..1094c8b 100644 --- a/highlight/lib/languages/all.dart +++ b/highlight/lib/languages/all.dart @@ -187,12 +187,14 @@ import 'vue.dart'; import 'graphql.dart'; import 'gn.dart'; import 'solidity.dart'; +import 'terraform.dart'; final communityLanguages = { 'vue': vue, 'graphql': graphql, 'gn': gn, 'solidity': solidity, + 'terraform': terraform, }; final builtinLanguages = { '1c': lang1C, diff --git a/highlight/lib/languages/terraform.dart b/highlight/lib/languages/terraform.dart new file mode 100644 index 0000000..6635eec --- /dev/null +++ b/highlight/lib/languages/terraform.dart @@ -0,0 +1,68 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +import '../src/mode.dart'; +import '../src/common_modes.dart'; + +final terraform = Mode( + refs: { + '~contains~1': + Mode(className: "number", begin: "\\b\\d+(\\.\\d+)?", relevance: 0), + }, + aliases: ["tf", "hcl"], + keywords: + "resource variable provider output locals module data terraform|10", + literal: "false true null", + contains: [ + Mode(className: "comment", begin: "\\#", end: "\$", contains: [ + PHRASAL_WORDS_MODE, + Mode( + className: "doctag", + begin: "(?:TODO|FIXME|NOTE|BUG|XXX):", + relevance: 0) + ]), + Mode(ref: '~contains~1'), + Mode(className: "string", begin: "\"", end: "\"", contains: [ + Mode( + className: "variable", + begin: "\\\${", + end: "\\}", + relevance: 9, + contains: [ + Mode(className: "string", begin: "\"", end: "\""), + Mode( + className: "meta", + begin: "[A-Za-z_0-9]*\\(", + end: "\\)", + contains: [ + Mode(ref: '~contains~1'), + Mode( + className: "string", + begin: "\"", + end: "\"", + contains: [ + Mode( + className: "variable", + begin: "\\\${", + end: "\\}", + contains: [ + Mode( + className: "string", + begin: "\"", + end: "\"", + contains: [ + Mode( + className: "variable", + begin: "\\\${", + end: "\\}") + ]), + Mode( + className: "meta", + begin: "[A-Za-z_0-9]*\\(", + end: "\\)") + ]) + ]), + Mode(self: true) + ]) + ]) + ]) + ]); diff --git a/tool/highlight.js b/tool/highlight.js index 25c649f..17e7c53 100644 --- a/tool/highlight.js +++ b/tool/highlight.js @@ -133,6 +133,11 @@ export function allModes() { name: "solidity", factory: require("../vendor/highlightjs-solidity").definer, community: true + }, + { + name: "terraform", + factory: require("../vendor/highlightjs-terraform").definer, + community: true } ]; diff --git a/vendor/highlightjs-terraform b/vendor/highlightjs-terraform new file mode 160000 index 0000000..e5e42f6 --- /dev/null +++ b/vendor/highlightjs-terraform @@ -0,0 +1 @@ +Subproject commit e5e42f6b9ee682f659a7d00d5218204fac7b04a9