问题标签 [treesitter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
path - Tree-Sitter.py 所有叶子到叶子的路径
我正在尝试从使用 tree-sitter 创建的语法树中提取所有叶子到叶子的路径,以在 code2vec 中使用,但我无法弄清楚如何识别叶子以及如何设计算法。
syntax - YAML 使用 neovim 和 treesitter 缩进?
我最近升级到 neovim 0.5.0,我一直在尝试用 treesitter 替换旧语法和缩进插件。在编辑 YAML 文件时,我在让事情正常工作时遇到了一些问题。
我的init.lua
文件中有以下内容:
运行:checkhealth
报告
但是当我创建一个 YAML 文件时,例如......
...然后光标在下一行的第 0 列结束,而不是按要求缩进。这种行为在文件的其余部分仍然存在:不管 YAML 语法如何,光标总是在返回时转到第 0 列
我知道treesitter缩进支持被认为是“实验性的”。这是刚刚坏了,还是我配置错误?
grammar - 类似结构的树保姆匹配
我正在尝试为 Minecraft 函数语法创建一个树保姆。
该语言的结构如下所示:
在上面的示例中,我对第二个参数(目标选择器)中的值有疑问。这个值可以是很多东西,比如字符串、数字、布尔值和两个类似的对象结构(NBT 和记分牌对象)。
以下是每个示例:
NBT
记分牌对象
我的语法文件包含以下代码:
但是,如果我编译和解析test @e[scores={example=1..}]
,我会得到:
预期:而不是ERROR
,它应该是selector_score
,并且应该有一个score_key
and score_value
。
selector_nbt
如果我从中删除序列,则不会发生这种情况selector_object
。但是,如果在使用 nbt 数据的命令上运行解析(使用两个序列或仅使用selector_nbt
),则不会出现错误。
我究竟做错了什么?
atom-editor - Atom 在使用自定义语法时随机停止正确突出显示
作为一个练习,我正在构建一种类似汇编的语言(但通过数字),所以我想为它制作自己的语法。但是语法随机停止工作。这是 tree-sitter-dasm.cson(dasm 是临时名称)。
有时它可以工作,但一段时间后它会停止工作(即使我没有改变任何东西)。
这是给我带来麻烦的代码:
我检查了我正在使用的自定义解析器,它按预期工作。
package.json 配置为:
示例文件: 错误突出显示的文件
treesitter - 保姆,如何正确使用“包罗万象”的规则?
我有这样的语法:
tail
规则假设捕获之后的任何东西uninomial
。但是我在这个测试中遇到了麻烦:
生产:
(source_file (uninomial) (tail))
代替
(source_file (uninomial (genus) (subgenus)))
更改优先级似乎不会影响此行为。有没有办法制定一个“包罗万象”的规则,比如tail
只有在所有其他以前的规则都失败的情况下才参与?
colors - 如何修复 NeoSolarized 红色支架
我已经切换到使用 NeoVim 并且我决定使用的颜色方案是NeoSolarized,此外我还安装了 treesitter 以改进语法突出显示,并且我已经通过运行成功安装了 c++ 解析器TSInstall cpp
,但是我遇到了一个小问题,现在我所有的括号、括号和分号都是红色的:
我想知道是否有办法让我摆脱这些红色的括号和分号,这样我就可以把它们变成灰色
neovim - Nvim-treesitter 颜色不会传递给 :TOhtml
我试图了解如何将 Neovim 中的代码复制为 RTF。到目前为止,我认为最简单的方法是将代码转换为 HTML,然后将 HTML 转换为 RTF,因此使用:TOhtml
应该将给定的范围转换为 HTML 并根据 Nvim 编辑器中的颜色对其进行着色,但是在使用树时-保姆颜色不会转换。
当我在没有treesitter的情况下将代码转换为HTML时,我得到:
但是当我使用treesitter时,我得到:
所以我需要帮助:TOhtml
来使用treesitter或任何其他方式从Linux上的Neovim复制为RTF。
typescript - 如何从 tree-sitter 中的函数中提取第一个参数
鉴于我在 JavaScript/Typescript 中有以下代码:
我想使用 tree-sitter 查询匹配每个函数调用的第一个参数。
这是我要去的地方,它匹配所有参数
我如何只匹配第一个参数?
作为奖励挑战,我可以匹配findOne
仅调用函数的第一个参数吗?
treesitter - 如何仅在 tree-sitter 中匹配字符串值
鉴于我在 JavaScript/Typescript 中有以下代码:
我想仅使用 tree-sitter 查询来匹配字符串值。
这是我要去的地方,它匹配整个字符串,包括引号
我可以匹配testing
而不匹配'testing'
吗?
treesitter - 遍历所有树节点?
我正在使用py-tree-sitter
此代码按顺序遍历整个节点树(代码来自此 github 问题:https ://github.com/tree-sitter/py-tree-sitter/issues/33#issuecomment-864557166 ):
我正在使用此代码进行语法突出显示,并且此方法不会给出空标记,例如whitespace
和newline
不属于另一个AST
标记的部分。
这是获取树中所有节点的正确方法吗?
谢谢