テキストエディタはVSCodeを使うのが一番簡単です。Odinのエクステンションをインストールするだけでシンタックスハイライトが有効になります。エクステンションにはいくつか候補があります。ここでは、エクステンションの一覧にOdin Languageという名前で提供されているものを使用することにします。
インストールするには、エクステンションビュー (Ctrl+Shift+X)でフィルターにodinと入力して、表示されるものの中から選択してInstallをクリックするだけです。
インストールが完了したら、Ctrl+Shift+P
→ Developer: Reaload Window
などでリロードしておきます。これで拡張子が.odin
のファイルを開いたときにシンタックスハイライトが有効になります。
Odinはインデントにタブ文字を使用するのが好まれます。VSCodeのデフォルトはスペース文字を使用するようになっているので、Odinのソースファイルの編集でのみタブ文字を使うように変更しておきます。
VSCodeの設定ファイルであるsettings.json
を開きます。settings.json
を開くには、Ctrl+,
でSettingsを表示して、右上にあるOpen Settings (JSON)のアイコンをクリックします。
settings.json
に、次の“[odin]”
の項目を追加します。
{
"既存の項目": {
...
},
"[odin]": {
"editor.tabSize": 4,
"editor.insertSpaces": false
}
}
JSONのルールとして、最後の項目であれば,
をつけないこと、中間の項目であれば,
をつけなければならないことに注意してください。変更ができたらsettings.json
を保存します。
今度はプロジェクトのフォルダの中に、拡張子が.odin
のファイルを新規作成します。このファイルでTABキーをタイプしたとき、スペース文字ではなく、タブ文字が一つだけ挿入されるようになっていることを確認します。
VSCodeの設定にもよりますが、既存の.odin
ファイルを開いたとき、そのファイルがすでにスペース文字でインデントされている場合、それが尊重されてスペース文字でのインデントになることに注意してください。この場合、一度インデントをすべて削除してから、ファイルを開き直すなどしてからインデントし直す必要があります。
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/<username>/bin/ols",
既存の項目...
}
VSCodeを再起動して、Odinのソースコードを含むフォルダ開くと「olsの設定ファイルがないので作成しますか?」という旨のポップアップが表示されます。ここで「はい」を選択すると、プロジェクトのフォルダにols.json
というファイルが作成されます。このファイルがなければolsは動作しないので作成しておきます。
作成される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の動作を調整するもので、他にもいくつかオプションがあります。必要であればドキュメントを参照してください。
この状態で拡張子が.odin
であるOdinのソースコードを開くと、コード補完、シンボルの定義位置へのジャンプ、ソースコードのフォーマット (Ctrl+Shift+I)などが使えるようになっています。
もし環境変数ODIN_ROOT
が設定されていないと、coreやvendorといったOdinに付属するライブラリを認識しませんので、設定しておきます。Bashを使用しているのであれば、.bashrc
などシェルの初期化ファイルに次の1行を追加します。
export ODIN_ROOT=$HOME/.Odin # ご自身のOdinのソースディレクトリへのパスに置き換えてください
ここまで設定すると、Odinに付属するライブラリに対しても補完やジャンプが機能するようになります。例えば、fmt.
とタイプすると、fmtに含まれる関数の候補が表示されます。
また、Ctrlキーを押しながら関数名をクリックすることで、その関数の定義位置にジャンプすることもできます。