想知道大家是怎么给ClojureScript设置Emacs CIDER的?能补全 (js/ )
之类的么?最好是设置 bREPL。
如何设置Emacs CIDER提供完美的CLJS bREPL补全?
DogLooksGood
#4
JS的补全后端我比较推荐Tide,但是没有尝试过设置到Cider。应该不是那么简单的一件事,简单来说应该是以下几步:
- 在CLJS repl启动之后,把tide启动起来;
- 创建一个company-backend,这个backend在出现
xxx/
的代码的时候生效; - 把
xxx/
换成xxx.
调用Tide的那个补全的Api。
company支持把多个补全列表组合起来显示,tide估计也支持提供文本,返回补全文本。所以应该是可行。
甚至我觉得连eldoc都应该是可行的。
stardiviner
#5
你说的Tide是这个么? https://github.com/ananthakumaran/tide
按照你的思路,我也觉得可行。而且不会实现起来不会太难。
话说这样会不会只是提供 js/
下的补全?无法支持其他的 ClojureScript 补全?我在CLJS上还是菜鸟,问一下CLJS下只有 js/
是JS interop么?如果是的话,我觉得按照你的思路可以写一个插件之类的。你创建一个,我或许可以contribute一下。
DogLooksGood
#6
并不是,JS interop有几种。
比如
(ns ...
(:require ["react" as React]))
;; 模块下的函数调用
(React/createElement ...)
;; 取属性
(defn cb [^js/MouseEvent e]
(.-target e))
;; 函数调用
(.log js/console "hello")
;; or
(js/console.log "hello")
;; or
(console.log "hello")
情况挺多的,估计cursive的作者对这个应该比较清楚,应该可以问问他。
cursive好像有这方面的支持。
我没有打算做这种插件。。我觉得这个功能不是很有必要。
我个人是偏向于一边查文档一边写的那种。