您的功能请求是否与问题有关?
我经常将光标放在我想评估的表单中。 通常在丰富的评论中,我编辑一个参数并想尝试重新评估包装形式。 如果它在(comment)
块的中间,我需要转到下一行的开头(邪恶/vim 诅咒,不能将光标放在最后一个字符之后)并运行cider-eval-last-sexp
。
描述您想要的解决方案
理想情况下,我想留在光标所在的位置并运行包含它的括号表达式。 查找封闭括号是通过搜索左侧的第一个开头括号来完成的。 通过universal-argument
搜索第二高的封闭括号,可以轻松地丰富该函数。
描述你考虑过的替代方案
我查看了所有cider-eval-*
函数,但没有找到满足我需求的函数。 也许我只是瞎了:)
另一个可以覆盖 80-90% 用例的选项是,如果cider-eval-defun-at-point
将(comment)
块视为特殊块,并将每个内部表单视为单独的顶级表单。
附加上下文
另一个可以覆盖 80-90% 用例的选项是,如果 cider-eval-defun-at-point 将(评论)块视为特殊的,并将每个内部形式视为单独的顶级形式。
我以为@dpsutton 不久前已经实现了这样的东西。
理想情况下,我想留在光标所在的位置并运行包含它的括号表达式。
cider-eval-sexp-at-point
不适合你?
让|
成为光标。 那么对于
(comment (+ 2| 3))
cider-eval-defun-at-point
返回nil
cider-eval-sexp-at-point
返回2
我想评估(+ 2 3)
部分并得到5
作为结果。
@xificurC你是(setq clojure-toplevel-inside-comment-form t)
吗?
嗨@dakra ,不,因为我不知道那个变量。 令人惊讶的是(至少对我而言)它是 clojure 而不是苹果酒。
我仍然会考虑最初的建议,但我会尝试一下,看看它是否适合我的用例。 谢谢!
令人惊讶的是(至少对我而言)它是 clojure 而不是苹果酒。
因为 sexp 边界的逻辑存在于clojure-mode
。
最有用的评论
@xificurC你是
(setq clojure-toplevel-inside-comment-form t)
吗?