From 8ca5d072550a368ca2417ff0cb8db2a42ea461e7 Mon Sep 17 00:00:00 2001 From: omentic Date: Wed, 1 May 2024 23:29:54 +0000 Subject: deploy: 12eec890240a05d1e090114f7f4fdd7c1ee8ff88 --- 24.03.1/guides/injection.html | 302 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 302 insertions(+) create mode 100644 24.03.1/guides/injection.html (limited to '24.03.1/guides/injection.html') diff --git a/24.03.1/guides/injection.html b/24.03.1/guides/injection.html new file mode 100644 index 00000000..f4fe238b --- /dev/null +++ b/24.03.1/guides/injection.html @@ -0,0 +1,302 @@ + + + + + + Adding injection queries + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Adding Injection Queries

+

Writing language injection queries allows one to highlight a specific node as a different language. +In addition to the standard language injection options used by tree-sitter, there +are a few Helix specific extensions that allow for more control.

+

And example of a simple query that would highlight all strings as bash in Nix:

+
((string_expression (string_fragment) @injection.content)
+  (#set! injection.language "bash"))
+
+

Capture Types

+
    +
  • +

    @injection.language (standard): +The captured node may contain the language name used to highlight the node captured by +@injection.content.

    +
  • +
  • +

    @injection.content (standard): +Marks the content to be highlighted as the language captured with @injection.language et al.

    +
  • +
  • +

    @injection.filename (extension): +The captured node may contain a filename with a file-extension known to Helix, +highlighting @injection.content as that language. This uses the language extensions defined in +both the default languages.toml distributed with Helix, as well as user defined languages.

    +
  • +
  • +

    @injection.shebang (extension): +The captured node may contain a shebang used to choose a language to highlight as. This also uses +the shebangs defined in the default and user languages.toml.

    +
  • +
+

Settings

+
    +
  • +

    injection.combined (standard): +Indicates that all the matching nodes in the tree should have their content parsed as one +nested document.

    +
  • +
  • +

    injection.language (standard): +Forces the captured content to be highlighted as the given language

    +
  • +
  • +

    injection.include-children (standard): +Indicates that the content node’s entire text should be re-parsed, including the text of its child +nodes. By default, child nodes’ text will be excluded from the injected document.

    +
  • +
  • +

    injection.include-unnamed-children (extension): +Same as injection.include-children but only for unnamed child nodes.

    +
  • +
+

Predicates

+
    +
  • +

    #eq? (standard): +The first argument (a capture) must be equal to the second argument +(a capture or a string).

    +
  • +
  • +

    #match? (standard): +The first argument (a capture) must match the regex given in the +second argument (a string).

    +
  • +
  • +

    #any-of? (standard): +The first argument (a capture) must be one of the other arguments (strings).

    +
  • +
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + +
+ + -- cgit v1.2.3-70-g09d2