Open5
Emacs29.3で特定のファイルを開くとサイレント落ちする
emacs30に上げたら解決した。
原因はわかってない。
debug-on-errorや--debug-initでエラーを出そうにもEmacs自体が落ちるので
調査方法がひたすらパッケージをオンオフして確認していくしかなく、
ぶっちゃけめんどいのでバージョン上げ下げして直るならそれでよかったが、
上げたらしっかり直った。
init.elから参照しているmypackage.el
emacs -Q hoge.json
で普通に開けたので
多分ここのどこか、treesitあたりが怪しいなーとは考えてた
事象が発生したファイル
json,tsx
後.bash_profile,.bashrc
失敗した対策
生成AIくん(Claude)にきいた対策
(defun my-find-file-check-mode ()
"Set major mode to fundamental-mode if an error occurs."
(condition-case err
(progn
(normal-mode)
(run-hooks 'find-file-hook))
(error
(message "Error setting major mode: %s" (error-message-string err))
(fundamental-mode))))
(setq-default major-mode 'fundamental-mode)
(add-hook 'find-file-hook 'my-find-file-check-mode)
結果は変わった。
ndentation setup for shell type bash
Setting up indent for shell type bash
Indentation variables are now local.
Indentation setup for shell type bash
...
Waiting for process to die...done
なんか無限ループが発生したので最後のとこはC-gで逃げた。
てかデフォルトでfundamental-mode開くようにしてるのにだめなのは
対応するモードがないというわけではなくて
やはり*-ts-modeみたいなとりあえずこのモードでみたいなやつが邪魔してるか、
マイアーモードのなにかで落ちてるか?
おまけ
そいや当初mypackage.elはpackage.elだった。
そしてその中で
(require 'package)
してたんだけど無限ループしてるよーんって怒られた。
そりゃそうなんだろうけど、
前の前くらいの設定だとpackage.elで設定してたのに普通に動いてるんだよな。
なんでだろ。。。