VSCode for Clojure:Lisp方言的现代开发方式

21次阅读

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

VSCode for Clojure:Lisp方言的现代开发方式

如果您希望在 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,回车后选择 LeiningenClojure CLI 作为项目类型。

4、Calva 将自动检测项目根目录下的 project.cljdeps.edn,启动对应 REPL 并在底部面板显示连接状态。

二、使用 Conjure 插件替代 Calva 实现轻量级集成

Conjure 是基于 Neovim 思路构建的 Clojure 开发插件,强调快捷键驱动与极简依赖。它不内置 REPL 启动器,而是复用已运行的 nREPL 服务,适合已有 Leiningen/Clojure CLI 工作流的用户。

1、在终端中执行 lein replclj -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-kondoapple 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: xunresolved symbol: foo

text=ZqhQzanResources