使用匿名函数语法时,如何在clojure emacs设置中添加λ钩子?

时间:2014-11-02 21:19:01

标签: emacs clojure lambda installation hook

我正在设置一个Clojure emacs环境,它开始看起来很恶心。由于我安装了其中一个软件包,(fn [x]...)语法会自动填充到(ƒ [x] ...)。我只想添加相同类型的效果,但对于#(func % %2)语法,要使其λ(func % %2)

有人可以告诉我哪个包需要编辑才能实现这个目的?

这些是我安装的一些基本内容: 起动机 - 试剂盒, Clojure的模式, paredit, 苹果酒, 彩虹分隔符, 彩虹模式, 弹出, 苹果酒, CLJ-DOC, 类型化Clojure的模式, 自动完成

1 个答案:

答案 0 :(得分:2)

您需要安排在after-init-hook中调用此类内容,修改以适应。请注意,对于没有类似自定义设置的读者来说,这会弄乱文件的缩进。

(dolist (mode '(clojure-mode clojurescript-mode cider-mode))
  (eval-after-load mode
    (font-lock-add-keywords
     mode '(("(\\(fn\\)[\[[:space:]]"  ; anon funcs 1
             (0 (progn (compose-region (match-beginning 1)
                                       (match-end 1) "λ")
                       nil)))
            ("\\(#\\)("                ; anon funcs 2
             (0 (progn (compose-region (match-beginning 1)
                                       (match-end 1) "ƒ")
                       nil)))
            ("\\(#\\){"                 ; sets
             (0 (progn (compose-region (match-beginning 1)
                                       (match-end 1) "∈")
                       nil)))))))