## 経緯
[[🦉Another Quick Switcher]]でpreview表示したとき、自動で[[🦉Carnelian]]のLint autofixが実行されてしまうことが煩わしい問題がある。
[[🦉Another Quick Switcher]]のpreview表示時のみ、Lint autofixを無効化しようと思ったが、実際に動かしていたら色々と制御するのが面倒でリスキーに思えた。また、Lint機能そのものを無効にすると、previewの情報量が下がるので微妙な気がした。
冷静に考えたら、そもそも **自動でファイルを開いたときにauto fixをする必要はない**。というか、**そのような挙動をするLinterはほとんど知らない**。最高で保存時に自動実行させる程度だ。
## 実装方針
現状の動作は以下。
| トリガー | Lintのautofix | 主な発生タイミング |
| --------------------- | ------------ | --------------------------------- |
| serviceのonLayoutReady | 実行される | [[Obsidian]]起動直後<br>プラグインreload直後 |
| serviceのonload | 実行される | ファイルを開いたとき<br>ファイルがアクティブになったとき |
| `:w` の保存 | 実行する | [[Vimモード (Obsidian)\|Vimモード]]で保存時 |
| `Save with` コマンド | 実行する | [[🦉Carnelian]]で保存時 |
これを変更する。
| トリガー | Lintのautofix | 主な発生タイミング |
| --------------------- | ------------ | --------------------------------- |
| serviceのonLayoutReady | **実行しない** | [[Obsidian]]起動直後<br>プラグインreload直後 |
| serviceのonload | **実行しない** | ファイルを開いたとき<br>ファイルがアクティブになったとき |
| `:w` の保存 | 実行する | [[Vimモード (Obsidian)\|Vimモード]]で保存時 |
| `Save with` コマンド | 実行する | [[🦉Carnelian]]で保存時 |
この変更により以下の整理になる。以前よりシンプルである。
- 起動やファイル移動ではautofixは実行されない
- [[🦉Another Quick Switcher]]のpreviewを開いてもautofixは実行されない
- 保存コマンドを明示的に実行したときのみ実行される
誤りのリスクは **エディタのヘッダ部に表示される情報(Lint)の間違い** にとどまる。予期せぬ挙動によるノート消失リスクもかなり防げると思う。
## コミット
https://github.com/tadashi-aikawa/carnelian/commit/3792bedbd8d03c1ab16e722436a8d2a268d9ad36