ハマったけど情報が見つからなかったのでメモ。
Don't Show Again
VSCode 右下に出るこのような通知は、「Don't Show Again」を選択することで以後表示されなくなります。
しかし間違えて選択してしまった場合や、一度消した通知があとから欲しくなったときに復旧する項目が VSCode の設定項目に見当たりませんでした。
二度と表示させねえという意思があまりにも強すぎる。
設定の復旧
ワークスペースの特定
これらの設定はグローバルに存在する通知オフ設定(extensions.ignoreRecommended
など)とは独立して、
ワークスペース単位で管理しているようです。
ワークスペース固有の環境設定はワークスペースのフォルダ内にはなく、別の場所で管理されています。
mac の場合は $HOME/Library/Application\ Support/Code/User/workspaceStorage
にありました。
別 OS でも似たような場所( AppData
以下や .config
以下にあるのではないかと思います。)
現在作成されているワークスペースはこのディレクトリ下に管理されていますが、
単純なワークスペース名では無くなんらかのハッシュ値もしくは乱数によって命名されているようです。
このディレクトリは次のような構成になっています。(ちゃんと検証していないので環境差あるかも)
2a7b2639e3fb95fc60d7e863ca9ebda4/
├── state.vscdb
├── state.vscdb.backup
└── workspace.json
このうち workspace.json
にワークスペースの存在するディレクトリが記述されているので、
これを参考に該当のワークスペースを探します。
{
"folder": "file:///Users/USERNAME/path/to/workspace"
}
通知の復旧
まずは作業前に VSCode を終了しておきます。
難しいことを考えたくない場合、この特定したディレクトリを削除すれば解決です。
ただし何が入っているのかよくわからないので、編集過程の保存していない進捗のキャッシュなども飛ぶかもしれない。
(レコード見た感じターミナルやファイラが開いた状態か?や最後にカーソルがどこにあったか?みたいな情報も記録されている気がする)
それでは困る場合は具体的な通知無効化の設定を特定し、無効化を解除する必要があります。
このワークスペースのディレクトリに含まれるファイルのうち、 state.vscdb
は sqlite3 のバイナリになっていました。
この中に無効化した通知等の設定が記録されているので、このファイルを sqlite3 で読み込み該当するレコードを削除します。
今回の例では、無効化してしまったワークスペース単位での推奨拡張の通知を再度表示するようにしたいというのが目的だったので、
以下のレコードが該当します。
このレコードを削除して VSCode を再度起動し、該当のワークスペースを開き直したところ上記の通知が復旧しました。
おわりに
無効化した通知の再有効化とかエディタの設定項目に用意してくれてても良い気がするというか、
ここまでしてマジで通知を徹底的に潰す理由もあるんだろうかという気がするのでどっかに設定項目あるのかもしれん。
でも見つからなかったので...