如何让Emacs、CIDER与shadow-cljs的项目连接流程更自动化?
自动完成CIDER + shadow-cljs的REPL启动流程
你可以通过配置Emacs变量或自定义命令实现自动化,完全不需要修改CIDER的本地包文件,具体方案如下:
方案一:全局预设默认值
在你的Emacs配置文件(比如init.el或.emacs)中添加以下配置,全局设定shadow-cljs相关的默认选项:
;; 设置CLJS REPL类型为shadow-cljs (setq cider-cljs-repl-type 'shadow) ;; 设置shadow-cljs默认构建目标为"app" (setq cider-shadow-cljs-default-build "app")
之后再执行cider-jack-in-cljs时,就会自动跳过选择步骤,直接启动目标REPL。
方案二:自定义一键启动命令
如果不想全局修改默认值,或者需要快速触发特定流程,可以封装一个自定义命令:
(defun my-cider-jack-in-shadow-app () "一键启动shadow-cljs的app构建REPL" (interactive) ;; 临时覆盖变量值,不影响全局配置 (let ((cider-cljs-repl-type 'shadow) (cider-shadow-cljs-default-build "app")) (cider-jack-in-cljs))) ;; 绑定快捷键(示例:C-c M-s) (global-set-key (kbd "C-c M-s") #'my-cider-jack-in-shadow-app)
之后按下绑定的快捷键,就能直接完成整个启动流程。
方案三:项目级专属配置
如果不同项目有不同的构建目标需求,可以在项目根目录创建.dir-locals.el文件,添加项目特定配置:
((clojure-mode . ((cider-cljs-repl-type . shadow) (cider-shadow-cljs-default-build . "app"))))
当你在Emacs中打开该项目的文件时,这些配置会自动生效,执行cider-jack-in-cljs时会自动使用项目预设的选项。
内容的提问来源于stack exchange,提问作者Pedro Delfino
相关产品推荐
相关产品推荐

