aboutsummaryrefslogtreecommitdiffstats
path: root/CONTRIBUTING.md
diff options
context:
space:
mode:
authorPham Huy Hoang <hoangtun0810@gmail.com>2023-05-03 19:07:59 +0900
committerChristian Clason <c.clason@uni-graz.at>2023-08-12 17:34:15 +0200
commit78b54eb7f6a9956d25a3911fa0dfd0cabfe2a4c5 (patch)
tree87bc9ffd574b406ceaeb4ea4c32290e66145f587 /CONTRIBUTING.md
parentfeat!: bump required Nvim version to 0.9.1 (diff)
downloadnvim-treesitter-78b54eb7f6a9956d25a3911fa0dfd0cabfe2a4c5.tar
nvim-treesitter-78b54eb7f6a9956d25a3911fa0dfd0cabfe2a4c5.tar.gz
nvim-treesitter-78b54eb7f6a9956d25a3911fa0dfd0cabfe2a4c5.tar.bz2
nvim-treesitter-78b54eb7f6a9956d25a3911fa0dfd0cabfe2a4c5.tar.lz
nvim-treesitter-78b54eb7f6a9956d25a3911fa0dfd0cabfe2a4c5.tar.xz
nvim-treesitter-78b54eb7f6a9956d25a3911fa0dfd0cabfe2a4c5.tar.zst
nvim-treesitter-78b54eb7f6a9956d25a3911fa0dfd0cabfe2a4c5.zip
chore(injections)!: update injection syntax to 0.9
Since 0.9, @lang syntax is still available as fallback but will soon be deprecated. Because of that, new syntax should be adopted once 0.9 becomes the baseline requirements for nvim-treesitter - update health check - update doc
Diffstat (limited to 'CONTRIBUTING.md')
-rw-r--r--CONTRIBUTING.md27
1 files changed, 20 insertions, 7 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 2d06c3525..cc0a385d4 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -318,19 +318,32 @@ query.
### Injections
Some captures are related to language injection (like markdown code blocks). They are used in `injections.scm`.
-You can directly use the name of the language that you want to inject (e.g. `@html` to inject html).
-If you want to dynamically detect the language (e.g. for Markdown blocks) use the `@language` to capture
-the node describing the language and `@content` to describe the injection region.
+If you want to dynamically detect the language (e.g. for Markdown blocks) use the `@injection.language` to capture
+the node describing the language and `@injection.content` to describe the injection region.
```scheme
-@{lang} ; e.g. @html to describe a html region
+@injection.language ; dynamic detection of the injection language (i.e. the text of the captured node describes the language)
+@injection.content ; region for the dynamically detected language
+```
+
+For example, to inject javascript into HTML's `<script>` tag
-@language ; dynamic detection of the injection language (i.e. the text of the captured node describes the language)
-@content ; region for the dynamically detected language
-@combined ; combine all matches of a pattern as one single block of content
+```html
+<script>someJsCode();</script>
```
+```query
+(script_element
+ (raw_text) @injection.content
+ (#set! injection.language "javascript")) ; set the parser language for @injection.content region to javascript
+```
+
+For regions that don't have a corresponding `@injection.language`, you need to manually set the language
+through `(#set injection.language "lang_name")`
+
+To combine all matches of a pattern as one single block of content, add `(#set! injection.combined)` to such pattern
+
### Indents
```scheme