2013年8月20日火曜日

コードエディタ

Delphi 3 ぐらいから作って使ってた およそ15年ぐらい使い続けたエディタが、Windows 8ではいろいろと問題がでてきて、Windows 8 pro 64bit用のコードエディタがほしくて、Lazarus で作っていたのだけど。

基本機能はほぼ実装できたように思う。



外観もほぼ同じ。
前の: http://eisen-japan.blogspot.jp/2013/08/blog-post_3604.html


アイコンなどは使わない方針。
タブが左側にあるのが特徴。

エディタの機能は SynEdit の機能がそのまま全面に出ている。
私は、文字コードの選択と、分割とクローンさえあればOKなので、それしか追加の機能はない。
検索と置換、あとは、SynEdit 由来の Hilighter と CTRL+J などのシンクロエディットと、マクロの記録再生などを実装。


コマンドプロンプトやメールアクセス機能は、この際なくてもいいかと思うので、無しにしようかと。
時代にあってないし。

サテライトビューというか広範囲ビューも、10年以上使って、おそらく総計数時間しか使ってなかったんでいらない気もする。
とはいえ、何かしらそれに代わる機能がほしいような気もするので構想中。

印刷機能も、前のはあったけど、結局印刷したのは数回だった気がするので未実装。

Lazarus の SynEdit には、HTMLエクスポート機能などのコンポーネントもあるので。
それらも利用するかどうか検討してもいいかもしれない。

Delphi 用に作った XMLパーサが、ほぼそのまま動くようだったので利用。
それゆえ 各種情報管理に TStringList を使わなくなったせいか、前のより起動・終了もかなり軽い。
マクロなども、前のより統制が取れて使いやすくなった。
検索・置換なども前のは、ほぼD3時に書いたコードをそのまま放置だったけど。
今回のは書き直したので、だいぶマシになった。

クローンからドックする時も ウィンドウハンドルの再設定するのではなく、新しくエディタのインスタンスから作成しなおす方針で実装。

一度作ったインスタンスを使いまわしたほうが初期化少なくて軽かろうと当時は思っていたのだけど。
ウィンドウハンドルの再設定時に初期化処理等で、メッセージが飛びまくるゆえ、各種ロックとアンロックを繰り返しながら1つ1つ処理していくため、かえって処理に時間がかかっていた。

ので、だいぶ軽くなり、ドック時のちらつきなどもなくなった。

あとは、履歴ぐらいがあればOKか。
そういや、バイナリエディタはどうするか・・・。

0 件のコメント:

コメントを投稿