Rustでエディタを書いている

February 13, 2022

2022/1からRustでエディタを実装している。

なぜエディタをかいているか?

プログラマとしての成長の鈍化を感じていた時に、過去に所属した企業で教えてもらった「プログラマをやっていくなら、OS・エディタ・コンパイラは一度作ってみると良い」とアドバイスを思い出した。
これまではあまり気にしていなかったが、実際に調べてみると自分の知らないことも多く、またチュートリアルやドキュメントも多くあり、意外と実装できることがわかって楽しくなった。

何を元に実装しているか?

自分は「Kilo」というエディタのチュートリアルを参考にしている。
Build Your Own Text Editor

ターミナルで動くエディタをC言語で実装する方法が説明されている。
外部ライブラリを使ったりはせず、本当にC言語のみで実装する。

基本的な編集機能からファイルの読み込み、検索やシンタックスハイライトまで、1000行程度の実装でありながらエディタとして最低限の機能は実装する。
また、シンプルな実装なので他の言語にも移植しやすいらしく、GolangやRustで実装されているリポジトリも検索すると見つかる。

なぜRustで実装しているか?

まず、「ただ写経しただけでは記憶に残りにくいから」と言うのが大きい。
全く同じものを何度も繰り返すのはしんどいので、なにか変化を起こしたくてC言語以外で実装する事を考えた。

その上でなぜRustかというと、「書きたかったから」と言うのが大きい。
モダンだし、流行ってるし。
また、OSやコンパイラなどの実装にRustは向いている(と聞いた)ので、自分の興味の方向性にもあっていると思った。

自分が実装しているリポジトリ: piruty/rust_editor: Kilo editor in rust