トップ 最新 追記   RSS 1.0 FEED  

Journal InTime


2017-01-21 (Sat) [長年日記]

_ [Ruby][Textbringer] Textbringer 0.1.0

年末から作っていたテキストエディタをいったんリリースした。

こんな感じのスクリーンエディタである。

$ gem install textbringer

でインストールして、

$ tb

で起動する。

日本語テキストも扱える。

ISO-2022-JPも扱いたい場合は~/.textbringer.rbに以下のように書いておくとよい。

Buffer.detect_encoding_proc = Buffer::NKF_DETECT_ENCODING

マニュアルは何もないので、lib/textbringer/keymap.rbあたりを読んで使い方を想像してほしい。 まあだいたいEmacsと同じでredoがundoと別のコマンド(C-xC-/)になっているくらい。

Rubyモードも一応作ったけど、まだオートインデントとC-cC-cでのrake実行くらいしかできない。

名前の由来はマイクル・ムアコックのメルニボネの皇子とかに出て来る魔剣Stormbringerなんだけど、新訳が出たと思ったらもう紙は絶版になっているようでつらい。

何でテキストエディタを作っているかというと、会社の忘年会の時に中村君と話していて最近作りたいものないという話になって、昔テキストエディタを作りたいと思っていたことを思い出したから。 そのためにcursesの拡張ライブラリを作ったのだが、その時から20年くらい経ってしまった(しかも結局ncurseswというgemを使うことにしたので活かされてない)。

今のところEmacsに対するアドバンテージは括弧が少ないことくらいだが、地道に育てていきたい。

1/22追記

tbというコマンド名がtb.gemとconflictするという指摘があったのでtextbringerにrenameした0.1.1をリリースした。


2017-01-25 (Wed) [長年日記]

_ [Ruby] curses 1.1.1リリース

メンテナを降りたつもりだったが、松田さんに煽られてcurses 1.1.1をリリースした(curses 1.1.0なんてなかった)。

ncurseswでも機能的には問題ないけど、method_missingを使っているところとか、ポリシー上APIがCライブラリほぼそのままなところが好みではなかったので、textbringerもcursesを使うようにした。 あと、自分で作ってると自分の都合で新しいバージョンを出せるし。

新機能は以下のとおり。

  • Use bundler instead of hoe. Pull request #18 by hsbt.
  • Enable appveyor. Pull request #19 by hsbt.
  • Add badges for build status to README.md. Pull request #20 by hsbt.
  • Add Curses.erase and Curses::Window.erase.
  • Add Curses::Window.redraw.
  • Add Curses.unget_char, Curses.get_char, and Curses::Window.get_char for multibyte characters.
  • Add Curses.keyboard_encoding and Curses.terminal_encoding.
  • Support cross compilation for mingw32.

mingw32用のbinary gemにはpdcurses.dllを同梱しているので、textbringerの次のリリースではmingw32環境でもDevKitなしでgem install textbringerできるようになる予定。


2017-01-29 (Sun) [長年日記]

_ [Textbringer] Textbringer 0.1.4

Textbringer 0.1.4をリリースした。 変更点は以下のとおり。

  • dabbrev_expand (M-/) の追加。
  • find_tag (M-.) と pop_tag_mark (M-*) の追加。
  • toggle_test_command (C-c t) の追加。
  • Windowsのためにbinmodeを使用するよう修正。

Textbringerのコード自体Textbringerで書いているが、壊してVimのお世話になることが大分少なくなったような気がする。

その代り、機能追加のコードを書く→別の機能不足でイライラ→別の機能追加のコードを書く→また別の機能不足でイライラ→また別の機能追加のコードを書く、の無限ループであっという間に時間が経つので定命の者にはつらい。 コードも<混沌の神々>の影響が強くなってきているように思われる。

0.1.2からは再び呪われし太古の秘法cursesの力を得たが、この先の道のりは長い。