【发布时间】:2020-10-25 13:12:54
【问题描述】:
是否可以在 Emacs 中自动完成 defprotocol 方法?
一个例子:
(defprotocol Foo
(bar [this])
(baz [this])
(deftype Qux [a b c]
Foo
(bar [this] a)
(baz [this] b))
(bar (Qux. 1 2 3))
(baz (Qux. 1 2 3))
我正在寻找这样的东西(在伪代码中):
;; (1)
(`M-Tab` (Qux. 1 2 3))
;;
;; or (2):
(-> (Qux. 1 2 3) `M-Tab`)
使用bar 和baz 选项触发下拉菜单。
作为一种解决方法,我目前正在使用 (2),但它至少需要存在第一个字符(自动完成所有选项不起作用)。
有没有更好的方法呢? 谢谢
【问题讨论】:
-
对我来说,自动完成也适用于情况 (1) 当一个字符存在时。它似乎并没有具体了解属于该协议的功能,CIDER 只是了解范围内的功能。如果没有第一个字符,
completion-at-point似乎不会切换。也许您可以尝试在 clojurians.slack.org 的 #cider 上提问? -
@ErwinRooijakkers 如果您想发表您的评论作为答案,我会接受它,因为好吧.. 它回答了问题:)
-
耶!谢谢你。积分!
标签: emacs clojure autocomplete cider