Room B
Intermediate
20 mins.
Language Server Protocol(以下、LSP)は、型やシンボルの自動補完、定義参照、修正案の提示といったコーディング支援機能をエディタやIDEに提供するプロトコルです。 Go言語では、公式にサポートされているLSPの実装として「gopls」があります。goplsは、成長するGoのエコシステムに対応し、大規模なコードベースでも高速かつリソース効率的に開発者を支援するよう進化してきました。 その結果、goplsは現在、多くのエディタやIDEのデフォルトのLSPバックエンドとなっています。参加者の皆さんも、気づかないうちにgoplsを使用している可能性があります。 しかし、多くの開発者がgoplsを使用しているにもかかわらず、goplsの内部メカニズムを詳しく解説した記事は少ないです。私自身も、「敷居が高い」という印象を持っていました。
このセッションでは、goplsが提供する多くの機能の中から、自動補完に焦点を絞り、その仕組みを紹介します。 goplsの自動補完機能は、スマートに、かつ適切な候補を提案してくれます。その裏側で動く、泥臭く堅実な処理について学ぶことで、goplsをより身近なツールとして捉えることができるでしょう。
まず、LSPの基本的な仕様と、goplsのアーキテクチャの概要を紹介します。これにより、参加者ご自身でgoplsの仕組みを調査する際の基礎知識を提供します。 その後、主題である自動補完の仕組みについて詳しく説明します。あるGoのコードに変更を加えた場合、どのように適切な補完候補が提案されるのか、簡単な具体的な例を用いて説明します。
本セッションを通じて、参加者の皆さんがgoplsの自動補完の仕組みを理解し、その他の機能についても興味を持って学ぶきっかけとなることを期待しています。