flex-autopair v0.3:Emacs 24対応。指定したモードで無効化。モードごとの設定を強化など。

flex-autopair v0.3 をリリースします。変更点は以下です

  1. Emacs 24に対応しました
  2. モードを指定して無効にできるようにしました
  3. モードごとの設定を強化しました

変更詳細

1つめはEmacs 24への対応です。関西Emacsで[twitter:@masutaka]さんから報告を受けて気づきました。Emacs 24の新しいAPIを使おうとして、使い方が間違っていたため動かなくなっていたのを修正しました。

2つ目は無効にするモードの指定についてです。[twitter:@Fenril058]さんからの
提案を受けて、特定のモードで無効化することができるようにしました。
例えばlisp系のモードで無効にするには

(setq flex-autopair-disable-modes
        '(emacs-lisp-mode lisp-interaction-mode lisp-mode ilem-mode))

とします。これに関連して、v0.2までは
M-x flex-autopair-mode ですべてのバッファに対してトグルできましたが、
v0.3からは
M-x flex-autopair-mode で現在のバッファに対してトグル
M-x global-flex-autopair-mode で新規のバッファに対してトグル
となります。

3つめはモードごとの設定の強化です。v0.2までは条件設定(flex-autopair-conditions)をグローバルで持っていましたが、v0.3ではバッファごとに切り替えができるようになりました。これにより、

  • 設定が増えてもそれほど重くならない
  • 他のモードを気にせず書き換えられる

などのメリットがあります。
これに関連して各種モード用の設定を追加しました。

  • haskell-mode(')とcoffee-mode(`)の設定を追加しました。haskell-modeの方は(')がシンボル名としても使えるように、空白の後ろだけペアにするようになってます。[twitter:@regluu503]さんからのpull requestでした。
  • c系のモードで中括弧「{」を入れると自動で改行するようにしました。実際の動きは
{
    !! //←!!の場所にカーソルがインデントした状態で配置
}

みたいな感じです。こちらは第5回関西Emacs勉強会での id:lurdan さんからの要望を反映しました。

インストール方法

ソースがgithubにおいてあるので

(auto-install-from-url "https://raw.github.com/uk-ar/flex-autopair/0184a539b874e20938418e4dbeaec0665129bf46/flex-autopair.el")

を評価するか、
marmaladeから
M-x package-install flex-autopair
でインストール可能です。

その他

個人的に一番大きな変更点はモードごとの設定切り替えです。これで、設定が書きやすくなって実用的な使い方ができるかと思います。使ってみて設定の公開もしくはpull requestをしてみて下さい。