2012年7月16日月曜日

LREdit ver 1.54

LREdit ver 1.54を公開した。

https://sites.google.com/site/craftware/lredit


1.54
  • 文書を切り替えたときに、アクティブな編集ペインで開くのではなく、すでに所属している編集ペインで開くようにした。
  • Ctrl-Tab の挙動を調整。もう片方のペインのタブを切り替えないようにした。
  • Ctrl キーを押しながら起動して IPC をキャンセルするまえに、メッセージボックスで確認するようにした。
  • コマンドラインから *.lre を開くと、ファイル履歴に登録されないのを修正。


2012年7月15日日曜日

LREdit ver 1.53

LREdit ver 1.53 を公開した。

https://sites.google.com/site/craftware/lredit

1.53
  • タブバーを左右の編集ペインごとに分離
  • アクティブな Edit を、もう一つの編集ペインするコマンド AnotherPane を追加。メニューにも追加。
  • Layout1, Layout2, LayoutToggle コマンドを廃止
  • Ctrl-Tab の挙動を調整。1回目で左右のペインを切り替え、2回目以降でタブ切り替えを行うようにした。
  • Ctrl-Shift-Tab を廃止。
  • コマンドラインの解釈ルールのカスタマイズ ( window.commandline_list ) について、ドキュメントに追記。

2012年7月9日月曜日

CraftLaunch ver 3.29

CraftLaunch ver 3.29 を公開した。

https://sites.google.com/site/craftware/clnch

3.29
  • 外部ディスプレイに切り替えたり、解像度の変更を行ったときに、ウインドウ位置をリセットするようにした。(画面外に行ってしまわないように。)
  • キー入力条件を文字列 ( "C-Return" や "Shift-F10" など ) で指定するようにした。
  • キーカスタマイズに関しての解説を追加。
  • Alt-Space キーの、自動補完On/Offのキー割り当てを、config.py 側に移動。

2012年6月27日水曜日

LREdit ver 1.52

LREdit ver 1.52 公開

https://sites.google.com/site/craftware/lredit

1.52
  • タイトルバーに、プロジェクトファイルの名前を表示するようにした。
  • 起動済みのLREditに、IPCでファイルオープンを要求するとき、コマンドラインが表示されている場合などに、開かれていなかったのを修正。
  • Drag & Drop でファイルを開こうとしたとき、コマンドラインが表示されている場合、開かれていなかったのを修正。
  • デフォルト設定ファイルに、ユーザ定義のコマンドをコマンドラインから呼べるようにする記述例を追加。

2012年6月2日土曜日

内骨格 ver 2.20


内骨格 ver 2.20 を公開した

https://sites.google.com/site/craftware/cfiler

2.20
  • テキストファイル比較機能で、ファイル名に多バイト文字が入っていた場合に、エラーが発生してしまっていたのを修正。
  • MSGBOX_TYPE_OK を MessageBox.TYPE_OK に変更。MSGBOX_RESULT_OK を MessageBox.RESULT_OK に変更。

2012年5月27日日曜日

内骨格 ver 2.19

内骨格 ver 2.19 を公開した。

https://sites.google.com/site/craftware/cfiler


2.19
  • AeroSnap したまま内骨格を終了した場合、再起動後にAeroSnap前の状態に戻るようにした。
  • NetDrive コマンドがエラーになってしまうのを修正。(subProcessCallの修正)
  • ドキュメント中の、キーカスタマイズ方法についての解説を更新。
  • タスク実行中に内骨格が終了しようとしたとき、タスク完了時のダイアログを出さずに終了するようにした。

2012年5月20日日曜日

LREdit ver 1.51

LREdit ver 1.51 を公開した。

https://sites.google.com/site/craftware/lredit



1.51
  • 行番号部分をクリックしたときに、行の先頭の文字が選択されない場合があったのを修正。
  • 行番号部分をダブルクリックしたときに、行の先頭の単語が選択されるのではなく、行全体が選択されるようにした。
  • Shiftを押しながら行番号部分をクリックしたときに、行単位で選択範囲の拡張を行うようにした。
  • サーチ機能でテキストを変更せずに決定した場合、検索が行われていなかったのを修正。
  • 空行を削除するコマンド RemoveEmptyLines を追加。メニューにも追加。
  • ToUpper と ToLower の変換範囲が、行単位に拡大されてしまっていたのを修正。
  • RemoveLineEndSpace の名前を RemoveTrailingSpace に変更

いろんな微調整と、空行削除コマンド。

2012年5月16日水曜日

2012年5月13日日曜日

LREdit ver 1.49


LREdit ver 1.49 を公開した。

https://sites.google.com/site/craftware/lredit

1.49
  • 1.47の変更の影響で、コマンドライン引数でファイル名を指定した場合に、同じファイルが重複して開かれるようになってしまっていたのを修正。
  • コマンドライン引数で範囲外の行番号やインデックスが渡されたときに、エラーが発生していたのを修正。
  • インクリメンタルサーチを Escape で抜けたときに、カーソル位置が検索前の位置にリセットされていた挙動が直感的でなかったので、最後のヒット位置のままになるようにした。
  • 矩形選択の操作を高速化
  • 文字列検索処理を少し高速化 (内部で常に正規表現を使うのではなく、単純なケースでは使わないようにした。)
修正や高速化など。

2012年5月6日日曜日

LREdit ver 1.48

LREdit ver 1.48 を公開した。

https://sites.google.com/site/craftware/lredit


1.48
  • Search の動きを、インクリメンタルサーチ風に変更した。

これまでの挙動は潔く廃止。

2012年5月4日金曜日

LREdit ver 1.47

LREdit ver 1.47 を公開した。

https://sites.google.com/site/craftware/lredit


1.47
  • 読み取り専用で開くための起動引数 --readonly を追加。
  • テキストファイルを開くための起動引数 --text を追加。ファイル名の後に行番号を指定できるようにした。
  • プロジェクトファイルを開くための起動引数 --project を追加
  • 存在しないファイルを起動引数に渡したとき、新規ファイルの編集を行うようにした。

2012年5月2日水曜日

LREdit ver 1.46

LREdit ver 1.46 を公開した。

https://sites.google.com/site/craftware/lredit


1.46
  • 矩形選択機能を追加
  • アウトライン解析がエラーになってしまうのを修正
  • Project からの Grep で、ログに出力されるファイルパスが壊れてしまうことがあったのを修正。

矩形選択機能の追加、意外と面倒だった。

2012年4月22日日曜日

LREdit ver 1.45

LREdit ver 1.45 を公開した。

https://sites.google.com/site/craftware/lredit

1.45
  • Grepをキャンセル判定を行ごとに行うようにした。
  • プロジェクトファイルをオープンせずに、Grepのターゲットに "Project" が指定されると、エラーが発生していたのを修正。
  • AeroSnap したまま LREdit を終了した場合、再起動後にAeroSnap前の状態に戻るようにした。
1.44
  • コマンドシステムを ckit に移行。
  • ChrEvent と KeyCondition を廃止。

2012年4月16日月曜日

keyhac ver 1.46

keyhac ver 1.46 を公開した。

https://sites.google.com/site/craftware/keyhac


1.46
  • 1.45で、ckit 側の整理の影響で、起動しない状態になっていたのを修正。

最近ユーザさんからバグレポートをいただくケースが定番化してる。ありがとうございます。
よく確認しないといけないですね。

2012年4月15日日曜日

keyhac ver 1.45

keyhac ver 1.45 を公開した。

https://sites.google.com/site/craftware/keyhac


1.45
  • クリップボード履歴で、Migemo を使ったインクリメンタルサーチが、エラーになってしまうのを修正。

今回これだけ。

内骨格 ver 2.18


内骨格の ver 2.18 を公開した。
https://sites.google.com/site/craftware/cfiler


2.17は公開し忘れていたので、今回、変更内容が2つ分だ。


2.18
  • キー入力条件を文字列 ( "C-Return" や "Shift-F10" など ) で指定するようにした。
  • CheckDuplicate コマンドの動作の高速化。(ファイルの先頭部分のハッシュ値比較を用いる)
  • タスクが実行中に内骨格が終了しようとしたとき、タスクをキャンセルしつつ、ウインドウを出したままでタスクの完了を待つようにした。
  • Migemo を使ったインクリメンタルサーチが、エラーになってしまうのを修正。
2.17
  • WindowsXP の 描画問題 (http://support.microsoft.com/kb/436093/ja) の回避はやっぱり必要だったので復活。
  • インストールディレクトリや設定保存用ディレクトリのパスに、日本語の文字が含まれていた場合、エラーが発生していたのを修正。
  • filter_Subversion を若干高速化。.svn ディレクトリの下は特別処理するようにした。
  • ドキュメントを整備 (Pythonのコードブロックに色をつけるなど)

2012年4月8日日曜日

keyhac ver 1.44

keyhac ver 1.44 を公開した。


1.44
  • Keymap.editor に呼び出し可能オブジェクトを設定したとき、config.py の編集がエラーになっていたのを修正。
  • ドキュメントを整備 (Pythonのコードブロックに色をつけるなど)
  • getTopLevelWindow() がエラーになるケースがあったのを修正。
  • keymap.clipboard_history.maxnum の設定が、履歴の読み込み時に効いていなかったのを修正。
  • インストール場所やデータ置き場に、日本語文字が含まれているときに、エラーになっていたのを修正。

CraftLaunch ver 3.28

CraftLaunch ver 3.28 を公開した。

3.28
  • Window.maximize(), Window.minimize(), Window.restore() に、SetWindowPlacement() ではなく、WM_SYSCOMMAND を使うようにした。 これにより、最大化したまま最小化したウインドウを restore() するときに、通常サイズに戻ることなく、最大化状態で復帰するようにした。
  • xml.etree など、標準ライブラリの一部が含まれてなかったのを修正。
  • インストール場所やデータ置き場に、日本語文字が含まれているときに、エラーになっていたのを修正。

2012年4月7日土曜日

キーボードを挿したときにキーカスタマイズ切り替え

NotePCにUSBキーボードを挿したときに、keyhac のカスタマイズ内容を変更したい。

SetupDi API というものを使えば、デバイスを列挙できるらしいので、これが使えるかな。
http://support.microsoft.com/kb/259695/ja

2012年2月19日日曜日

LREdit ver 1.43

LREdit ver 1.43 を公開した。

http://sites.google.com/site/craftware/lredit


1.43
  • ブックマークの位置がずれてしまう問題を修正。
  • コマンドライン引数をUnicodeで扱うようにした。
  • インストール場所やデータ置き場に、日本語文字が含まれているときに、エラーになっていたのを修正。

2012年2月12日日曜日

keyhac ver 1.43

keyhac ver 1.43 を公開した。

ver 1.42 のバグ修正だ。
使用者の方々からメールと Twitter で問題のレポートをしていただいた。どうもありがとうございます。

http://sites.google.com/site/craftware/keyhac


1.43
  • D-, U-, O- がエラーになってしまっていたのを修正。

LREdit ver 1.42

LREdit ver 1.42 を公開した。

http://sites.google.com/site/craftware/lredit



1.42
  • 1.40からTagsジャンプが機能しなくなっていたのを修正。

1.41
  • Grep や Compare の結果を一覧するコマンド SearchResultList を追加。
  • 最近開いたファイルを一覧するコマンド RecentFileList を追加。
  • JumpNext と JumpPrev のコマンド名をそれぞれ SearchResultNext と SearchResultPrev に変更
  • Grep結果にジャンプしたとき、ヒット位置を選択するようにした。
  • ファイルのオープンに失敗したとき、ファイル履歴から削除するようにした。

2012年2月11日土曜日

keyhac ver 1.42

keyhac ver 1.42 を公開した。

http://sites.google.com/site/craftware/keyhac



1.42
  • キーボードのタイプによって、キーコードが異なる記号系のキーに関しても、 名前でキー入力条件を指定できるようにした。(Semicolonなど)
  • xml.etree など、標準ライブラリの一部が含まれてなかったのを修正。
  • デスクトップにキーボードフォーカスがある間、デフォルトキーマップが効かない問題を修正。
  • キーボードマクロの記録開始や停止のときに、バルーンヘルプを表示するようにした。


2012年2月4日土曜日

LREdit ver 1.40 公開

LREdit ver 1.40 を公開した。

http://sites.google.com/site/craftware/lredit

1.40
  • アウトライン解析機能を追加。
  • ファイルの末尾付近にブックマークがある状態で、 外部でファイルが変更されてブックマークの行がなくなった場合に、 ファイルオープン時にエラーになってしまっていたのを修正。
  • 日本語メッセージ固定になっている箇所があったのを修正。

今回追加したアウトライン解析機能の画面。
Ctags を使って、編集中のソースコードの、クラスやメソッドの位置を解析して、リスト表示する。

他のリストウインドウと同様、インクリメンタルサーチが可能だ。


2012年1月31日火曜日

アウトライン解析準備中

LREdit に、アウトライン解析機能を準備中。

ctags を使うと、class や method などを行番号つきでリストアップできるので、それをリスト表示したり、カーソル位置がどのMethod 煮所属しているかを表示したりできるはず。

ctags.exe --sort=no -n "test.py"

数年前、ctags で Pythonの解析をしたとき、Method のなかに、class を定義した場合などの、入れ子構造がちょっとだけ複雑になるだけで、間違った解析結果が出ていたのだが、今最新のctagsで動作をチェックすると、その問題は解決したように見える。
 
class Klass1:

    class Klass2:
        def method2(self):
            pass
   
    def method1(self):
       
        class Klass3:
            def method3(self):
                pass 

は、次のように出力される。

!_TAG_FILE_FORMAT    2    /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED    0    /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR    Darren Hiebert    /dhiebert@users.sourceforge.net/
!_TAG_PROGRAM_NAME    Exuberant Ctags    //
!_TAG_PROGRAM_URL    http://ctags.sourceforge.net    /official site/
!_TAG_PROGRAM_VERSION    5.8    //
Klass1    test.py    1;"    c
Klass2    test.py    3;"    c    class:Klass1
method2    test.py    4;"    m    class:Klass1.Klass2
method1    test.py    7;"    m    class:Klass1
Klass3    test.py    9;"    c    function:Klass1.method1
method3    test.py    10;"    m    class:Klass1.method1.Klass3

十分にエディタのアウトライン解析機能のために使えそうな印象だ。

2012年1月29日日曜日

LREdit ver 1.39 公開

LREdit ver 1.39 を公開した。

http://sites.google.com/site/craftware/lredit


1.39
  • キーボードのタイプによって、キーコードが異なる記号系のキーに関しても、 文字列でキー入力条件を指定できるようにした。
  • キーボードの種別を自動的に判別するようにした。
  • 選択範囲を大文字化/小文字化するコマンド、ToUpper ToLower を追加。 メニューバーの [編集] > [文字変換] にも追加。

2012年1月28日土曜日

LREdit ver 1.38 公開

LREdit ver 1.38 を公開した。

http://sites.google.com/site/craftware/lredit



1.38
  • キー入力条件を文字列 ( "C-Return" や "Shift-F10" など ) で指定するようにした。
  • プロジェクトファイルが作業ディレクトリ以外に存在するときに、GenerateTags が失敗していたのを修正。
  • 前を検索、の処理を高速化。
  • Ctrl + Shift + Up/Down で、スクロールしながら選択範囲を変更できるようにした。
  • デフォルト設定ファイルで、*.lre が Xmlモードになってしまっていたのを修正。
  • 古いプロジェクトファイル形式の残骸 project_ignore_pattern を削除。

キー入力条件に、Keyhacと似た記述方法で、文字列を与えるようにした。今後他のソフトウェアもこの方法に移行していく予定。

2012年1月22日日曜日

LREdit ver 1.37 公開


LREdit ver 1.37 を公開した。

1.37
  • ブックマークリストにゴミが残ってしまう問題を修正。
  • コマンドラインに直接 [PythonMode] や [JavaMode] のように入力できるようにした。
  • Mode や MinorMode コマンドのパラメタは、モードの表示用の文字列ではなく、[Mode;PythonMode] のようにクラス名を渡すようにした。
  • マイナーモードをフッタに表示するようにした。
  • モードの切り替え時に、ステータスバーに判りやすいメッセージを表示するようにした。
  • Blackテーマのときのスクロールバーが視認しにくかったので、見た目を調整した。
  • ブックマーク一覧の機能に、ローカルとグローバルの2種類を追加した。 ブックマーク一覧のリストウインドウで左右キーで切り替える。

LREdit ver 1.36 公開

LREdit ver 1.36 を公開しました。


http://sites.google.com/site/craftware/lredit

1.36
  • WordBreak の範囲判定が正しくなかったのを修正。
  • マウスによるキャレットの移動位置、テキスト選択範囲の拡張の動作が、 一般的なテキストエディタの動作と食い違っていたのを修正。
  • マイナーモードの例 TestMode の メニューがエラーになっていたのを修正。
  • xml.etree など、標準ライブラリの一部が含まれてなかったのを修正。
  • SubProcess クラスがプロセスの終了までブロッキングになってしまっていたのを修正。
  • ファイルの末尾付近にブックマークがある状態で、 外部でファイルが変更されてブックマークの行がなくなった場合に、 ファイルオープン時にエラーになってしまっていたのを修正。

2012年1月15日日曜日

内骨格 ver 2.16 公開

内骨格 ver 2.16 を公開した。

http://sites.google.com/site/craftware/cfiler



2.16
  • Ctrl + J の 検索結果ジャンプで、Shift を押しながら決定した場合は、検索結果リストをファイルリストに復帰させるようにした。
  • Ctrl + J の 検索結果ジャンプで、リスト空のときにエラーになってしまっていたのを修正。
  • デフォルト設定ファイルの filter_Subversion で、svn.exe を使って動作するようにした。svn 1.7 以降のフォーマットに対応するため。
  • xml.etree など、標準ライブラリの一部が含まれてなかったのを修正。
  • WindowsXP の 描画問題 (http://support.microsoft.com/kb/436093/ja) の回避が不要になったので廃止。

Subversionフィルタは、svn.exe を使うようになったので、速度的に改善の余地があるかも。

2012年1月9日月曜日

LREdit ver 1.35 公開

LREdit ver 1.35 を公開した。

http://sites.google.com/site/craftware/lredit


1.35
  • プロジェクトファイルの形式をテキストファイル形式に変更。テキストエディタで編集するものとした。
  • 左右のツリーペインを廃止。
  • ファイル一覧の機能を追加。
  • ブックマーク一覧の機能を追加。
  • ver 1.33で、描画がおかしくなってしまっていたのを修正。
  • クリップボードから空文字列を Paste したときに、文書が変更済みになってしまうのを修正。
  • テンポラリディレクトリのファイルを履歴に残さないようにした。
  • LoadTags コマンドに引数を渡すことができるようにした。
  • LREditの終了時、サブスレッド処理が完了してから、ウインドウを破棄するようにした。

ツリーペインを廃止。変わりにポップアップリストを使うようにした。
プロジェクトファイルは、GUIで管理するのをあきらめて、テキスト形式にした。

テキストエディタなのだから、プロジェクトファイルも、テキストエディタで編集できるべきだ、という割り切りだ。ただのファイルリストなので、これをプロジェクトファイルと名乗ってよいか迷ったけど。


内骨格 ver 2.15


2.15
  • ver 2.12で、テキストビューアが、ほかのウインドウの奥から出てきたときに、再描画されなくなってしまっていたのを修正。

ついでに、ちょっと描画が速くなっているはず。

2012年1月7日土曜日

内骨格 ver 2.14 公開

内骨格 ver 2.14 を公開した。

http://sites.google.com/site/craftware/cfiler


2.14
  • ver 2.12で、白テーマのときの背景が一部おかしくなってしまっていたのを修正。
  • ver 2.11で、ソート時に、直前のカーソル位置が保存されなくなっていたのを修正。
年末年始の更新分で混入したバグ修正ばっかり。

2012年1月4日水曜日

内骨格 ver 2.13 公開

内骨格 ver 2.13 を公開した。

https://sites.google.com/site/craftware/cfiler


2.13
  • フォント設定が即座に反映されない問題を修正。
  • ver 2.12で、ウインドウのクライアント領域周辺部分の再描画がされなくなっていた問題を修正。
  • アップデータを起動したとき、内骨格のプロセスが残存したままになってしまうのを修正。

2012年1月3日火曜日

Python で日本語テキストの単語区切り処理

LREdit の ver 1.34 で、日本語に配慮したWordBreak処理を実装した。


    wordbreak = ckit.WordBreak(
        ( 
            "\"!@#$%^&*()+|~-=\`[]{};:',./<>?", # 0
            ckit.UnicodeRange(u'0',u'z'),       # 1
            ckit.UnicodeRange(u'、',u'〟'),     # 2
            ckit.UnicodeRange(u'ぁ',u'ゖ'),     # 3
            " \t",                              # 4
        ),
        {
            -1 : [ 0, 1, 2 ],
             0 : [ -1, 1, 2, 3 ],
             1 : [ -1, 0, 2, 3 ],
             2 : [ -1, 0, 1, 3 ],
             3 : [ -1, 0, 1, 2 ],
             4 : [ -1, 0, 1, 2, 3 ],
        }
    )


この自作のWordBreakクラスには、どの文字種とどの文字種の間が単語区切りであるかを表すテーブルを渡す。

LREditでは、


    例) このソフトウェアは、柔軟なカスタマイズが可能なテキストエディタです。

は、以下のように分割される。


    この
    ソフトウェアは
    、
    柔軟な
    カスタマイズが
    可能な
    テキストエディタです
    。

平仮名は、送り仮名として使用するケースも多いので、漢字やカタカナの後ろに平仮名があっても、そこを単語区切りとは判別していない。

また、スクリプト言語、や、アドホック通信、のように、カタカナと漢字を組み合わせて単語として扱うケースも多いことから、漢字とカタカナの間も単語区切りとは判別していない。


日本語以外の文字種については、まったく考慮できていないので、もしこのテーブルを改善できる方がいたら大歓迎だ。

LREdit ver 1.34 公開

LREdit ver 1.34 を公開した。

http://sites.google.com/site/craftware/lredit


1.34
  • 日本語の文字についての単語区切りを実装。
  • 対応括弧へジャンプ ( Ctrl + B )、対応括弧まで範囲選択 ( Ctrl + Shift + B ) を追加。
  • フォント設定が表示に即座に反映されない問題を修正。
  • フォント設定がIMEのフォントサイズに即座に反映されない問題を修正。
  • Grep中にメモリ不足エラーが発生したときに、Grepが中断されてしまう問題を修正。


2012年1月2日月曜日

内骨格 ver 2.12 を公開した。

https://sites.google.com/site/craftware/cfiler


2.12
  • 描画速度を改善
  • Windows のフォント描画の設定で ClearType が有効になっている場合は、ClearType の品質でフォントを描画するようにした。
  • ファイルリストのグラデーションの表示が壊れてしまうことがあったのを修正。

LREdit ver 1.33 公開

LREdit ver 1.33 を公開した。

https://sites.google.com/site/craftware/lredit

1.33
  • 描画速度を改善
  • Windows のフォント描画の設定で ClearType が有効になっている場合は、ClearType の品質でフォントを描画するようにした。
  • Ctrl + ↑/↓ のスクロールを3行ずつにした。

手元の Windows 7 64bit では、ANTIALIASED_QUALITY は、CLEARTYPE_QUALITY よりもずいぶんと遅いようだ。
しかも、ANTIALIASED_QUALITY を使ったときのフォントの品質が悪い。
ANTIALIASED_QUALITYではなく、DEFAULT_QUALITYを使うようにしたら、 OSのフォント品質の設定に従うようになるうえに、速度も向上した。

あと、テキスト描画を最小限にすることで、速度の改善を行った。