From 78b54eb7f6a9956d25a3911fa0dfd0cabfe2a4c5 Mon Sep 17 00:00:00 2001 From: Pham Huy Hoang Date: Wed, 3 May 2023 19:07:59 +0900 Subject: 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 --- CONTRIBUTING.md | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) (limited to 'CONTRIBUTING.md') 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 ` ``` +```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 -- cgit v1.2.3-70-g09d2