From 57f093d83641642ad5d4ba42ae59f03272efcfcc Mon Sep 17 00:00:00 2001 From: Ivan Isekeev Date: Wed, 9 Aug 2023 20:26:58 +0600 Subject: [PATCH] Jinja language family syntax support (#7233) * feat: add jinja language support * feat: add nunjucks language support * feat: add to lang support book jinja and nunjucks languages --- book/src/generated/lang-support.md | 2 ++ languages.toml | 22 ++++++++++++++++++++++ runtime/queries/jinja/highlights.scm | 7 +++++++ runtime/queries/jinja/injections.scm | 4 ++++ runtime/queries/nunjucks/highlights.scm | 1 + runtime/queries/nunjucks/injections.scm | 1 + 6 files changed, 37 insertions(+) create mode 100644 runtime/queries/jinja/highlights.scm create mode 100644 runtime/queries/jinja/injections.scm create mode 100644 runtime/queries/nunjucks/highlights.scm create mode 100644 runtime/queries/nunjucks/injections.scm diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md index 572654bd0..297f67af0 100644 --- a/book/src/generated/lang-support.md +++ b/book/src/generated/lang-support.md @@ -71,6 +71,7 @@ | ini | ✓ | | | | | java | ✓ | ✓ | ✓ | `jdtls` | | javascript | ✓ | ✓ | ✓ | `typescript-language-server` | +| jinja | ✓ | | | | | jsdoc | ✓ | | | | | json | ✓ | | ✓ | `vscode-json-language-server` | | jsonnet | ✓ | | | `jsonnet-language-server` | @@ -100,6 +101,7 @@ | nim | ✓ | ✓ | ✓ | `nimlangserver` | | nix | ✓ | | | `nil` | | nu | ✓ | | | | +| nunjucks | ✓ | | | | | ocaml | ✓ | | ✓ | `ocamllsp` | | ocaml-interface | ✓ | | | `ocamllsp` | | odin | ✓ | | ✓ | `ols` | diff --git a/languages.toml b/languages.toml index 20be54953..0e2178427 100644 --- a/languages.toml +++ b/languages.toml @@ -2702,6 +2702,28 @@ roots = [] indent = { tab-width = 2, unit = " " } grammar = "html" +[[language]] +name = "nunjucks" +scope = "text.html.nunjucks" +injection-regex = "nunjucks" +file-types = ["njk"] +roots = [] +indent = { tab-width = 2, unit = " " } +grammar = "jinja2" + +[[language]] +name = "jinja" +scope = "text.html.jinja" +injection-regex = "jinja" +file-types = ["jinja", "jinja2", "j2"] +roots = [] +indent = { tab-width = 2, unit = " " } +grammar = "jinja2" + +[[grammar]] +name = "jinja2" +source = { git = "https://github.com/varpeti/tree-sitter-jinja2", rev = "a533cd3c33aea6acb0f9bf9a56f35dcfe6a8eb53" } + [[grammar]] name = "wren" source = { git = "https://git.sr.ht/~jummit/tree-sitter-wren", rev = "793d58266924e6efcc40e411663393e9d72bec87"} diff --git a/runtime/queries/jinja/highlights.scm b/runtime/queries/jinja/highlights.scm new file mode 100644 index 000000000..3166ccbd9 --- /dev/null +++ b/runtime/queries/jinja/highlights.scm @@ -0,0 +1,7 @@ +(expression) @string +(statement) @variable.builtin +(keyword) @keyword +(comment) @comment +(identifier) @variable.parameter +(operator) @operator +(string) @string \ No newline at end of file diff --git a/runtime/queries/jinja/injections.scm b/runtime/queries/jinja/injections.scm new file mode 100644 index 000000000..8599722e0 --- /dev/null +++ b/runtime/queries/jinja/injections.scm @@ -0,0 +1,4 @@ +((source_file) @injection.content + (#set! injection.combined) + (#set! injection.include-children) + (#set! injection.language "html")) \ No newline at end of file diff --git a/runtime/queries/nunjucks/highlights.scm b/runtime/queries/nunjucks/highlights.scm new file mode 100644 index 000000000..d6bbc1970 --- /dev/null +++ b/runtime/queries/nunjucks/highlights.scm @@ -0,0 +1 @@ +; inherits: jinja \ No newline at end of file diff --git a/runtime/queries/nunjucks/injections.scm b/runtime/queries/nunjucks/injections.scm new file mode 100644 index 000000000..d6bbc1970 --- /dev/null +++ b/runtime/queries/nunjucks/injections.scm @@ -0,0 +1 @@ +; inherits: jinja \ No newline at end of file