关于 treesit 的鬼畜缩进

emacs29.3,开启 c+±ts-mode 后,

void f() {
  for (|)
}

此时在光标处输入 ; 会变成

void f() {
for (;|)
}

此时再次输入第二个 ' 又会变回

void f() {
  for (;;|)
}

写代码时这样晃来晃去太晕了,求助!

Emacs 31.0.50 没有复现,建议二分查查配置

查了,只要开 treesit 就有这种情况

应该是 electric-indent-mode 的作用。查看一下是不是全局启用了这个 minor mode. 在对应的 ts mode 加个 hook 函数设置 (electric-indent-local-mode -1) 应该就可以了。