縦書エディタTATEditor更新 Version 0.1.0
Post date: Dec 22, 2012 4:51:37 AM
TATEditorの最新版です。
メモ帳的な機能はほぼ完成してます。
難点は正規表現の検索・置換しか使いない点くらいだと思います。
以下readmeのコピペです。
TATEditor Ver. 0.1.0.5
http://www.cc4966.net/
Twitter: @496_ (https://twitter.com/496_)
mailto:tateditor@cc4966.net
タイムスタンプ:2012年12月22日土曜日 2時58分43秒 日本標準時
本ソフトウェアは、クロスプラットフォーム予定(!)の汎用エディタです。
具体的な用途として小説等の執筆に重点を置く予定(!)です。
現時点で実装されている主な機能は以下のようになります。
・縦書きと横書きの両方に対応(なんと斜めも可能)
・青空文庫形式のルビ表示(例:青空《あおぞら》文庫《ブンコ》形式《形式》、|1二3《﹆﹅・》)……このファイルをTATEeditorで開けばルビが振られます。
・Unicodeの表示と編集
・ツリー構造の無限アンドゥ/リドゥ(「元に戻す」および「やり直し」)……詳細は後述。
・文字エンコードの自動判別
・正規表現による検索と置換
・確定文字列の再変換(Microsoft IME、最新版ATOKなどTSF対応のIMEであれば)
・シングルタッチに対応(Windows 7以降かつタッチ対応モニタ)
・XPでのサブピクセルを利用した美しい文字描画(Vista, 7, 8はデフォルトの描画でもそうなっていますが)
詳しい機能はもう少し下の方をご覧ください。
インストール
好きなフォルダにおいてご使用ください。
同じフォルダに設定ファイルとして実行ファイル(デフォルトはtateditor.exe)と同名のiniファイル(デフォルトはtateditor.ini)が作成されます。
インストール場所を変える際には実行ファイルと設定ファイルを移動してください。
設定ファイルには縦書きモード、フォント名、フォントサイズ、ウィンドウのサイズと位置、最後に開いていたファイルとそのキャレット位置、色の設定が保存されます。
アンインストール
実行ファイルと設定ファイルを削除してください。
その他の詳細な機能・特徴
・複数の文字列選択(Ctrlを押しながら追加選択したい文字列を選択)
・Windowsの(そこそこ)新しい方式のIMEであるTSFに標準対応(Google IMEのためにimm32にも対応しております)
・様々なエンコードでの読み込み・保存(ICU: International Components for Unicodeで扱うことのできる229のエンコード)
・現在の時刻の挿入(F5、例:2012年12月22日土曜日 1時46分13秒 日本標準時)
・詳細なフォント描画設定(Ctrl+P)
・テキストの複製ウィンドウの表示(Ctrl+D)
その他の説明
タイトルバーには起動時間(フリーズ時間を除く)と、現在のテキストウィンドウの文字総数を表示しています。
ステータスバーには左から、総文字数、キャレット前後の文字のUnicode情報、キャレットの位置/選択範囲を表示しています。
シングルタッチで文字列を選択できます。また、Ctrl+シングルタッチで任意方向にスクロール可能です。
メニュー並びに設定の適用対象は最後にアクティブになったテキストウィンドウです。
保存時のデフォルトのエンコードはUTF-16です。それ以外(Shift-JISやEUC-JPなど)のエンコードを利用する際は[ファイル->名前を付けて保存 Shift+Ctrl+S]をご利用ください。
アンドゥ/リドゥに関して:
状態1(初期):あ
状態2(文字挿入):あい
状態1(アンドゥ):あ
状態3(文字挿入):あう
上記の場合状態3からアンドゥ(Ctrl+Z)で状態1に戻り、リドゥ(Ctrl+Y)を行うと通常は状態3へ進みますが、コンテキストメニュー(右クリックなど)からは状態2へのリドゥも選択可能です(編集履歴がツリー構造になっています)。
今後の修正事項
・このテキストエディタ、なんと毎回全画面を描画しているので、もっと賢く描画するようにします(たぶん描画時間を1/10にはできるかなあ)。
・ユーザインタフェースを改善します(確認ダイアログの表示タイミングやウィンドウの名前、タブ管理、分割表示、プログレスバーの表示等々)。
・PageUp, PageDownが使えなくて不便なので実装します(Home, End, Ctrl+Home, Ctrl+Endは機能します)。
・ダブルクリックおよびトリプルクリック時の文字列選択は簡単に実装できますが、あまり重要じゃないので次の更新の時にでも追加します。
・面倒なのでIMEからのテキスト編集も、通常のテキスト編集も同等に扱っているため、リドゥおよびアンドゥに未確定文字列の履歴が残ってしまう点をどうにかします。
・普通の検索ができませんので、実装します(現在は正規表現にのみ対応)。
・タブをグリフのまま表示してるので、きちんとタブとして機能するようにします。
・フォント設定のベースラインを基準に描画のチェックを外すと、デザインフォントなどでまれにグリフの描画位置がずれる点を修正します。
・たぶん1000万文字くらい入力するとメモリを1GBくらい食うのでどうにかします。
今後の機能追加
※階層付きテキスト(アウトラインテキスト)への対応
※文字の色分け表示
※マルチタッチ対応(マルチタッチジェスチャのライブラリから作ります)
※複数人での同時編集(現状もそれに近い状態なのでTCP/IP部分を作れば完成です)
※GREP(フォルダ内検索とかそういうやつ)
・バイナリエディタ機能
・青空文庫形式への完全対応
・印刷機能
・PDF、SVG出力機能(wxSVGとかharu pdf libraryらへん。Cairoは使わない予定)
・等幅表示の実装(現在はグリフのAdvance情報に唯々諾々と従っている)
・左から右の横書き(行は上から下)、上から下の縦書き(行は右から左)以外の方向への対応(右から左行ったら次は左から右に行く言語もあるらしい)
・ファイル間のdiff、ファイル比較機能(時々必要になりますよね)
・バックアップ、世代管理機能(小説的に重要)
・プラグイン、マクロへの対応(まあ、あって悪くない)
・登場人物リストなど小説向けの辞書機能のようなもの(個人的に重要)
・アイディア帳ライクなウィンドウ([表示->Bスプライン変形]、[表示->レンズ]のような機能を駆使する)
・視認性の高い履歴ウィンドウ(この時点に戻したいとかそういう感じの)
・フォントの閲覧・編集機能(趣味です)
・vert以外のフォントテーブル(GPOSやGSUB、JSTFなど)の適用
・数式表示機能(TeX以外にいい形式ないかな、MathMLはMarkup Languageだし)
・マルチプロセス化
・その他細かな機能がたくさん(いろいろ)
今後の予定
ひとまずクロスプラットフォーム化を行います。順番としてはLinux、Mac、Android、iOSです。
Linux以降は時間があるときに行います。
それと並行して上記の機能追加を行います。※を重点的に。
Version 1.0くらいでテキストエディタ部分を完成させます。
1.5で印刷、出力機能らへんを搭載予定です。
2.0くらいから独自機能に取り組みます。
動作環境
たぶんXP以降で動きます。
動かなかったりバグがあったらTwitter: @496_ か tateditor@cc4966.net にお願いします。
Twitterが反応早いと思います。よろしくお願いします。
あと「XPよりも前のOSで動かしたい」という強い希望があればVisual Studio .NET 2003でもコンパイルできるように頑張ります。