Diary?

2007-09-16
Sun

(00:59)

例のプラグインにさらにバグ発見。単語の補完機能と自動アンインデントがコンフリクトしてる。

どうしようかと思って調べたら、 Editor の get_object("WordCompletionManager") で単語補完機能のインスタンスが取得出来るから、それの状態を調べれば良さそう。

(追記) 単語補完機能にバグあり? どうも単語補完のウィンドウが可視化されても、その状態がマネージャに通知されてないっぽい。もうちょい調べる必要あり。

(さらに追記) 上の奴は俺の勘違いっぽい。

(02:03)

調査した結果、以下の事がわかった。

  • Scribes のプラグインには WordCompletion と WordCompletionGUI の二つのパッケージがある
  • グローバルに状態が公開されているのは WordCompletion の CompletionManager のみ
  • WordCompletionGUI の同名のクラスはグローバルに公開されていない

ということで、 CompletionManager の match-found と no-match-found をフックすることでどうにかなった。そもそも互いに補完関係にある二つのパッケージに同名のクラスがあることが混乱の元だったなあ。

(13:04)

LanguageModePlugin をアップデート。今回の変更点は

  • 多少は賢くなったオートアンインデト。例えば if ブロック内で else:, elif xxx: などとタイプするとアンインデントする
    • if ブロック内で突然 finally と打ってもアンインデントされる。別にあんまり賢く解析はしてない
  • カーソルの前に空白とタブしかない場合、バックスペースでアンインデントする
  • モジュール検索パスの決め打ちを止め、 SCRIBES.info より取得
  • return, yield などの前にカーソルがあるときに改行するとアンインデントされるバグを修正
  • 言語モードプラグイン用の基底クラスを作成

以下は既知のバグ。

  • 相変わらず新しいファイルや別拡張子のファイルを .py にリネームしても Python モードにならない。 FileSave プラグインの受け取るシグナルをフックすれば良さそうなので、解決は出来るはず。
  • 選択モード時にもバックスペースでオートアンインデントされる。致命的じゃないけどウザいので修正したい

そういや選択モード時に「選択範囲をコメントアウト/コメント解除」があると便利かもしれない。あと将来追加される (今も __future__ から取得できたっけ?) with ステートメントはどうしようかなあ。今から対応するかなあ。

(15:51)

職業訓練真っ最中の妹一号が「新しい PC が無いと不便」と言い出したので、なんぼか (下手すりゃ全額) 俺が出資する事に。それは別にいいとして、事務職となると結局あの糞 Office を使う羽目になるわけで、さらには訓練校では Vista を使っているとのことで、なし崩し的に Vista マシンを買うことになりそうだ。やってらんねえ。

ところで Vista っていろいろバージョンがあるみたいだけど、どれ買えばいいんだ? どうも "Home Basic" というのは極めつけのクソ (ってか半分詐欺) らしいので、多分 "Home Premium" になるんだろう。 Ultimate とかは多分いらんだろ。

Creative Commons
この怪文書はクリエイティブ・コモンズ・ライセンスの元でライセンスされています。引用した文章など Kuwata Chikara に著作権のないものについては、それらの著作権保持者に帰属します。