🦁
WSL+neovimでUnity構文を認識する
WSL内のnvimからUnityプロジェクトのcsファイルを開くと、Unity特有のクラスや関数が認識できるエラーになる。
これはUnityプロジェクトの.csprojファイル内にWindows形式のパスC:\path\to\Unity\
があるためであり、このパスを/mnt/c/path/to/Unity
に変更すればUnity特有のクラスや関数も認識できる。
しかしこのファイルはUnity起動時などで自動的に書き換えられてしまうため、簡単に書き換えられるように関数を用意しておくとよい
WSL+Vim+YouCompleteMe+Unityの罠 #Unity - Qiita
を参考にinit.lua(自分はlazyvimを使っているので/lua/config/options.lua
)に以下を追記する。
vim.cmd([[
command! ModifyCSProjFile call ModifyCSProjFile()
function! ModifyCSProjFile()
call system("find . -maxdepth 2 -name \"*.csproj\" | xargs sed -i -e 's/C:/\\/mnt\\/c/g'")
call system("find . -maxdepth 2 -name \"*.csproj\" | xargs sed -i -e 's/D:/\\/mnt\\/d/g'")
if exists(':YcmCompleter')
execute "YcmCompleter ReloadSolution"
endif
endfunction
]])
nvimでUnityプロジェクトを開いて:ModifyCSProjFile
を実行すればUnity関数が認識されるようになる。
Discussion