BT

Visual StudioでLanguage Server Protocolがサポートされた

| 作者: Jonathan Allen フォローする 594 人のフォロワー , 翻訳者 尾崎 義尚 フォローする 0 人のフォロワー 投稿日 2017年12月18日. 推定読書時間: 3 分 |

原文(投稿日:2017/12/13)へのリンク

読者の皆様へ: 重要な記事を見逃さないように、ノイズを軽減する機能を開発した。興味のあるトピックを選択してEメールとWeb通知を受け取る

Visual Studio Codeのコーナーストーンは、Language Server Protocol (LSP)として知られるオープンスタンダードである。言語サーバーは、基本的に別プロセスでコンパイラ/アナライザが実行される。これはコンパイラーエラー報告、ホバーテキスト、コード補完(つまりインテリセンス)など、様々なタスクを処理する。

言語サーバーのコンセプトは新しいものではない: コード補完サポートはVimやEmacsのようなエディターで長年使われてきた。C#実装におけるこの概念の最初のメジャーな実装はOmniSharpとして知られている。この言語サーバーは、VS Code, Sublime, Atom, Emacs, Vim, Bracketsをサポートしている。

またVS Code言語サーバーはTypeScriptで開発された。OmniSharpとは違い、HTTPを使い、TypeScript言語サーバーは「サーバープロトコルとstdin/stdoutを通じて通信し、要求と応答にはV8デバッガープロトコルを使ったJSONペイロードを使っている」。

2つの言語サーバーがVS Codeに統合されている。Microsoftはそれらと将来の言語で共通の標準を開発する必要があると感じていた。これによりLanguage Server Protocolが開発された。

Language Server Protocolの基本メッセージフォーマットとしてJSON-RPCが使われている。簡単に言うとJSON-RPCはSOAPの軽量な代替である。SOAPと同様にトランスポート層を必要とせず、stdio, 名前付きパイプ, ソケットなどに対して同等に機能する

Visual Studio自身は、Language Server Protocolをネイティブにサポートしない。そのため、VS言語サービスとLSPクライアントとの通信にはアダプターが必要である。Microsoft DevLabsは、単にLanguage Server Protocol Clientという名前のクライアントを提供しているだけである。

また言語ごとの拡張も必要になる。Language Server Protocolサンプルgithubリポジトリは、開発方法を示している。

より複雑な例として、Adam Driscoll氏のVisual Studio Language Server Protocol extension for PowerShellを見ることができる。Driscoll氏によるその機能に関する説明では:

私は将来、LSPクライアントから言語がサポートされると信じています。Visual StudioとVisual Studio Codeの両方で共有される統合言語は、両方のツールでよい成果を上げてくれます。私たちはまだやることがあります。LSPはデバッグをサポートしていません。それは別のプロトコルです。LSP自身はVisual Studio内で完結していません。それに関するドキュメントにチャートがあります。VSでそれが利用可能になるまで時間がかかると見込んでいます。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT