====== VSCodeの設定 ======
[[odin:|{{:odin:odin_logo.svg?200|Odin}}]]
テキストエディタはVSCodeを使うのが一番簡単です。Odinのエクステンションをインストールするだけでシンタックスハイライトが有効になります。エクステンションにはいくつか候補があります。ここでは、エクステンションの一覧に[[https://marketplace.visualstudio.com/items?itemName=DanielGavin.ols|Odin Language]]という名前で提供されているものを使用することにします。
インストールするには、エクステンションビュー (Ctrl+Shift+X)でフィルターに//odin//と入力して、表示されるものの中から選択して//Install//をクリックするだけです。
{{:odin:vscode-odin-extension-install.png?600|VSCode Odin Language Extention}}
インストールが完了したら、''Ctrl+Shift+P'' → 「Developer: Reaload Window」などでリロードしておきます。これで拡張子が「.odin」のファイルを開いたときにシンタックスハイライトが有効になります。
===== インデントの設定 =====
Odinはインデントにタブ文字を使用するのが好まれます。VSCodeのデフォルトはスペース文字を使用するようになっているので、Odinのソースファイルの編集でのみタブ文字を使うように変更しておきます。
VSCodeの設定ファイルであるsettings.jsonを開きます。
settings.jsonを開くには、''Ctrl+,''でSettingsを表示して、右上にある「Open Settings (JSON)」のアイコンをクリックします。
{{:odin:vscode-open-settings-json.png?400|VSCode Open Settings (JSON)}}
settings.jsonに''"[odin]"''の項目を追加します。
{
"既存の項目": {
...
},
"[odin]": {
"editor.tabSize": 4,
"editor.insertSpaces": false
}
}
JSONのルールとして、最後の項目に'',''をつけてはいけないことに注意してください。
変更ができたらsettings.jsonを保存します。
今度はプロジェクトのフォルダの中に、拡張子が「.odin」のファイルを新規作成します。
このファイルでTABキーをタイプしたとき、スペース文字ではなく、タブ文字が一つだけ挿入されるようになっていることを確認します。
VSCodeの設定にもよりますが、既存の「.odin」ファイルを開いたとき、そのファイルがすでにスペース文字でインデントされている場合、それが尊重されてスペース文字でのインデントになることに注意してください。
この場合、一度インデントをすべて削除してから、ファイルを開き直すなどしてからインデントし直す必要があります。
===== olsを使えるようにする =====
[[https://github.com/DanielGavin/ols|ols]]という名前のOdinのLanguage Serverも開発されています。olsはVSCodeでも利用可能で、コード補完やシンボルの定義位置へのジャンプなどが使えるようになります。
olsはソースコードからビルドする必要があります。Odinで書かれているので、Odinのインストールが完了していれば簡単にビルドできます。
$ git clone https://github.com/DanielGavin/ols.git
$ cd ols
$ ./build.sh
問題がなければolsという実行可能ファイルが生成されているので、それを適当な場所にコピーしておきます。
$ cp ols ~/bin/
VSCodeのsettings.jsonに、''ols.server.path''という名前の項目を追加します。値はolsを配置した場所のフルパスにします。
{
既存の項目..,
"ols.server.path": "/home//bin/ols",
既存の項目...
}
VSCodeを再起動して、Odinのソースコードを含むフォルダ開くと「olsの設定ファイルがないので作成しますか?」という旨のポップアップが表示されます。ここで「はい」を選択すると、プロジェクトのフォルダにols.jsonというファイルが作成されます。このファイルがなければolsは動作しないので作成しておきます。
{{:odin:vscode-odin-ols-json.png?400|VSCode ols create ols.json}}
作成されるols.jsonの内容は次のようになっています。
{
"$schema": "https://raw.githubusercontent.com/DanielGavin/ols/master/misc/ols.schema.json",
"enable_document_symbols": true,
"enable_hover": true,
"enable_snippets": true
}
手作業でこの内容のファイルを作成しても問題ありません。これらはolsの動作を調整するもので、他にもいくつかオプションがあります。必要であれば[[https://github.com/DanielGavin/ols?tab=readme-ov-file#Configuration|ドキュメント]]を参照してください。
この状態で拡張子が「.odin」であるOdinのソースコードを開くと、コード補完、シンボルの定義位置へのジャンプ、ソースコードのフォーマット(''Ctrl+Shift+I'')などが使えるようになっています。
もし環境変数ODIN_ROOTが設定されていないと、coreやvendorといったOdinに付属するライブラリを認識しませんので、設定しておきます。Bashを使用しているのであれば、.bashrcなどシェルの初期化ファイルに次の1行を追加します。
export ODIN_ROOT=$HOME/.Odin # ご自身のOdinのソースディレクトリへのパスに置き換えてください
ここまで設定すると、Odinに付属するライブラリに対しても補完やジャンプが機能するようになります。例えば、''fmt.''とタイプすると、fmtに含まれる関数の候補が表示されます。
{{:odin:vscode-odin-ols-complement-fmt.png?400|}}
また、Ctrlキーを押しながら関数名をクリックすることで、その関数の定義位置にジャンプすることもできます。