yasnippetsがactionscript-modeでも動くようにする

うー。python-modeディレクトリに入れたスニペットは発動するのにactionscript-modeディレクトリに入れたのは発動しないぞ。なぜだ。

        • -

TABを押してもyas/expandが呼ばれないね。キーマップが衝突しているみたいだけど、python-modeにももちろんTABに対するキーマップはあるはず。actionscript-modeはなぜうまく動かない。行儀の悪い方法を使っているのか?

        • -

actionscript-modeは
(setq actionscript-mode-map (c-make-inherited-keymap))
で初期化していて、
python-modeは
(setq py-mode-map (make-sparse-keymap))
で初期化している。

ためしにactionscript-modeの初期化をかえてみたがダメだ。

        • -
(mapcar 'car minor-mode-map-alist)
;=> (yas/minor-mode hs-minor-mode encoded-kbd-mode view-mode)

minor-modeにはyas/minor-modeが入っているんだけどな。

        • -

気づいた。
(Lisp Interaction yas) ok
(Fundamental) ng
(Python yas) ok
(ActionScript hs) ng

tmp.as: yas/minor-mode ;=> nil
tmp.py: yas/minor-mode ;=> t

minor-modeがオフになってる><

        • -

as-config.el

;; Automatically use hideshow with actionscript files.
(add-hook 'actionscript-mode-hook 'hs-minor-mode)

とても怪しい。コメントアウトしてみる。(ActionScript hs)が(ActionScript)にかわっただけでyasはnilのままだ。

        • -

明らかに正しい解決方法ではないがむりやりhsを読み込んでいた方法で無理矢理yasを読み込む。

;; Automatically use hideshow with actionscript files.
;;(add-hook 'actionscript-mode-hook 'hs-minor-mode)
(add-hook 'actionscript-mode-hook 'yas/minor-mode)

お、やった、yasが動くようになった。hsが何をするものか知らないけどコメントアウトを外しておいた。

        • -

とりあえず対処療法的には動くようになったけど、major-modeに手を入れてminor-modeを動かすのは変だ。どうやるのが正しい方法だろうか。