🎾

Racket: Visual Studio CodeでのRacket LSPプログラミング環境の構築方法

2023/07/30に公開

tl;dr

  • racket-langserverをインストール
  • VS CodeMagic Racketをインストール
  • Magic Racketの設定

以上で、VS CodeRacket LSPが使えるようになります。
Enjoy!

1. はじめに

この記事では、LSP[1](Language Server Protocol)を用いて、Racket の効率的なプログラミング環境を構築する手順について説明します。
Racket用の LSP であるRacket LSPと、それをVisual Studio Codeで使用するための LSP クライアントMagic Racketを組み合わせることで 、コード補完やコードの自動整形といったプログラミングサポート機能を利用できます。

1.1. LSPとは

LSP (Language Server Protocol) は、プログラミング効率向上のための標準的なインターフェイスです。
LSP が提供するプログラミングサポート機能には、コードの補完、構文のポップアップ表示、シンタックスハイライトなどがあります。
LSP は、これらの機能をプログラミング言語に依存しない方式で提供するためのプロトコルとして定義します。
そして、LSP に対応したエディタならば、上記のサポート機能が使えます。

この記事ではRacket LSPVisual Studio Codeで使用する方法を説明していますが、Vimemacsのような他のエディタにも LSP クライアントが提供されています。
これらのエディタでも、このようなプログラミングサポート機能が利用できます。

1.2. racket-langserverとは

racket-langserver[2]Racket言語専用の LSP です。racket-langserverは、Racket プログラミング時にコード補完やコードシンタックスチェックなどのプログラミングサポートを提供します。

1.3. Magic Racketとは

Magic Racket[3]は、Visual Studio Codeに対応するRacket LSPクライアントクライアントとしての役割を持つ拡張機能 (extension) です。
Racket LSP (racket-langserver) と連携して、プログラミングをサポートするさまざまな機能を提供します。
REPL[4]のサポートもあるため、選択した式やファイルを直接実行できます。

2. Racket LSPサーバーのインストール

Racket の LSP サーバーracket-langserverはパッケージで提供されています。これは、raco[5]というツールを使ってインストールします。

2.1. raco によるRacket LSPのインストール

以下のコマンドを使ってracket-langserverをインストールします。

  1. raco pkgコマンドの実行:
    以下のraco pkgコマンドを実行し、パッケージをインストールする

    raco pkg install --auto racket-langserver
    

コマンドラインに戻ればracket-langserverのインストールは完了です。

2.2. "racket-langserver"の実行

racket-langserverを起動し、LSP コマンドを入力して正常に動作しているか確認します。

  1. racket-langserverの起動:
    次のコマンドを実行し、racket-langserverを起動する

    racket --lib racket-langserver
    
  2. LSPコマンドの実行:
    racket-langserverが起動して、コマンドの入力を待つ状態になったら、任意のLSPコマンドを入力してCtrl+Zキーで入力を終了する

    content-length: 24
    
    { "method": "version" }
    #<EOF> ← `Ctrl+Z`キーで"<EOF>"を入力
    
  3. エラーメッセージの確認:
    上記のコマンドの実行結果として、下記のようなエラーメッセージが出ることを確認する

    jsexpr->string: expected argument of type <legal JSON value>; given: #<eof>
    context...:
     .
     .
    

上記のようなエラーメッセージが出力された場合、これは言語サーバーが正常に動作していることを示しています。

3. Racket LSPクライアントのインストール

次に、VS CodeRacket LSPのクライアントであるMagic Racket extensionをインストールします。
これにより、VS CodeRacket LSPのさまざまな機能が利用できます。

3.1. Magic Racketのインストール

次の手順で、Magic Racket extensionをインストールします。

  1. 拡張機能の選択:
    VS Codeの左側のメニューから拡張機能を選択する
    拡張機能

  2. 'Magic Racketの検索: 検索ウィンドウにMagic Racket`と入力して、該当の拡張機能を検索する
    Magic Racket

  3. Magic Racketのインストール:
    [インストール]をクリックして、Magic Racketをインストールする
    インストール

以上の手順で、Magic Racketのインストールは完了です。

3.2. Magic Racketの設定

Magic Racketでは、Racket の実行パス、言語サーバーを実行するための引数などを設定できます。
ただし、racket-langserverが正常に動作していれば、設定の変更は必要ありません。

Magic Racketの設定方法は、次の通りです。

  1. VS Codeの左側のメニューから拡張機能を選択する:
    拡張機能

  2. Magic Racketを選択する:
    インストール

  3. [拡張機能の設定]を選択して設定ウィンドウを開く:
    設定

  4. 必要に応じて、各種項目を設定する:

以上で、設定の変更は完了です。

さいごに

以上で、Visual Studio Code+Racket LSPによる Racket開発環境が構築できました。
Magic Racketを導入することで、プログラミングのサポートがさらに強化され、効率的な Racket プログラミングが可能となります。

これからは、Racket LSP を活用して、より効率的なプログラミングを行なうことができます。
それでは、Happy Hacking!

参考資料

Webサイト

脚注
  1. LSP: 各種プログラミング言語に依存しないで、プログラミングをサポートする機能を提供するための共通のインターフェイスプロトコル。 ↩︎

  2. racket-langserver: Racket 用の LSP。これにより、コード補完やシンタックスチェックなどのプログラミングサポートが可能になる。 ↩︎

  3. Magic Racket:Visual Studio Code用のRacket LSPクライアント。Racket プログラミング時に、Racket LSPサーバーと連携してプログラミングをサポートする機能を提供する。 ↩︎

  4. REPL (Read-Eval-Print-Loop): 対話的なプログラミングインターフェイスで、入力したプログラムを実際に評価して返す。Racket で実行したい式やコードをREPLに入力することで、その結果を即座に確認できる。 ↩︎

  5. raco: Racket言語の開発支援ツール。パッケージ管理やプログラムのコンパイル/テストなどを行なう。 ↩︎

GitHubで編集を提案

Discussion