emacs-29 go-ts-mode 标识符中文字符 face 不正确 && 如何正确报bug?

go-ts-mode:

Xnip2023-02-02_18-49-46

go-mode

Xnip2023-02-02_18-49-13

我发了个 M-x report-emacs-bug 了这个问题,但是在 emacs bug archive 里没有搜到,是还有什么额外步骤吗?

中文字符主要是自己写给自己看以及看别人的中式英语直接 rename 成中文方便理解(原谅英文起名废 )

我最近报了两个java-ts-mode的bug,也是过段时间才会在bug列表里出现,都不是马上就出来。不确定是不是有审核。

M-x report-emacs-bug 写好邮件发出去慢慢等了,有时候一天后, GNU Bug Tracker 才会刷出来,不用太着急,邮件发出了一般不会消失.

厉害了,函数名也用中文。打字不累么 :joy: :joy: :joy:

Emacs 里的 treesitter 大概分为三个部分,一个是 treesitter lib 本身,一个是 emacs 调用 treesitter lib 的部分(也就是 treesit),还有就是提供规则的 grammar 部分。

要想 debug,或者说正确理解 bug 出在哪里,首先执行 M-x treesit-explore-mode, 开启后会展示解析结果。你可以点击对应的节点来观察它对应的代码是什么。

如果 explore-mode 中发现 english中文 是两个节点,或者解析结构出现错误,那么 bug 出在 grammar 部分。这些 bug 应该提交给 Emacs,而是提交给对应语言的仓库,对于 golang 来说就是 GitHub - tree-sitter/tree-sitter-go: Go grammar for tree-sitter

如果 explore-mode 中发现 english中文 解析为一个节点,你可以将光标分别放在上面,执行 M-x describe-face,检查 face 是否一致,如果不一致,可能是 treesit 出现了问题,可以整理下这些信息提交 bug 给 Emacs。

如果两个 face 一致,那就可能是 Emacs 的其它部分出了问题。

4 个赞

看了下,是 tree-sitter-go 有问题,报给 tree-sitter/tree-sitter-go 了,感谢

主要应用场合:1. 自己写给自己用,不用合作的代码,其实我觉得只有中国人看的代码也行,可读性非常高,符合直觉;2. 看别人写的中式英语代码,经常词与义不符,非常累,rename 一下方便理解,也不想自己琢磨新英文名了,用中文。

打字不累,注释也没少写中文,前端代码也一堆中文。补全照用。中英文混输的问题主要是经常不知道现在是中文输入还是英文输入,跟插USB口似的,先插一下不对,再插一下,又插一下。pyim 能用光标颜色显示当前输入法状态,能解决这个问题。

主要就是写代码的时候切换输入法太累

有这个问题,现在我愿意为了可读性牺牲便利性,代码都是读多写少,而且很多思考时间都花在起个合适的英文名上了,总的来说收益对我来说还是大于成本的。大学的时候严格限定自己注释都写英语,现在如果只是个人项目不愿意写这些洋泾浜英语了,更在意快速准确地表达。如果只是关键字和全角半角问题,自己定制一下 pyim 是很容易解决的,问题是在于英语是标准代码语言,你不可能不用别人的代码库。