# Delphi LSP を Visual Studio Code から使う --- tags: Delphi programming VisualStudioCode created_at: 2021-09-10 updated_at: 2021-09-15 --- # はじめに 2021/09/10 に **Delphi 11.0 Alexandria** がリリースされました。Delphi 11.0 では **Visual Studio Code** との LSP (Language Server Protocol) による連携が可能となっているので、これを試してみる事にしました。 何ができるようになるかと言えば、Visual Studio Code で開いた Delphi のソースコードに対してコード補完等のコード入力支援が使えるようになります [^1]。 - [Using DelphiLSP Code Insight with Other Editors (Docwiki: en)](https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Using_DelphiLSP_Code_Insight_with_Other_Editors) # 導入 Visual Studio Code で **Delphi LSP** を使えるようにする手順を以下に示します。 - [Visual Studio Code](https://code.visualstudio.com/) ## 1. LSP 設定ファイルの出力 プロジェクトフォルダに Delphi LSP の設定ファイルを出力するように設定を行います。 1. Delphi IDE から **[ツール | オプション]** で**オプションダイアログ**を開き、 2. 左側のツリーで **[ユーザーインターフェース > エディタ > 言語]** と辿ります。 3. **言語ページ**の [言語] を `Delphi` にします。 3. [支援機能タブ] を開きます。 5. `LSP 設定の生成` にチェックを入れます。 ![image.png](./images/4c1acc5d-c6a0-76f2-dd09-da9d2ce2d0d0.png) ## 2. Visual Studio Code に Delphi LSP 拡張機能を導入 Visual Studio Code に **Delphi LSP 拡張機能**を導入します。 - [DelphiLSP (Visual Studio Marketplace)](https://marketplace.visualstudio.com/items?itemName=EmbarcaderoTechnologies.delphilsp) 1. マーケットプレース (**〔Ctrl〕+〔Shift〕+〔X〕**) で `DelphiLSP` を検索し、インストールします。 ![image.png](./images/165e5385-3e8d-ab37-b3d6-7bda7ef79c20.png) 2. 設定 (**〔Ctrl〕+〔,〕**) に移動し、[ユーザー] タブで **[拡張機能 > DelphiLSP]** と辿ります。 ![image.png](./images/54d4874a-9a8e-0b7a-62c4-39548fbcebfc.png) 3. [Executable] に **DelphiLSP.exe** へのフルパスを指定します。デフォルトのインストールパスなら `C:\Program Files (x86)\Embarcadero\Studio\22.0\bin\DelphiLSP.exe` となります。 4. 必要なら [Log Modes] に **255** を指定します。ログが `%temp%\DelphiLSP` に格納されるようになります。 | 設定項目 | 値 | 説明 | |:---|:---|:---| | Agent Count
[ユーザー] タブ | 2 | Server Type が **controller** の時は 2。 | | Executable
[ユーザー] タブ | | DelphiLSP.exe へのフルパス。設定しなくても動作する。 | | Log Modes
[ユーザー] タブ | 0 | 255 を設定するとログを出力する。 | | Server Type
[ユーザー] タブ | controller | **agent** は Code Insight のみ。**linter** は Error Insight のみ。**controller** は両方。| | Settings File
[ワークスペース] タブ | | *.delphilsp.json へのフルパス。設定しなくても動作する。 | ## 3. Delphi でプロジェクトを開く Delphi IDE でプロジェクトを開きます。 ![image.png](./images/f857ddee-1074-bb24-21de-b4b4765eb692.png) 既存のプロジェクトを開くだけでプロジェクトフォルダに JSON 形式の Delphi LSP 設定ファイルが生成されます。 ## 4. Visual Studio Code でプロジェクトフォルダを開く Visual Studio Code で **[ファイル | フォルダーを開く]** (**〔Ctrl〕+〔K〕,〔O〕**) から Delphi のプロジェクトフォルダを開きます。 ![image.png](./images/11886dfc-2a99-baf7-8e28-fe1a29258843.png) 左側のファイルリストから `*.pas` や `*.dpr` を開くと DelphiLSP が有効な状態になります。 # おわりに プロジェクトフォルダを移動またはコピーした場合には、プロジェクトフォルダ内にある `.vscode` サブフォルダを削除し、Delphi IDE でそのプロジェクトを単に開いてください。`*.delphilsp.json` が再生成されます。 私の環境 (RAD Studio 11 Alexandria Professional) ではエラーメッセージ (**Error Insight** 相当) は正しく表示されるものの、残念ながらコード補完 (**Code Insight** 相当) が正しく動作しませんでした。 ``` No license found 有効なライセンスが見つかりません。Embarcadero のサポートにお問合せください。 ``` この件に関してはエンバカさんに問合せ中です。 ![image.png](./images/fd371e22-1578-5f8f-f388-acefe07cc711.png) 「Professional 版だから動かない」という事はないハズです。 **See also:** - [コード支援機能のリファレンス (DocWiki)](https://docwiki.embarcadero.com/RADStudio/Alexandria/ja/%E3%82%B3%E3%83%BC%E3%83%89%E6%94%AF%E6%8F%B4%E6%A9%9F%E8%83%BD%E3%81%AE%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9) [^1]: Delphi IDE コードエディタのフリーカーソル移動が苦手な方が、傍らで Visual Studio Code を開いてコード編集...なんて事ができます。