Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--book/src/generated/lang-support.md1
-rw-r--r--languages.toml13
-rw-r--r--runtime/queries/docker-bake/folds.scm1
-rw-r--r--runtime/queries/docker-bake/highlights.scm1
-rw-r--r--runtime/queries/docker-bake/indents.scm1
-rw-r--r--runtime/queries/docker-bake/injections.scm23
-rw-r--r--runtime/queries/docker-bake/rainbows.scm1
-rw-r--r--runtime/queries/docker-bake/tags.scm33
-rw-r--r--runtime/queries/docker-bake/textobjects.scm1
9 files changed, 75 insertions, 0 deletions
diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md
index 49c28277..7c93aae1 100644
--- a/book/src/generated/lang-support.md
+++ b/book/src/generated/lang-support.md
@@ -49,6 +49,7 @@
| docker-compose | ✓ | ✓ | ✓ | | | `docker-compose-langserver`, `yaml-language-server` |
| dockerfile | ✓ | ✓ | | | | `docker-langserver` |
| dot | ✓ | | | | | `dot-language-server` |
+| docker-bake | ✓ | ✓ | ✓ | ✓ | ✓ | |
| doxyfile | ✓ | ✓ | ✓ | ✓ | | |
| dtd | ✓ | | | | | |
| dune | ✓ | | | | | |
diff --git a/languages.toml b/languages.toml
index 6fe5d4ce..4348792b 100644
--- a/languages.toml
+++ b/languages.toml
@@ -4750,3 +4750,16 @@ scope = "source.strictdoc"
injection-regex = "strictdoc"
file-types = ["sdoc", "sgra"]
comment-token = ".."
+
+[[language]]
+name = "docker-bake"
+scope = "source.docker-bake"
+injection-regex = "docker-bake"
+grammar = "hcl"
+file-types = [
+ { glob = "docker-bake.hcl" },
+ { glob = "docker-bake.override.hcl" },
+]
+comment-token = "#"
+block-comment-tokens = { start = "/*", end = "*/" }
+indent = { tab-width = 2, unit = " " }
diff --git a/runtime/queries/docker-bake/folds.scm b/runtime/queries/docker-bake/folds.scm
new file mode 100644
index 00000000..0e5ffc2d
--- /dev/null
+++ b/runtime/queries/docker-bake/folds.scm
@@ -0,0 +1 @@
+; inherits: hcl
diff --git a/runtime/queries/docker-bake/highlights.scm b/runtime/queries/docker-bake/highlights.scm
new file mode 100644
index 00000000..0e5ffc2d
--- /dev/null
+++ b/runtime/queries/docker-bake/highlights.scm
@@ -0,0 +1 @@
+; inherits: hcl
diff --git a/runtime/queries/docker-bake/indents.scm b/runtime/queries/docker-bake/indents.scm
new file mode 100644
index 00000000..0e5ffc2d
--- /dev/null
+++ b/runtime/queries/docker-bake/indents.scm
@@ -0,0 +1 @@
+; inherits: hcl
diff --git a/runtime/queries/docker-bake/injections.scm b/runtime/queries/docker-bake/injections.scm
new file mode 100644
index 00000000..6028785d
--- /dev/null
+++ b/runtime/queries/docker-bake/injections.scm
@@ -0,0 +1,23 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
+
+; https://docs.docker.com/build/bake/reference/#targetdockerfile-inline
+(block
+ (identifier) @_target (#eq? @_target "target")
+ (body
+ (attribute
+ (identifier) @_attr (#eq? @_attr "dockerfile-inline")
+ (expression
+ (template_expr
+ (heredoc_template
+ (template_literal) @injection.content)))))
+ (#set! injection.language "dockerfile"))
+
+(function_call
+ (identifier) @_name (#eq? @_name "regex")
+ (function_arguments
+ (expression
+ (literal_value
+ (string_lit
+ (template_literal) @injection.content))))
+ (#set! injection.language "regex"))
diff --git a/runtime/queries/docker-bake/rainbows.scm b/runtime/queries/docker-bake/rainbows.scm
new file mode 100644
index 00000000..0e5ffc2d
--- /dev/null
+++ b/runtime/queries/docker-bake/rainbows.scm
@@ -0,0 +1 @@
+; inherits: hcl
diff --git a/runtime/queries/docker-bake/tags.scm b/runtime/queries/docker-bake/tags.scm
new file mode 100644
index 00000000..e005272a
--- /dev/null
+++ b/runtime/queries/docker-bake/tags.scm
@@ -0,0 +1,33 @@
+; group
+; target
+; function
+; variable
+
+
+(block
+ (identifier) @_block (#eq? @_block "group")
+ (string_lit
+ (template_literal) @name)) @definition.module
+
+(block
+ (identifier) @_block (#eq? @_block "target")
+ (string_lit
+ (template_literal) @name)) @definition.struct
+
+(block
+ (identifier) @_block (#eq? @_block "function")
+ (string_lit
+ (template_literal) @name)) @definition.function
+
+(block
+ (identifier) @_block (#eq? @_block "variable")
+ (string_lit
+ (template_literal) @name)) @definition.constant
+
+
+; (config_file
+; (body
+; (block
+; (identifier) @_block (#eq? @_block "function")
+; (string_lit
+; (template_literal) @name)) @definition.function))
diff --git a/runtime/queries/docker-bake/textobjects.scm b/runtime/queries/docker-bake/textobjects.scm
new file mode 100644
index 00000000..0e5ffc2d
--- /dev/null
+++ b/runtime/queries/docker-bake/textobjects.scm
@@ -0,0 +1 @@
+; inherits: hcl