はじめに
これはGDScript帝国からGDExtension王国へ逃亡した私が、様々な経験を経て再び手を取り合う、そんな物語──
本稿は、コードエディタであるZed Editorを利用したGodot Engineの開発環境構築の備忘録です。間違っても、上記のような物語はあったものではありません。
各プラットフォームごとの詳細な操作方法や導入方法については記載していません。基本的な知識や操作技術を前提としています。
実行環境
- OS: Arch Linux
- Editor: Zed Editor v1.2.5
- Engine: Godot Engine v4.6
手順
0. 各ツールのインストール
Godot Engineのダウンロードはこちらから。
Zed Editorのダウンロードはこちらから。
本稿で使用する拡張機能のインストールはこちらから。
Zed EditorとGodot Engineの接続には、Netcat(nc)が必要です。下記のリンクまたは各自のパッケージマネージャよりインストールしてください。
GDScript用のフォーマッタ兼リンターのダウンロードはこちら。
1. 外部エディタの設定
Godot Engineより外部エディタの設定を行います。設定ファイルを直接編集する方法は(記述するのが面倒なので)ないです。
設定手順を以下に記します。
-
Godot Engineを起動し、ウィンドウ右上にある
設定を選択します -
立ち上がったウィンドウ上の
Edit All Settingsを選択します -
エディタ設定から、
テキストエディター>外部エディターを使用にチェックを付けます -
ウィンドウ右上の
高度な設定のトグルをオンにすることで、追加のインスペクタが表示されます。次のインスペクタを変更します- 実行パス: 外部エディタのパスを入力します。コマンドライン上で
which zeditor等のコマンドを使用し、パスを確認してください - 実行フラグ:
{project} {file}:{line}:{col}を入力します
- 実行パス: 外部エディタのパスを入力します。コマンドライン上で
外部エディタに関する設定は以上です。
2. GDScript LSP接続の最適化
-
外部エディタの設定の手順1と手順2を基に、エディタ設定を開きます
-
エディタ設定から、
テキストエディター>自動補完を選択します。次のインスペクタを変更します- アイドル時の解析の遅延: 最小値(
0.1) - Idele Parse Delay with Errors Found: 最小値(
0.1) - コード補完の遅延: 最小値(
0.01)
- アイドル時の解析の遅延: 最小値(
-
エディタ設定から、
ネットワーク>言語サーバー>スレッドを使用にチェックを付けます
Godot Engine側の設定は以上です。
3. フォーマッタの設定
プロジェクト上の.zed/settings.jsonまたはグローバルのsettings.json(ショートカット:Ctrl + Alt + ,)に次の設定を追加します。
{
"languages": {
"GDScript": {
"formatter": {
"external": {
"command": "gdscript-formatter",
"arguments": []
}
}
}
}
}
4. デバッガの設定
プロジェクト上の.zed/debug.jsonに次の設定を追加します。
[
{
"adapter": "godot",
"label": "Godot (Launch)",
"request": "launch"
},
{
"adapter": "godot",
"label": "Godot (Attach)",
"request": "attach"
}
]
5. (オプション)タスクの設定
次のようなタスクを.zed/tasks.jsonに設定すると便利になると思います。
[
{
"label": "Open Godot Editor",
"command": "/path/to/godot",
"args": ["--editor"],
"use_new_terminal": false,
"allow_concurrent_runs": false,
},
{
"label": "Start Godot LSP Server",
"command": "/path/to/godot",
"args": ["--headless", "--editor"],
"use_new_terminal": true,
"allow_concurrent_runs": false,
},
]
つまづくポイント
GDscript formatterが利用できない
フォーマッタが利用できない場合、次の可能性があります。
- gdscript-formatterをインストールしていない、またはパスが通っていない
- gdscript-formatterのコマンド名が違っている
解決策
- ここより該当ツールをインストールする
- 適切なパスを設定する
- 実行ファイルの名前を変更するか、または
settings.jsonを修正する
GDScript言語サーバーのエラー
zed-gdscript言語サーバーでエラーが発生した場合、次の2つの可能性があります。
- Netcatをインストールしていない、またはパスが通っていない
- Godot Engineを起動していない
- LSPのホストアドレスまたはポート番号が違っている
解決策
-
ここより該当ツールをインストールする
-
適切なパスを設定する
-
Godot Engineを起動するか、Godot Engineの起動オプションに
--headless --editorを入力して実行することでGUIなしでのLSPを利用する -
settings.jsonに次のような設定を追加することで解決できるsettings.json{ "lsp": { "gdscript": { "binary": { "arguments": ["xxx.xxx.xxx.xxx", "xxxx"] } } } }
これらを解決し、zed-gdscript言語サーバを再起動することにより解決する可能性があります。
GDScript言語サーバーを起動/再起動できない
前述の観点から地続きで記述します。
Zed Editor上のlanguage servers(ショートカット:Ctrl + Alt + L)にzed-gdscript言語サーバが表示されず「No Items」と表示されるまたは、アイコンが表示されないことがあります。この場合、次の方法で解決できます。
解決策
-
Restricted Modeでないことを確認する - コードを記述するペインをフォーカスする
-
F1またはCtrl + Shift + Pを使用してコマンドパレットを立ち上げる -
editor: restart language serverを入力し、実行する
特に、手順1を行わないと該当コマンドが候補として表示されません。
まとめ
こうして私は、長く険しい道のりと共にGDScript帝国への第一歩を踏みしめるのであった──
続(かない)
今回は、Zed Editorを利用したGodot開発環境構築についてまとめてみました!いかがでしたか?(いかがでしたかブログ風)
本稿がだれかの役に立てば幸いです。
それでは、ごきげんよう!
参考





