■
lex_hook_on_initの仕様を変更。モードローカルのKeyMapをフック内でインストールできるようにした。フック用Fanctionの引数eventにkey定義を追加。デフォルトでサブモードを変更するキー定義が追加されている。関数が実体であることに注意。
event.keys = { (キーコード , 修飾キー) : 実行される関数 }
正直な話、キーを定義するだけならHookを使わなくても以下の書式でなんとかなると言えば、なんとかなる。サンプルはGoo翻訳(*Megahurtzさんのところの)
import clmode mode = clmode.Top() # Goo翻訳を使用 def ExecGoo(): import clgoo clgoo.Goo() mode.SetKeyDownHandler( ord('T'), MODKEY_CTRL, ExecGoo )
ついでに無印CraftLaunchにあった空欄コマンドの機能限定版のオプションを追加した。何も入力されていない状況、もしくはパラメータのみ入力した状況でEnterを入力すると設定されたコマンドを実行できる。無印ではShiftとかCtrlとかの修飾キーが押された場合も定義出来ていたようだけど、Exの場合は通常のEnterでないならSetKeyDownHandlerで定義すればいいと思うのでこれで充分ではないだろうか。