diff options
| author | Pham Huy Hoang <hoangtun0810@gmail.com> | 2023-05-03 19:07:59 +0900 |
|---|---|---|
| committer | Christian Clason <c.clason@uni-graz.at> | 2023-08-12 17:34:15 +0200 |
| commit | 78b54eb7f6a9956d25a3911fa0dfd0cabfe2a4c5 (patch) | |
| tree | 87bc9ffd574b406ceaeb4ea4c32290e66145f587 /CONTRIBUTING.md | |
| parent | feat!: bump required Nvim version to 0.9.1 (diff) | |
| download | nvim-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.md | 27 |
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 |
