両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン |
tutorial:odin:setup-vscode [2024/04/08 07:40] – [olsを使えるようにする] freemikan | tutorial:odin:setup-vscode [2024/08/19 20:15] (現在) – freemikan |
---|
インストールが完了したら、''Ctrl+Shift+P'' → ''Developer: Reaload Window''などでリロードしておきます。これで拡張子が''.odin''のファイルを開いたときにシンタックスハイライトが有効になります。 | インストールが完了したら、''Ctrl+Shift+P'' → ''Developer: Reaload Window''などでリロードしておきます。これで拡張子が''.odin''のファイルを開いたときにシンタックスハイライトが有効になります。 |
| |
====== インデントの設定 ====== | ===== インデントの設定 ===== |
| |
Odinはインデントにタブ文字を使用するのが好まれます。VSCodeのデフォルトはスペース文字を使用するようになっているので、Odinのソースファイルの編集でのみタブ文字を使うように変更しておきます。 | Odinはインデントにタブ文字を使用するのが好まれます。VSCodeのデフォルトはスペース文字を使用するようになっているので、Odinのソースファイルの編集でのみタブ文字を使うように変更しておきます。 |
| |
''settings.json''を開きます。''settings.json''を開くには、''Ctrl+,''で//Settings//を表示して、右上にある//Open Settings (JSON)//のアイコンをクリックします。 | VSCodeの設定ファイルである''settings.json''を開きます。''settings.json''を開くには、''Ctrl+,''で//Settings//を表示して、右上にある//Open Settings (JSON)//のアイコンをクリックします。 |
| |
{{:tutorial:odin:vscode-open-settings-json.png?400|VSCode Open Settings (JSON)}} | {{:tutorial:odin:vscode-open-settings-json.png?400|VSCode Open Settings (JSON)}} |
''settings.json''に、次の''"[odin]"''の項目を追加します。 | ''settings.json''に、次の''"[odin]"''の項目を追加します。 |
| |
<codeprism title=settings.json lang=json> | <file json> |
{ | { |
"既存の項目": { | "既存の項目": { |
} | } |
} | } |
</codeprism> | </file> |
| |
最後の項目であれば'',''をつけないこと、中間の項目であれば'',''をつけなければならないことに注意してください。 | JSONのルールとして、最後の項目であれば'',''をつけないこと、中間の項目であれば'',''をつけなければならないことに注意してください。変更ができたら''settings.json''を保存します。 |
| |
保存して拡張子が''.odin''のファイルを新規作成しまうす。このファイルでTABキーをタイプしたとき、スペース文字ではなく、タブ文字が一つだけ挿入されるようになっていることを確認します。 | 今度はプロジェクトのフォルダの中に、拡張子が''.odin''のファイルを新規作成します。このファイルでTABキーをタイプしたとき、スペース文字ではなく、タブ文字が一つだけ挿入されるようになっていることを確認します。 |
| |
VSCodeの設定にもよりますが、既存の''.odin''ファイルを開いたとき、そのファイルがすでにスペース文字でインデントされている場合、それが継承されてスペース文字でのインデントになることに注意してください。この場合、一度インデントをすべて削除してから、ファイルを開き直すなどしてからインデントし直す必要があります。 | VSCodeの設定にもよりますが、既存の''.odin''ファイルを開いたとき、そのファイルがすでにスペース文字でインデントされている場合、それが尊重されてスペース文字でのインデントになることに注意してください。この場合、一度インデントをすべて削除してから、ファイルを開き直すなどしてからインデントし直す必要があります。 |
| |
====== olsを使えるようにする ====== | ===== olsを使えるようにする ===== |
| |
[[https://github.com/DanielGavin/ols|ols]]という名前のOdinのLanguage Serverも開発されています。olsはVSCodeでも利用可能で、コード補完やシンボルの定義位置へのジャンプなどが使えるようになります。 | [[https://github.com/DanielGavin/ols|ols]]という名前のOdinのLanguage Serverも開発されています。olsはVSCodeでも利用可能で、コード補完やシンボルの定義位置へのジャンプなどが使えるようになります。 |
VSCodeの''settings.json''に、''ols.server.path''という名前の項目を追加します。値は''ols''のフルパスにします。 | VSCodeの''settings.json''に、''ols.server.path''という名前の項目を追加します。値は''ols''のフルパスにします。 |
| |
<codeprism title=settings.json lang=json> | <file json> |
{ | { |
既存の項目.., | 既存の項目.., |
既存の項目... | 既存の項目... |
} | } |
</codeprism> | </file> |
| |
VSCodeを再起動して、Odinのソースコードを含むフォルダ開くと「olsの設定ファイルがないので作成しますか?」という旨のポップアップが表示されます。ここで「はい」を選択すると、''ols.json''というファイルが作成されます。このファイルがなければolsは動作しないので作成しておきます。 | VSCodeを再起動して、Odinのソースコードを含むフォルダ開くと「olsの設定ファイルがないので作成しますか?」という旨のポップアップが表示されます。ここで「はい」を選択すると、プロジェクトのフォルダに''ols.json''というファイルが作成されます。このファイルがなければolsは動作しないので作成しておきます。 |
| |
{{:tutorial:odin:vscode-odin-ols-json.png?400|VSCode ols create ols.json}} | {{:tutorial:odin:vscode-odin-ols-json.png?400|VSCode ols create ols.json}} |
作成される''ols.json''の内容は次のようになっています。 | 作成される''ols.json''の内容は次のようになっています。 |
| |
<codeprism title=ols.json lang=json> | <file json> |
{ | { |
"$schema": "https://raw.githubusercontent.com/DanielGavin/ols/master/misc/ols.schema.json", | "$schema": "https://raw.githubusercontent.com/DanielGavin/ols/master/misc/ols.schema.json", |
"enable_snippets": true | "enable_snippets": true |
} | } |
</codeprism> | </file> |
| |
手作業でこの内容のファイルを作成しても問題ありません。これらはolsの動作を調整するもので、他にもいくつかオプションがあります。必要であれば[[https://github.com/DanielGavin/ols?tab=readme-ov-file#Configuration|ドキュメント]]を参照してください。 | 手作業でこの内容のファイルを作成しても問題ありません。これらはolsの動作を調整するもので、他にもいくつかオプションがあります。必要であれば[[https://github.com/DanielGavin/ols?tab=readme-ov-file#Configuration|ドキュメント]]を参照してください。 |
この状態で拡張子が''.odin''であるOdinのソースコードを開くと、コード補完、シンボルの定義位置へのジャンプ、ソースコードのフォーマット (Ctrl+Shift+I)などが使えるようになっています。 | この状態で拡張子が''.odin''であるOdinのソースコードを開くと、コード補完、シンボルの定義位置へのジャンプ、ソースコードのフォーマット (Ctrl+Shift+I)などが使えるようになっています。 |
| |
もし環境変数''ODIN_ROOT''が設定されていないと、//core//や//vendor//といったOdinに付属するライブラリを認識しませんので、設定しておきます。''.bashrc''など、使用しているシェルの初期化ファイルに次の1行を追加します。 | もし環境変数''ODIN_ROOT''が設定されていないと、//core//や//vendor//といったOdinに付属するライブラリを認識しませんので、設定しておきます。Bashを使用しているのであれば、''.bashrc''などシェルの初期化ファイルに次の1行を追加します。 |
| |
<codeprism title="~/.bashrc" lang=bash> | <file bash> |
export ODIN_ROOT=$HOME/.Odin # ご自身のOdinのソースディレクトリへのパスに置き換えてください | export ODIN_ROOT=$HOME/.Odin # ご自身のOdinのソースディレクトリへのパスに置き換えてください |
</codeprism> | </file> |
| |
ここまで設定すると、Odinに付属するライブラリに対しても補完やジャンプが機能するようになります。例えば、''fmt.''とタイプすると、fmtに含まれる関数の候補が表示されます。 | ここまで設定すると、Odinに付属するライブラリに対しても補完やジャンプが機能するようになります。例えば、''fmt.''とタイプすると、fmtに含まれる関数の候補が表示されます。 |