LoginSignup
3
2

More than 3 years have passed since last update.

swift-modeでのsmartparensを少し改良する

Last updated at Posted at 2017-03-10

最近emacsをspacemacsに移行したら、spacemacsにはsmartparensというelispがデフォルトではいっていて、モードに関係なくグローバルに有効になっている。

smartparens.el での括弧処理

これがswiftの文字列リテラルにクロージャの評価結果を直接埋め込む\(...)という記法と相性が悪くて、

\(

っていれた途端、

\(\)

と、対応する閉じ括弧\)が自動的に挿入されてしまい、イラッとする。

調べてみたら、smartparensには独自の括弧対応を定義する機能があり、\(を入れると自動的に\)がはいるよう定義されているのが原因らしい。

モードにローカルな括弧を定義するsp-local-pairという機能もあるので、これをつかうと\(にたいして普通の)を挿入するようにできる。

(add-hook 'swift-mode-hook
      (lambda ()
            ...
            (sp-local-pair 'swift-mode "\\(" ")")
            ....
            ))

これで解決。むしろ改善。

かつてLispプログラマだったこともあり、smartparens自体は良く出来ていると思う。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2