|僕が初めてソースコードというものを触ったのは小学生か中学生の時でした。それから現在までプライベートでコードを書いたり、仕事をしたりという中でこ使用しているエディタは変化してきました。出現により、最近ようやく手に馴染むエディタが定まりつつあります。そこでエディタ遍歴を振り返りつつLSPについても少し触れたいと思います。コード僕が初めてコードを書いたのは、初心者向けのパソコン雑誌の後ろの方に書かれていた"ホームページ"作成入門の記事でした。いう名前をつけて保存するということが書かれていました。ちなみにその時のソースコートはこんな感じだったと思います。今では見ることのないタグが並んでいますが、人によっては懐かしいのではないでしょうか。</body></html>初めて書いたソースコードであったと同時に、僕が初めてテキストエディタに触れたときでした。ただのメモ帳に書かれた文字の羅列がホームページになったという体験が、プログラミングの仕事に就こうと思った最初のきっかけです。ソースコードを書くことを覚えましたが、高校に入ると部活が忙しく、大学でも文系に進学したのでほとんどソースコードを触ることがありませんでした。JavaScriptを書くのにDreamweaverは触りましたが、なにか書くときは主にメモ帳で書いていたのでシンタックスハイライトのあるエディタは逆に使いにくかった記憶があります。新卒で入った会社の新人研修でJavaを学ぶときに初めてIDEであるEclipseを触りました。そこでIDEによる開発を知り、しばらくはIDEを使っていました。この頃はIDEが便利というよりはIDEが必須だと考えていました。IDEでの開発ゲーム会社でPythonを書くようになりますが、IDEに慣れていたためEclipseにPyDevプラグインを入れて開発していました。新しいMacを使い始めたのをきっかけに、ここ最近はPyCharmを使っていました。PythonのようなLLでもIDEを使っている理由は、最初の設定が楽だからです。PyCharmのように言語に特化したIDEでは、自動補完やメソッド定義へのジャンプなど、特に設定せずに使えます。開発はIDEですが、ちょっとしたテキストの編集はテキストエディタを使用していました。Windowsではメモ帳、MacではCotEditorを使っていました。それが一番慣れているキーバインドを使用できたからです。そのうち少しだけVimも触るようになりました。ときはデフォルトでVimが起動するので仕方なく使っていた程度でした。前職のCTOの下で働いているときに、彼がVimを便利そうに使っていて、その憧れもありMarkdownやYamlなどちょっとしたファイルの編集や、ちょっとPythonの修正するときにVimを使うようになりました。途中、Emacsも経由しましたが常用エディタにするのは挫折しました。Macを使う上ではEmacsのキーバインドは練習してよかったと思ってます。Vimでの開発IDEでの開発は便利なのですが、ちょっとコードを書きたいだけなのにわざわざプロジェクトを作らなければいけなかったり、違う言語を書くときにそのためのIDEをインストールしたりというのが面倒になってきました。Vimでの開発も、言語に合わせてプラグインを探してvimrcに変更を加えて...というのが必要でした。仮想環境を作ることが多いし、Python2とPython3の違いによって動かないプラグインがあったりと、一つ一つ解決するのも面倒でした。使っていると特に設定が面倒でした。迷走Vimのキーバインドに慣れて、手に馴染んでいたのですが、Pythonを書くときに色々設定が面倒だったのでPyCharmにVimキーバインドのプラグインを入れて開発していました。いう言葉を知りました。詳しくはないので詳細についてはその他の記事に譲ります。IDEでは定義ジャンプ・自動補完・エラー分析...などの機能を提供していると思いますが、各言語に合わせてプラグインを作成するなど、IDE側が対応する必要があります。LSPは簡単に言うと、言語側がサーバーを起動し、共通のプロトコルを提供することでIDEと同様の機能を実現する仕組みです(...と理解しています)。LSPのない世界で完全に言語対応しようとすると、エディタやIDEの数✕言語の数の開発を行わなければなりません。エディタ側がLSPにさえ対応すれば、LSPに対応している言語をサポートできるようになります。VimとLSPを使った開発LSPを知った頃はあまり情報もなく、「こんなものもあるのか」くらいの感想でしたが、VimConf2019に参加した際に去年以上にLSPが盛り上がっていたので重い腰を上げてVimに導入しました。