(今のところ前後編に分ける予定ですが、追記したり構成が変更になったりするかもしれません。予定は未定。) 2016年6月に、Microsoftがlanguage server protocolという仕様を公開しました。 本稿では、このlanguage server protocolの存在意義や具体的な実現方法について解説します。 language server protocolの存在意義 language serverとは、IDEが必要とするプログラムのプロジェクト ソースを解析して情報を提供する機能を、サービスとして実現するものです。language serverがサポートされたIDEでは、型やメンバーの自動補完、変数やメンバーの定義参照、変数やメンバーの利用箇所の検索、コードの自動フォーマット、コードのエラー分析や修正案の提示といった、さまざまな機能を実現できます。 Microsoftの
![language server protocolについて (前編) - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/ac1c2f6be2ea50dd91dd28eb956c8c1d290eb77d/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9bGFuZ3VhZ2UlMjBzZXJ2ZXIlMjBwcm90b2NvbCVFMyU4MSVBQiVFMyU4MSVBNCVFMyU4MSU4NCVFMyU4MSVBNiUyMCUyOCVFNSU4OSU4RCVFNyVCNyVBOCUyOSZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9NGFmOWZlM2FlYmFhYmRiMDhkNmIzODk5YWUwZWE5OTQ%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBhdHN1c2hpZW5vJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz03ZjI5MjMxZDAzOGU4ZTE3ZTc0NTJmZDk2NTYxM2YxZA%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3D5b8cbb4b349a7f963f58120317b5de81)