BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Rust Language Serverがアーリーアダプタ向けに提供へ

Rust Language Serverがアーリーアダプタ向けに提供へ

原文(投稿日:2017/01/23)へのリンク

Rust Language Server(RLS)は,コードの自動補完,goto定義,再フォーマットなどの機能を備えたツール開発の支援を目的とする。実際のプロジェクトでの使用とフィードバック提供のために今回,アーリーアダプタ向けのアルファ版が公開されることになった,とプロジェクトの代表的なコントリビュータのひとりであるJonathan Turner氏が書いている

ソースコードに関する情報を収集するためにRust Language Serverは,Rustコンパイラの他に,Rustコードの補完機能を提供するRacerを使用する。コンパイラはその定義上,プログラムに関する情報の最も信頼できる提供源だが,現行のRustにはインクリメンタルコンパイル機能が欠如しているため,動作が遅過ぎる場合のあることが問題だ。それに対してRacerは,ほぼすべての場合において高速だ,とTurner氏は言う。しかしながら,マクロが扱えない,ジェネリックタイプのサポートが部分的である,といった制限もある。この理由からRLSでは,コンパイラとRacerの両方に問い合わせを行なうことで,許容される時間内で最も正確な情報の提供を実現しているのだ。このプロセスを可能な限り効率化するため,RLSは,コンパイラやRacerをシェル経由でコントロールせず,その両方をリンクしている。

現在リリースされているRLSは,次の機能をサポートする。

  • 自動補完
  • goto定義
  • シンボルへのgoto
  • すべての参照の検出
  • 名前変更とリファクタ
  • ホバーによる型表示
  • エラー内容

RLSの大きな特徴はMicrosoft Language Server Protocol (LSP)を採用していることだ。このプロトコルはIDEやテキストエディタなどのクライアントと言語サーバとの間に,標準化された通信手順を確立する。このためRLSは,Visual Studio CodeやEclipse,Che,Emacsといった,Microsoft LSPをサポートするさまざまなIDEやエディタで利用することが可能だ。Microsoft Studio Codeの場合であれば,プラグインをインストールすることで使用することができる。プラグインがインストールされると,Visual Studio Codeが言語サーバを自動的に起動し,Rustの高度な編集機能がサポートされるようになる。

現時点では開発初期段階であるため,実用の域には達していないが,CargoベースのほとんどのRustプロジェクトで利用可能になるだろう,とTurner氏は述べている。インストールは以下のコマンドを実行すればよい。

git clone https://github.com/jonathandturner/rls
git clone https://github.com/jonathandturner/rls_vscode.git
cd rls_vscode
npm install
export RLS_ROOT=/Source/rls

その後にVS Codeを起動する。ビルドに必要な依存関係はナイトリービルドのrust/cargo,git,python,node,cmakeだ。

この記事を評価

関連性
スタイル

この記事に星をつける

おすすめ度
スタイル

特集コンテンツ一覧

BT