💨

VSCode + Neovimで急にVisual Modeのhighlightが出なくなった

2023/12/07に公開

現象

VSCode + Neovimを利用している環境で最近 vShift + v などで遷移するビジュアルモードのハイライトが出なくなった。
機能は使えるが、レンダリングがされない気持ち悪い状態。

よく見るとエラー通知も出ていた。

エラー内容

User
[Error: Error making request to nvim_execute_lua at s.request 
(/Users/<UserName>/.vscode/extensions/asvetliakov.vscode-neovim-1.1.5/dist/extension.js:1:58466)at s.lua 
(/Users/<UserName>/.vscode/extensions/asvetliakov.vscode-neovim-1.1.5/dist/extension.js:1:65278) at Object.<anonymous> 
(/Users/<UserName>/.vscode/extensions/asvetliakov.vscode-neovim-1.1.5/dist/extension.js:1:236036) at Generator.next 
(<anonymous>) at /Users/<UserName>/.vscode/extensions/asvetliakov.vscode-neovim-1.1.5/dist/extension.js:1:235361 at new Promise (<anonymous>) at C 
(/Users/<UserName>/.vscode/extensions/asvetliakov.vscode-neovim-1.1.5/dist/extension.js:1:235106) at Object.lua 
(/Users/<UserName>/.vscode/extensions/asvetliakov.vscode-neovim-1.1.5/dist/extension.js:1:235983) at Ie.<anonymous> 
(/Users/<UserName>/.vscode/extensions/asvetliakov.vscode-neovim-1.1.5/dist/extension.js:1:269164) at Generator.next (<anonymous>) at s 
(/Users/<UserName>/.vscode/extensions/asvetliakov.vscode-neovim-1.1.5/dist/extension.js:1:267638)]

原因

shadaファイルというものの権限エラー。

よく見ると vscode-neovim にエラーも出力されていました。
.local/state/nvim/shada/main.shada に書き込めないみたいです。

対応

単純に対象のファイルに権限を調べて対処しましょう。
わたしの場合は ~/.local/state のオーナーがrootになっていました。

$ ll ~/.local/
total 0
drwx------@ 5 <UserName>  staff   160B 12  5 02:40 share
drwx------@ 3 root  staff    96B 11 11 19:56 state

ので、chownで解決しました。

$ sudo chown -R <UserName> state

※環境によってはchmodで解決する場合もありそう

note

新しいMac miniを買って引継せず環境設定した中で異様に詰まってしまったのでメモ。
ググってもChatGPTさんでも解決しなかったので後続の方のため残しておきます。(もう一方のMacでは再現しなかったのでエッジケースかもと思ってますが)
settings.json や設定内容を吟味したり、VSCodeの初期化もしてたからかなり無駄な労力を消費していました・・・。

ちなみに、vscode-neovim の v0.9.1 までは特にエラーも出ず、アップデートで少しずつ動きが怪しくなっていき、 v1.1.0 辺りから明らかに動きが怪しくなったという背景でした。

Discussion