2026/05/11

自作エディター「Kuu」

「Kuu」

Rustで自作エディターを作ってみました。まだまだWork in Progress状態ですが、最低限の機能は実装できたように思います。

ちなみに名前の由来は仏教用語「空」です。

現在実装している主な機能は

  • ディレクトリーツリーの表示/非表示
  • 読み取り専用ファイルを編集不可にする
  • Vim、Emacsのキーバインドを設定ファイルでもエディターを開いている最中でも切り替えることができる
  • 文字列検索(インクリメンタル)
  • いつでもヘルプを見れる
  • 設定ファイルの編集
  • シンタックスハイライト(現在はRust、OCaml、Pythonのみ)
  • 日本語入力

といった具合です。

ちなみにLSPには対応していません。

開発していて思ったことは、機能を充実させるとキリがないということで、いかに諦めるか、自分に必要か実装できるか、というところです。何とか実装しようとすると自分の実力不足にイライラし、だんだんモチベーションが低下して、結果頓挫してしまうということだけは今回は避けれたように思います。

今後、母の介護の合間にちょっとずつ開発を進めていきたいと思います。

ご興味のある方は試しに使ってみてください。しょぼくれたエディターですが(笑)

Kuu


2025/08/20

Pythonで型クラスは実装できるか

型クラスとは

型クラスとは、主にHaskellなどの関数型言語で導入されている機能で、特定の振る舞いを持つ型をまとめるための仕組みです。


2025/08/18

OCamlのモジュールとCommon LispのCLOSの比較

はじめに

OCamlのモジュールシステムとCommon LispのCLOSは、どちらもプログラムを構造化し、再利用性を高めるための強力な仕組みです。しかし、そのアプローチは大きく異なります。今回は、図形を描画するという同じ具体例を使って、それぞれの違いを見ていこうと思います。


2025/08/13

Rustで学ぶ型コンストラクタ

型コンストラクタとは

型コンストラクタとは、ざっくり言うと「新しい型を作るための型」です。

普段使っているi32Stringなどは、それ自体が完成された一つの型です。

一方、型コンストラクタは、型を引数として受け取り、新しい型を生成するものです。