AppleのSwiftチームは、LSP(Language Server Protocol)でSwiftを使うためのサポートを提供する予定だと発表した。これにより、LSPをサポートするエディターであれば、開発者はSwiftでコード補完やシンタックスハイライトが使えるようになる。
コード補完とシンタックスハイライトに加えて、SwiftのLSP対応Language Serviceは、C/C++/ObjCソースを含むcross-language indexing機能をサポートし、"jump-to-definition"、"call-hierarchy"、"search-symbols"、"refactoring"を動かせる。AppleのチームはXcodeを新しいLanguage Serviceに対応させ、プロトコルを拡張してLSPに含まれていないXcode編集機能をサポートする予定だ。
現在の計画によると、Swift LSP ServiceはSourceKitを使用し、Clangに基づくLanguage Server Protocolのオープンソース実装であるClangdとそれを組み合わせるようだ。SwiftのLanguage Server Protocol実装はGitHubから入手できる。まだ開発の初期段階であり、多くの高度な機能はまだ利用できない。
Swift LSP Serviceには、LinuxにおけるSwiftのユーザビリティ向上により、Appleのエコシステム以外でのSwift採用を増やせる可能性があるというメリットがある。さらに、XcodeにLSPをもたらす副作用として、理論的にXcodeがすでにサポートしているXMLやJSONなどを含め、C#やRustといった言語のサポートも含むことになる。ただし、現在のところ、XcodeをLSP対応にすることはチームのフォーカスではない。
Language Server Protocolはもともと、Visual Studio CodeがそのLanguage Servicesと通信するためのプロトコルで、Microsoftで作られた。Microsoftは2016年にLSPをオープンソース化した。LSPによる大きなメリットは、LSP対応エディター間におけるLanguage Servicesの再利用性だ。これにより、言語チームが様々なエディターで言語を完全にサポートするために必要な労力は、大幅に削減される。LSP対応Language Serverを実装するだけで、任意のLSP対応エディターから利用できるためだ。
現在、70を超えるLSP対応Language Serverがあり、Eclipse、emacs、GNOME Builder、Atom、vim、Visual Studio、Visual Studio Codeを含む多数の主要なプログラミングツールがLSPをサポートしている。
Rate this Article
- Editor Review
- Chief Editor Action