You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Tree-sitter查询嵌入语言中的节点?

解决Tree-sitter查询嵌入语言节点的问题

你遇到的问题核心是:在主语言(Markdown)的查询语句中,无法直接引用嵌入语言(R)的节点类型,因为主查询的上下文只识别主语言的节点结构。

两种可行的解决方案:

1. 在主语言查询中通过节点路径定位嵌入语言的节点

直接在Markdown的查询文件里,先匹配到承载嵌入代码的节点,再深入到嵌入语言的节点结构中。针对你的场景,可用以下查询语句:

(fenced_code_block
  (info_string (language) @_lang (#eq? @_lang "r")) ; 可选:限定仅匹配R代码块
  (code_fence_content
    (program
      (comment) @comment)
  )
)

如果不需要限定代码块语言,也可以简化为:

(code_fence_content
  (program
    (comment) @comment)
)

2. 单独为嵌入语言编写查询文件

Tree-sitter会自动对注入的代码块应用对应语言的查询规则。你可以创建R语言的查询文件,在里面直接写:

(comment) @comment

这样所有注入的R代码块中的注释都会被正确匹配。

内容的提问来源于stack exchange,提问作者wurli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 17:53:22