Godot EngineのエディタをNeovimにするための設定

Neovimしか勝たん

環境

  • Windows 11
  • Neovim v0.11.3
  • Godot Engine v4.4.1

Neovimのインストール

この記事を読む人には必要ない説明のような気がするが, Windows 11向けの情報は少なそうなのでざっとまとめておく.

Neovimをwingetでインストールし,vim コマンドで nvim が起動するようにシンボリックリンクを張る.

winget install Neovim.Neovim
New-Item -Path 'C:\Program Files\Neovim\bin\vim.exe' -ItemType SymbolicLink -Value 'C:\Program Files\Neovim\bin\nvim.exe'

NeovimのGUIをwingetでインストールする.

winget install equalsraf.neovim-qt

外部エディタ設定

Godot Engineを起動してエディター設定を開く.テキストエディター外部の項目を開き,各プロパティを以下のように設定する:

プロパティ
実行パス nvim-qt.exeのフルパス
実行フラグ "+call cursor({line}, {col})" {file}
外部エディターを使用 オン

external editor

以上の設定により,Godot Engine上でスクリプトを開く際にNeovimが起動するようになる.

LSP設定

Godot Engineを起動してエディター設定を開く.ネットワーク言語サーバの項目を開き,リモートホストおよびリモートポートの値を確認する.デフォルトでは 127.0.0.1:6005 になっているはず.

lsp settings

Neovimの設定ファイル init.vim にLSPを有効にする設定を書く. vim.lsp.enable('gdscript') によって gdscript.lua が読み込まれる.

vim.lsp.enable('gdscript')

vim.keymap.set('n', '<C-Tab>', '<cmd>lua vim.lsp.buf.hover()<CR>')
vim.keymap.set('n', '<C-W>', '<cmd>lua vim.diagnostic.open_float()<CR>')

キーマップの設定

上記のNeovimのキーマップはかなり簡易のものなので,もっとちゃんと設定している人のを参考にしたほうがいい.例えば↓など.

NeoVim使いのためのnvim-lspconfig おすすめキーマッピングの紹介 - アルパカログ

https://alpacat.com/posts/nvim-lspconfig-key-mappings

GitHubの neovim/nvim-lspconfig のリポジトリからGDScript用の設定をコピーし,gdscript.luaに貼り付ける.

https://github.com/neovim/nvim-lspconfig/blob/cd576dd72d31ddffcbfa6d064c0dd697ca218758/lsp/gdscript.lua

---@brief
---
--- https://github.com/godotengine/godot
---
--- Language server for GDScript, used by Godot Engine.

local port = os.getenv 'GDScript_Port' or '6005'
local cmd = vim.lsp.rpc.connect('127.0.0.1', tonumber(port))

---@type vim.lsp.Config
return {
  cmd = cmd,
  filetypes = { 'gdscript' },
  root_markers = { 'project.godot', '.git' },
}

以上の設定により,Godot Engineの起動中のみ,Neovim上でGDScriptのコード補完を利用できるようになる.