推荐使用 Calva 插件配置 Clojure 开发环境:安装 Calva 后,新建。clj 文件,通过命令启动项目 REPL 并自动连接 Leiningen 或 Clojure CLI;Conjure 适合已有 nREPL 服务的用户,需手动配置端口并连接;clj-kondo 提供静态分析,需 Homebrew 安装并配置路径与规则。

如果您希望在 Visual Studio Code 中高效编写 Clojure 代码,但尚未配置合适的语言支持与交互式 开发环境,则可能是由于缺少核心插件或 REPL 集成未正确建立。以下是实现 Clojure 现代化开发的多种配置路径:
本文运行环境:MacBook Air,macOS Sequoia。
一、安装 Calva 插件并连接本地 REPL
Calva 是专为 Clojure 设计的 VSCode 扩展,提供语法高亮、括号匹配、代码格式化、求值支持及内嵌 REPL 终端。它通过 nREPL 协议与 Clojure 运行时通信,无需手动启动远程会话即可完成实时交互。
1、打开 VSCode,点击左侧扩展图标(或按 Cmd+Shift+X),在搜索框中输入 Calva,选择由 Better Than Tomorrow AB 发布的官方插件并安装。
2、新建一个以 .clj 为后缀的文件,例如 hello.clj,并在首行输入 (ns hello)。
3、按下 Cmd+Shift+P,输入 Calva: Start a Project REPL and Connect,回车后选择 Leiningen 或 Clojure CLI 作为项目类型。
4、Calva 将自动检测项目根目录下的 project.clj 或 deps.edn,启动对应 REPL 并在底部面板显示连接状态。
二、使用 Conjure 插件替代 Calva 实现轻量级集成
Conjure 是基于 Neovim 思路构建的 Clojure 开发插件,强调快捷键驱动与极简依赖。它不内置 REPL 启动器,而是复用已运行的 nREPL 服务,适合已有 Leiningen/Clojure CLI 工作流的用户。
1、在终端中执行 lein repl 或 clj -Srebel 启动带 nREPL 的会话,并记录输出中的 nREPL server started on port XXXXX。
2、在 VSCode 中安装 Conjure 插件,打开设置(Cmd+,),搜索 conjure.client.nrepl.port,将其值设为上一步获取的实际 端口 号。
3、重启 VSCode,打开任意 .clj 文件,按下 space + , 触发命令面板,输入 conjure.connect 并执行。
4、状态栏将显示 Connected to nREPL,此时可使用 space + e 对光标所在表单求值,或 space + b 加载整个缓冲区。
三、配置 clj-kondo 进行静态分析与 lint 检查
clj-kondo 是一个快速、无 JVM 依赖的 Clojure 静态分析 工具 ,能识别未定义符号、重复绑定、不可达代码等 常见问题,并通过 VSCode 的诊断系统实时提示。
1、通过 Homebrew 安装 clj-kondo:brew install clojure-lsp/brew/clj-kondo。
2、在 VSCode 设置中搜索 clojure.enableCljKondo,勾选启用;再搜索 clojure.cljKondoPath,填入 /opt/homebrew/bin/clj-kondo(Apple Silicon)或 /usr/local/bin/clj-kondo(Intel)。
3、创建项目根目录下的 clj-kondo/config.edn,写入 {:lint-as {clojure.core/defrecord :clojure.core/defrecord}} 以修复 record 定义误报。
4、保存任意 .clj 文件后,VSCode 问题面板将列出 clj-kondo 检测到的警告,如 unused binding: x 或 unresolved symbol: foo。