scintillaのtermbox実装
テキストエディタ作成用のライブラリScintillaのcurses向け実装であるScintermを使っている。 とても良くできていて、問題なく使えているが、色の指定については制約が強い。 16色しか使えないのは良いとして、色の設定が面倒だった。
そうこうしているうちに、Scintillaのバージョンが上り、Scintermが本家の配布物に含まれなくなったりといったことも起こっていた。
色の設定についてScintermを改造することを考えていたが、 思いきって、別の実装をやってみることにした。 せっかくならcurses以外でということで、termboxを選択。 実際にはtermboxからforkしているtermbox_nextを使うことにした。
GitHub - nullgemm/termbox_next: Library for writing text-based user interfaces
本家のtermboxはメンテ終了しちゃっているので、今さら感もあるが、以前termboxのmrubyバインディングを作ったこともあり、 使い方は把握できている。 また、termbox_nextはtruecolorにも対応している。
作ったのがこれ。
GitHub - masahino/scintilla-termbox
Scintermでcursesの関数を使っているところをtermbox用に変えていく作業が中心。 やってみての感想は、Scintilla良くできているなぁ、というところ。
Scintermとの違いは以下。
- 色の設定に対応できるように
- Listbox(自動補完とかで使う)、Calltip、スクロールバー、マーカーの形状を変更
この実装を使って作ったテキストエディタはこれ。
GitHub - masahino/mruby-bin-mrbmacs-termbox: Scintilla base text editor written in mruby
もともと作っていたcurses版のtermbox版。 ほぼほぼ同じ感じ。
サンプル画像がこれ。
初期のcurses版の画像がこんな感じだったので、そこそこ見た目が改善されてきているのではないかと思っている。