如何让VS Code多根工作区仅启动单个LSP服务?
配置Calva使多根工作区仅启动单个clojure-lsp服务器
要让VS Code在多根Clojure工作区中只启动一个clojure-lsp实例,按以下步骤操作:
打开多根工作区配置文件
找到你的.code-workspace文件(若未创建,可通过File > Save Workspace As...生成),用VS Code打开编辑。添加统一工作区配置
在文件的settings节点中插入以下配置,将your-main-project-name替换为工作区内的主项目文件夹名称:
"settings": { // 指定clojure-lsp使用的统一工作区根目录 "clojure-lsp.workspaceFolderPath": "${workspaceFolder:your-main-project-name}", // 配置Calva REPL连接统一指向主项目,保持与LSP工作区一致 "calva.replConnectSequences": [ { "name": "Main Project REPL", "projectType": "deps.edn", // 按需调整为lein/shadow-cljs等项目类型 "projectRoot": "${workspaceFolder:your-main-project-name}", "cljsType": "none" // CLJS项目可改为shadow-cljs等对应类型 } ], // 强制LSP使用指定的工作区文件夹 "languageserver.clojure-lsp.settings.workspaceFolder": "${workspaceFolder:your-main-project-name}" }
清理子项目的单独配置
检查每个子项目的.vscode/settings.json,若存在clojure-lsp相关配置,建议删除或注释,避免覆盖工作区全局配置。重启VS Code
关闭并重新打开VS Code加载工作区,此时clojure-lsp将仅启动一个实例,覆盖所有子项目的代码分析需求。
额外说明
- 若项目间存在依赖关联,clojure-lsp会自动识别统一工作区下的所有子项目依赖,无需额外配置。
- 不同项目类型(Leiningen/Shadow-cljs等)只需对应调整
projectType和cljsType参数即可。
内容的提问来源于stack exchange,提问作者Witek
相关产品推荐
相关产品推荐

