言語機能はどう実装されているのか
● いくつか実装方法はあるが...
○ Language Server Protocol に則った方法が主流
● Language Server Protocol (LSP)
○ 2016 年に Microsoft が発表
○ エディタに言語機能を実装するための標準仕様
11
Slide 12
Slide 12 text
LSP の基本コンセプト
● 『Language Server Protocol の仕様 及び実装方法 (*2)』より
○
● エディタとは別に Language Server (LS) がある
○ これが言語機能を実装してる
● エディタは LS を介し、ユーザに言語機能を提供
12
LSPの基礎コンセプトは、IDEがサポートしていた各機能(言語サービスと
呼ばれます)を標準化し、エディタ本体から分離するというものです。
*2: https://zenn.dev/mtshiba/books/language_server_protocol/viewer/02_introduction より引用
Slide 13
Slide 13 text
LSP による通信の様子 (ざっくり)
13
Slide 14
Slide 14 text
LSP に従ってさえいれば動く
14
JavaScript の LS は
どの LSP 対応エディタでも動く
LSP 対応エディタは
どの LS 搭載言語も扱える
Slide 15
Slide 15 text
通常 LS は言語ごとに分かれてる
15
.ts
.css
エディタは言語ごとに専用の LS と通信
TS の言語機能を実装 (※3)
CSS の言語機能を実装 (※4)
※3 厳密には JavaScript の言語機能も提供
※4 厳密には Less や Sass の言語機能も提供
tsserver
vscode-css-languageserver