2013年9月1日日曜日

Github にソース移行しました

craftwareのソースコードを、Githubで管理することにしました。

https://github.com/crftwr


LREdit ver 1.73

LREdit ver 1.73 を公開した。




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

1.73
  • SeekModifiedLineNext などの SeekXxxx 系コマンドの名前を、CursorXxxx に変名。
  • 前後のブックマークや変更行まで選択するコマンドを追加 ( SelectModifiedLinePrev, SelectModifiedLineNext, SelectBookmarkPrev, SelectBookmarkNext, SelectModifiedOrBookmarkPrev, SelectModifiedOrBookmarkNext )
  • Alt + Shift + ↑/↓ にブックマークか変更行まで範囲選択を割り当て。
  • ドキュメントをリファレンスのツリー形式に統合。
  • ドライブレターの大文字小文字が食い違っている場合に、ブックマークが削除できなかったのを修正。

2013年8月16日金曜日

LREdit ver 1.72

LREdit ver 1.72 を公開した。

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


1.72
  • デフォルト設定ファイルに、連続で重複する行を削除するコマンド Unique を追加。テキストの行単位のフィルタリングの例として。
  • デフォルト設定ファイルに、検索にヒットする行全てをブックマークするコマンド SearchAndBookmark を追加。
  • Grep や Compare のジャンプ先が、編集によって削除されてしまった場合の、ジャンプ先の行番号補正に問題があり、編集前の行番号にジャンプしてしまうケースがあったのを修正。
  • 起動済みの LREdit に、IPCでファイルオープンを要求するとき、要求元のカレントディレクトリからの相対パスで記述されたファイル名を、そのまま起動済みの LREdit のカレントディレクトリからの相対パスとして処理しようとしてしまっていたのを修正。
  • SaveAs でファイルの名前を変更したときに、タブバーに表示されるファイル名が更新されていなかったのを修正。

keyhac ver 1.61

keyhac ver 1.61 を公開した。

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

1.61
  • クリップボード履歴として保存するデータの最大合計サイズを keymap.clipboard_history.quota で設定できるようにした。
  • デフォルト設定ファイルに、クリップボードのテキストを変換して貼りつける機能の例を追加。(Quote,Indent,Unindent)
  • デフォルト設定ファイルに、クリップボードのテキストをデスクトップにファイルとして保存するコマンドの例を追加。
  • フックのなかで与えられた関数を実行するメソッド、Keymap.hookCall() を追加。
  • クリップボード履歴リストからの貼り付け処理に Keymap.hookCall() を使うようにして、キーが押しっぱなしになってしまう可能性があったのを修正。
  • テキストファイルを編集するメソッド、Keymap.editTextFile() を追加。
  • OS 起動直後など Keymap.getTopLevelWindow() が None を返すことがあり、command_MoveWindow_MonitorEdge でエラーが発生することがあったのを修正。

2013年8月11日日曜日

LREdit ver 1.71

LREdit ver 1.71 を公開した。

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


1.71
  • プロジェクトファイルの隣に TAGS ファイルが存在しないときに Ctrl-J でジャンプしようとすると、エラーが発生していたのを修正。
  • TagsJump で行番号が範囲外だったときにエラーが発生していたのを修正。
  • 巨大なテキストファイルを開いている状態で、リストウインドウやメッセージダイアログが操作不能になってしまう場合があったのを修正。
  • 巨大なファイルを扱ったときに、シンタックスハイライトの解析処理のせいで、全ての挙動が遅くなってしまうのを修正。
  • "../" を含むプロジェクトファイルを Grep したとき、ログへのファイル名出力がおかしくなるのを修正。

2013年7月20日土曜日

[Python3] CraftMemo ver 1.20 正式版

CraftMemo ver 1.20 正式版 を公開した。

Python 3.3.2 を使ったバージョンだ。

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

1.20
  • Python27 から Python33 に移行。
  • Visual C++ 2010 を使うようにした。
  • shellExecute を pyauto 版に変更。
  • Google Docs を使った同期機能を廃止した。
  • Dropbox を使ってメモを同期できるようにした。
  • default_note_color を default_memo_color に変名。
  • NoteWindow を MemoWindow に変名。
  • configure_NoteWindow を configure_MemoWindow に変名。
  • リストからアクティブにしたときに、アクティブにしたメモが目立つようにした。
  • メモを新規作成したときに、他のメモに重ならないように位置調整するようにした。
  • モニターの近いほうのエッジとの距離を保って、サイズ変更するようにした。
  • 一行表示モードを保存するようにした。
  • Python の標準ライブラリを同梱するようにした。
  • 新規のメモを作成するとき、BOM をつけるようにした。
  • 再起動すると、メモの色と表示モードがリセットされてしまっていたのを修正。

[Python3] CraftLaunch ver 3.30 正式版

CraftLaunch ver 3.30 正式版 を公開した。

Python 3.3.2 を使ったバージョンだ。

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

3.30
  • Python27 から Python33 に移行。ベータ版。
  • コマンドラインに TAB を含む文字列を入力したときに、表示がおかしくなるのを修正。
  • shellExecute を pyauto 版に変更。
  • コマンド実行時に、"ValueError: already destroyed." が発生するケースがあったのを修正。

2013年7月16日火曜日

[Python3] CraftMemo ver 1.20 beta 2

CraftMemo ver 1.20 beta 1 を公開した。

Python 3.3.2 を使ったバージョンだ。

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

1.20 beta 2
  • 新規のメモを作成するとき、BOM をつけるようにした。
  • 再起動すると、メモの色と表示モードがリセットされてしまっていたのを修正。
1.20 beta 1
  • Python27 から Python33 に移行。ベータ版。
  • Visual C++ 2010 を使うようにした。
  • shellExecute を pyauto 版に変更。
  • Google Docs を使った同期機能を廃止した。
  • Dropbox を使ってメモを同期できるようにした。
  • default_note_color を default_memo_color に変名。
  • NoteWindow を MemoWindow に変名。
  • configure_NoteWindow を configure_MemoWindow に変名。
  • リストからアクティブにしたときに、アクティブにしたメモが目立つようにした。
  • メモを新規作成したときに、他のメモに重ならないように位置調整するようにした。
  • モニターの近いほうのエッジとの距離を保って、サイズ変更するようにした。
  • 一行表示モードを保存するようにした。
  • Python の標準ライブラリを同梱するようにした。

2013年7月14日日曜日

[Python3] 内骨格 ver 2.40 正式版

内骨格 ver 2.40 正式版 を公開した。

Python 3.3.2 を使ったバージョンだ。

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

2.40
  • Python27 から Python33 に移行。
  • Python3 の sort() の仕様にあわせて、sorter_Xxxx の動作を調整した。 functools.cmp_to_key を使わないようにした。
  • パスワードのかかったアーカイブの仮想ディレクトリからの、ファイルコピーをキャンセルしたときに、エラーが発生していたのを修正。

[Python3] LREdit ver 1.70 正式版

LREdit ver 1.70正式版を公開した。

Python 3.3.2 を使ったバージョンだ。

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


1.70
  • Python27 から Python33 に移行。
  • ブックマークされた行を削除するコマンド RemoveMarkedLines を追加。メニューにも追加。
  • ブックマークされてない行を削除するコマンド RemoveUnmarkedLines を追加。メニューにも追加。
  • 行き先として、行番号とTAGSのシンボル名の両方を受け付けることができる Jump コマンドを追加。
  • C# のシンタックスカラーリングに volatile を追加。
  • migemo.dll を同梱するようにした。

2013年7月7日日曜日

keyhac ver 1.60 正式版

keyhac ver 1.60 を公開した。

Python 3.3.2 を使った正式なバージョンだ。

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

1.60
  • Python27 から Python33 に移行。
  • Firefox 22.0 から、クリップボード履歴へのコピーが失敗するようになってしまっていた問題を回避。OpenClipboard()を、WM_DRAWCLIPBOARD の中ではなく、delayedCall() で呼ぶようにした。

2013年6月30日日曜日

[Python3] CraftLaunch ver 3.30 beta 1

CraftLaunch ver 3.30 beta 1 を公開した。

Python 3.3.2 を使ったバージョンだ。

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

3.30 beta 1
  • Python27 から Python33 に移行。ベータ版。
  • コマンドラインに TAB を含む文字列を入力したときに、表示がおかしくなるのを修正。
  • shellExecute を pyauto 版に変更。
 

2013年6月23日日曜日

LREdit で インラインの計算機

LREdit で インラインの計算機を追加する例だ。

数式を選択して、Ctrl + Plus を押すと、選択範囲が計算結果にReplaceされる。

テキストエディタから、別の計算機のウインドウにフォーカス移動したくない人用。


    #----------------------------------------------
    # inline calculator command

    def command_Calculate(info):

        edit = window.activeEditPane().edit
        selection = edit.selection
        text = edit.getText( selection.left(), selection.right() )

        try:
            result = eval(text)
        except:
            print( "ERROR : couldn't evaluate :", text )
            return

        if isinstance(result,int):
            text = "%d" % result
        elif isinstance(result,float):
            text = "%f" % result
        else:
            return False

        edit.modifyText( text=text )

    window.launcher.command_list += [
        ( u"Calculate", command_Calculate ),
    ]

    window.keymap[ "C-Plus" ] = command_Calculate

2013年6月15日土曜日

[Python3] 内骨格 ver 2.40 beta 2

内骨格 ver 2.40 beta 2 を公開した。

Python 3.3.2 を使ったバージョンだ。

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


2.40 beta 2
  • Python33 版で履歴ジャンプが失敗していたのを修正。
  • Python33 版でアーカイブの中のディレクトリコピーが失敗していたのを修正。
  • Python33 版でファイル比較が失敗していたのを修正。
  • Python33 版で Jpeg などの一部の画像形式が開けなかったのを修正。

2013年5月26日日曜日

[Python3] LREdit ver 1.70 beta 1

LREdit ver 1.70 beta 1 を公開した。

Python 3.3.2 を使ったバージョンだ。

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

1.70 beta1
  • Python27 から Python33 に移行。ベータ版。
  • migemo.dll を同梱するようにした。

[Python3] keyhac ver 1.60 beta 1

keyhac ver 1.60 beta 1 を公開した。


Python 3.3.2 を使ったバージョンだ。

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

1.60 beta1
  • Python27 から Python33 に移行。ベータ版。

2013年5月19日日曜日

LREdit ver 1.63

LREdit ver 1.63 を公開した。

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


1.63
  • Tagsジャンプのジャンプ履歴を戻るための TagsBack コマンドを追加。
  • オープンや保存でファイル名を入力する際、ディレクトリ名を除くファイル名部分を選択状態にした。 (名前が少しだけ異なるファイルをオープンする場合や、ディレクトリを変更せずに名前だけ変更して保存したい場合、ファイル名をクリップボードにコピーしたい場合で便利なように。)
  • LREdit の 起動引数にバイナリファイルを渡したとき、起動に失敗していたのを修正。

keyhac ver 1.52

keyhac ver 1.52 を公開した。

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

1.52
  • shellExecute() を ckit ではなく pyauto のものを使うようにした。これに伴って、第一引数の hwnd が廃止された。
  • command_ShellExecute() の hwnd 引数を廃止した。
  • Keymap.popListWindow(), Keymap.cancelListWindow(), Keymap.isListWindowOpened() を追加し、クリップボード履歴以外の目的にもリストウインドウを利用できるようにした。
  • Window.setDelayedCall() を Window.delayedCall() に変名。
  • Balloon のフォントがおかしくなっていたのを修正。
  • モディファイアを押している間にマウスのボタンを押したら、ワンショットモディファイアが発動しないようにした。

2013年5月12日日曜日

keyhac ver 1.51

keyhac ver 1.51 を公開した。

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


1.51
  • ini ファイルに [DEBUG] send_input_on_tru = 1 が設定されているときだけ、TRU で Input.send() するようにした。 (常に Input.send() してしまうと、Win8 で Alt-TAB などが使えなくなっていたため。)
  • Keymap.callHotKey を廃止。クリップボード履歴リストは Window.setDelayedCall を使って呼び出すようにした。
  • ini ファイルの不要なセクションを削除 ( [FONT], [COLOR] )
  • APIリファレンスを整備した。

LREdit ver 1.62

LREdit ver 1.62 を公開した。

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

1.62
  • 1画面モードのときに Compare を実行したときは、比較対象を、ファイル名を入力させるのではなく、ドキュメントリストから選択するようにした。
  • CompareCase, CompareWhiteSpace コマンドを廃止して、CompareOptions コマンドに統合した。
  • 行番号ジャンプで、数値以外を入れるとエラーになっていたのを修正。
  • Batchファイルが開けなくなってしまっていたのを修正。
  • TAGSファイルのタイムスタンプが更新されているときに、リロードするようにした。
  • TAGSファイルのシンボル名に多バイト文字が含まれているときに、UnicodeWarning が出ていたのを修正。
  • C#の var をキーワードとして色付けするようにした。
  • ログペインのスクロールバーが下にはみ出てしまうことがあったのを修正。
  • APIリファレンスを整備した。
 

2013年5月11日土曜日

LREdit で Subversion の base バージョンと比較するコマンド

LREdit で Subversion の base バージョンと比較するには、以下のようにするとよい。
TortoiseSVN がインストールされていることが前提。

    def command_SubversionDiff(info):
        # compare with base version of svn
        edit = window.activeEditPane().edit
        fullpath = edit.doc.getFullpath()
        if fullpath:
            dirname, filename = splitPath(fullpath)
            cmd = [ "c:/Program Files/TortoiseSVN/bin/TortoiseProc.exe", "/command:diff", "/path:%s" % filename ]
            window.subProcessCall( cmd, cwd=dirname )

2013年5月7日火曜日

LREdit ver 1.61

LREdit ver 1.61 を公開した。

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


1.61
  • MainWindow.subThreadCall() と MainWindow.subProcessCall() が、1.60 から動かなくなってしまっていたのを修正。

1.60でアウトライン解析と、TAGSジャンプが機能しなくなってしまってました。

2013年5月6日月曜日

Keyhac の モディファイア押しっぱなし現象

Keyhac の モディファイア押しっぱなし現象のメモ。
 
電源オプションの[ディスプレイの電源を切る] が働いている状態から、モディファイアキーの素早い短押しで復帰したとき、そのモディファイアが押しっぱなしになってしまう。
 
スクリーンセーバや、ディスプレイが暗くなっているだけのときには再現しない。
再現するPCと、再現しないPCがあるみたい。ほかのソフトウェアとの相性も疑わしい。

Keyhac側からは、問題が起きていることを検出することはできず、なかなか解決が難しい、、、

しばらく、[ディスプレイの電源を切る] を [なし] にして、ほかにおきるケースが無いか様子を見ることにする。

LREdit ver 1.60

LREdit ver 1.60を公開した。

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

1.60
  • コマンドラインに TAB を含む文字列を入力したときに、表示がおかしくなるのを修正。
  • コマンドラインからコマンドを実行するとき、コマンドの実行の前にステータスバーの領域を明け渡すようにした。
  • 大きなプロジェクトファイルを開いているとき、プロジェクトアイテムリストやブックマークリストを表示するのが遅かったのを修正。
  • Tags ファイルの読み込み中に、ステータスメッセージを表示するようにした。
  • Tags ファイルの読み込みを、Esc でキャンセルできるようにした。
  • ver 1.54 でアイコンがおかしくなっていたので戻す。

2013年5月5日日曜日

keyhac ver 1.50

keyhac ver 1.50 を公開した。

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

1.50
  • getAsyncKeyState()をつかって、キーが押されていない場合に、KeyUp を省略する処理を廃止。 (VAIO Z の Fn + F3, Fn + F4 によるボリューム調節操作が、押しっぱなしになってしまう問題を修正。)
  • 定期的なサブスレッド処理を行うための Cron 機能を追加。
  • Keymap.setFont()、Keymap.setTheme() を追加。

2013年5月4日土曜日

内骨格 ver 2.30

内骨格 ver 2.30 を公開した

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

2.30
  • zip/tgz/bz2 を、Python標準モジュールではなく、7-zip32.dll と tar32.dll を使うように変更。
  • 大きなサイズの zip/tgz/bz2 で、MemoryError になってしまう問題を修正。
  • パスワードつきの Zip ファイルを展開できるようにした。
  • アーカイブ中のファイル名に[能]などの文字が使われている場合に扱えなかった問題を修正。
  • アーカイブファイルのファイル名パターンとアーカイバクラスの関連付けを archiver_list でカスタマイズできるようにした。また、これによって、アーカイバクラスを自作して追加することができるようにした。
  • Grep と Search について、適用中のフィルタを使って、検索範囲を限定するようにした。
  • Grep と Search について、隠しファイルのを非表示にしているときは、隠しファイルを検索対象から除外するようにした。
  • Iniファイルのロードに失敗する問題の調査のために、エラー発生時にメッセージボックスを表示するようにした

2013年4月29日月曜日

LREdit ver 1.56

LREdit ver 1.56を公開した。

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

1.56
  • 1.55 で Ini ファイルが読めなくなっていたのを修正。
  • White テーマのとき、Compare 機能の差分箇所の色が Readonly の背景色と一緒になってしまっていたのを修正。

keyhac ver 1.48

keyhac ver 1.48 を公開した。

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

1.48
  • モディファイアが押されっぱなしになってしまう問題を修正。 (TRUのときも、Input.send() を使ってキー入力生成処理を行うようにした。)
 

2013年4月28日日曜日

LREdit ver 1.55

LREdit ver 1.55を公開した。

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

1.55
  • 選択範囲を全角文字化/半角文字化するコマンド、ToZenkaku ToHankaku を追加。
  • lredit_usernamespace.call() を callConfigFunc() に変更。
  • Mode の staticconfigure() 中のエラーで起動が失敗しないようにした。
  • コマンドの info 引数に、None が渡されるケースがあったのを修正。CommandInfo が渡るようにした。
  • Duplicate した文書の編集時、もう片方のペインが再描画されないのを修正。
  • アイコンのサイズのバリエーションに足りないものがあって、ディスプレイのDPI設定によって表示されないことがあったのを修正。
  • TextEditWidget を ckit に移動。ついでに、文言テーブルや config.py を扱うモジュールも ckit に移動。
  • Iniファイルのロードに失敗する問題の調査のために、エラー発生時にメッセージボックスを表示するようにした。

2013年4月26日金曜日

LREdit で フォントサイズを変更するコマンド

LREdit で フォントサイズを変更するのは、通常、設定メニューから行いますが、
以下のようなコマンドを用意すると、コマンドラインから変更できるようになります。


    #----------------------------------------------
    # FontSize command

    def command_FontSize(info):
        if len(info.args) >= 1:
            try:
                size = int( info.args[0] )
            except ValueError, e:
                print "ERROR : invalid font size"
                return
        else:
            size = window.ini.getint( "FONT", "size" )
            size = window.inputString( u"Size", str(size), [] )
            try:
                size = int(size)
            except ValueError, e:
                print "ERROR : invalid font size"
                return

        window.setFont( unicode(window.ini.get("FONT","name"),"utf8"), size )
        window_rect = window.getWindowRect()
        window.setPosSize( window_rect[0], window_rect[1], window.width(), window.height(), 0 )

    window.launcher.command_list += [
        ( u"FontSize", command_FontSize ),
    ]



頻繁にフォントサイズを変更する人用。
(プレゼンにテキストエディタを使う人とか。)