如何使用tree-sitter查询嵌入式语言?

问题描述 投票:0回答:1

例如,如果我有以下 markdown 文件:

# Title


``` r
# Comment
123
```

Treesitter 给了我以下语言树:

(document ; [0, 0] - [8, 0]
  (section ; [0, 0] - [8, 0]
    (atx_heading ; [0, 0] - [1, 0]
      (atx_h1_marker) ; [0, 0] - [0, 1]
      heading_content: (inline ; [0, 2] - [0, 7]
        (inline))) ; [0, 2] - [0, 7]
    (fenced_code_block ; [3, 0] - [7, 0]
      (fenced_code_block_delimiter) ; [3, 0] - [3, 3]
      (info_string ; [3, 4] - [3, 5]
        (language)) ; [3, 4] - [3, 5]
      (block_continuation) ; [4, 0] - [4, 0]
      (code_fence_content ; [4, 0] - [6, 0]
        (program ; [4, 0] - [6, 0]
          (comment) ; [4, 0] - [4, 9]
          (float)) ; [5, 0] - [5, 3]
        (block_continuation) ; [5, 0] - [5, 0]
        (block_continuation)) ; [6, 0] - [6, 0]
      (fenced_code_block_delimiter)) ; [6, 0] - [6, 3]
    (fenced_code_block ; [7, 0] - [8, 0]
      (fenced_code_block_delimiter)))) ; [7, 0] - [7, 4]

如树所示,

comment
被识别为 R 代码块中第一行的节点类型。但是,我无法编写查询来匹配此评论,因为 R 是树中的嵌入式语言。

这是我正在使用的查询:

(comment) @comment

这会产生错误

Invalid node type "comment"

据我所知,注入语言的树守护者文档仅描述了如何注入语言本身,而不是如何查询已嵌入的语言。

neovim treesitter
1个回答
0
投票

如果您对可靠的黑客感兴趣,可以访问和监控任何手机、WhatsApp Messenger、Facebook 并恢复 Gmail 密码,请联系经验丰富的黑客,他帮助我找到了与我丈夫不忠的女士。您可以通过电子邮件联系他 ([email protected]) 告诉他您看到了我的评论,谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.