目次

VSCodeの設定

テキストエディタはVSCodeを使うのが一番簡単です。Odinのエクステンションをインストールするだけでシンタックスハイライトが有効になります。エクステンションにはいくつか候補があります。ここでは、エクステンションの一覧にOdin Languageという名前で提供されているものを使用することにします。

インストールするには、エクステンションビュー (Ctrl+Shift+X)でフィルターにodinと入力して、表示されるものの中から選択してInstallをクリックするだけです。

VSCode Odin Language Extention

インストールが完了したら、Ctrl+Shift+PDeveloper: Reaload Windowなどでリロードしておきます。これで拡張子が.odinのファイルを開いたときにシンタックスハイライトが有効になります。

インデントの設定

Odinはインデントにタブ文字を使用するのが好まれます。VSCodeのデフォルトはスペース文字を使用するようになっているので、Odinのソースファイルの編集でのみタブ文字を使うように変更しておきます。

VSCodeの設定ファイルであるsettings.jsonを開きます。settings.jsonを開くには、Ctrl+,Settingsを表示して、右上にあるOpen Settings (JSON)のアイコンをクリックします。

VSCode Open Settings (JSON)

settings.jsonに、次の“[odin]”の項目を追加します。

{
    "既存の項目": {
        ...
    },
    "[odin]": {
        "editor.tabSize": 4,
        "editor.insertSpaces": false
    }
}

JSONのルールとして、最後の項目であれば,をつけないこと、中間の項目であれば,をつけなければならないことに注意してください。変更ができたらsettings.jsonを保存します。

今度はプロジェクトのフォルダの中に、拡張子が.odinのファイルを新規作成します。このファイルでTABキーをタイプしたとき、スペース文字ではなく、タブ文字が一つだけ挿入されるようになっていることを確認します。

VSCodeの設定にもよりますが、既存の.odinファイルを開いたとき、そのファイルがすでにスペース文字でインデントされている場合、それが尊重されてスペース文字でのインデントになることに注意してください。この場合、一度インデントをすべて削除してから、ファイルを開き直すなどしてからインデントし直す必要があります。

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/<username>/bin/ols",
    既存の項目...
}

VSCodeを再起動して、Odinのソースコードを含むフォルダ開くと「olsの設定ファイルがないので作成しますか?」という旨のポップアップが表示されます。ここで「はい」を選択すると、プロジェクトのフォルダにols.jsonというファイルが作成されます。このファイルがなければolsは動作しないので作成しておきます。

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の動作を調整するもので、他にもいくつかオプションがあります。必要であればドキュメントを参照してください。

この状態で拡張子が.odinであるOdinのソースコードを開くと、コード補完、シンボルの定義位置へのジャンプ、ソースコードのフォーマット (Ctrl+Shift+I)などが使えるようになっています。

もし環境変数ODIN_ROOTが設定されていないと、corevendorといったOdinに付属するライブラリを認識しませんので、設定しておきます。Bashを使用しているのであれば、.bashrcなどシェルの初期化ファイルに次の1行を追加します。

export ODIN_ROOT=$HOME/.Odin  # ご自身のOdinのソースディレクトリへのパスに置き換えてください

ここまで設定すると、Odinに付属するライブラリに対しても補完やジャンプが機能するようになります。例えば、fmt.とタイプすると、fmtに含まれる関数の候補が表示されます。

また、Ctrlキーを押しながら関数名をクリックすることで、その関数の定義位置にジャンプすることもできます。