CodeLens 在 VSCode 中默认关闭,需手动启用 editor.codeLens 并配置语言专属设置(如 typescript.referencesCodeLens.enabled);未显示“2 references”等提示即未启用,主因是语言服务器未就绪或配置不匹配。

CodeLens 在 VSCode 中默认关闭,必须手动开启;关掉也只需改一个配置项,但要注意语言级和全局级的区别。
怎么确认 CodeLens 没开?
函数定义上方没出现 2 references、1 implementation 或 Run Test 这类提示,基本就是没启用。这不是插件故障,也不是项目配置错——VSCode 就是默认不启动它。
-
Editor > Code Lens设置项默认为false,哪怕你装了 Pylance、TypeScript 插件也不会自动翻成true - 右下角状态栏显示
TypeScript或Python后带Ready,才说明语言服务器就绪;若一直卡在Loading,CodeLens 会静默不显示,也不报错 - 纯文本文件(如
.foo)或未识别语言模式的文件,永远不会有 CodeLens,VSCode 根本不会调用任何语言服务
全局开启或关闭 references 提示
最常用的是控制「引用数」显示,比如函数上方的 3 references。这个行为由 editor.codeLens 和具体语言的子配置共同决定。
- 打开设置(
Ctrl+,或Cmd+,),搜editor.codeLens - 勾选它,只是打开 CodeLens 总开关;真正控制
references显示的是类似typescript.referencesCodeLens.enabled这类语言专属配置 - 想彻底关掉所有语言的引用提示:在 settings.json 里加
"typescript.referencesCodeLens.enabled": false、"javascript.referencesCodeLens.enabled": false、"python.referencesCodeLens.enabled": false - 注意:
"[typescript]": {"editor.codeLens": false}会关掉该语言所有 CodeLens(包括测试按钮、实现跳转等),而不仅是 references
为什么开了还是不显示?常见断点检查
CodeLens 不是前端渲染功能,它严重依赖语言服务器(LSP)返回的符号信息。开了设置 ≠ 立刻生效。
- 检查右下角语言标识是否带
Ready;不带就等几秒,或尝试Ctrl+Shift+P → Developer: Reload Window - Python 项目必须装
Pylance(不是基础 Python 插件),且pyrightconfig.json不能有语法错误,否则 LSP 启动失败 - TypeScript/JS 项目要确保有
jsconfig.json或tsconfig.json,空项目或配置路径错误会导致引用分析失效 - Go 项目需确认
gopls已安装并可执行;Rust 项目要配好rust-analyzer.serverPath,否则 CodeLens 直接空白
LeetCode 插件这类自定义 CodeLens 怎么管?
第三方插件(如 LeetCode、Jest Test Explorer)提供的 CodeLens 不走 editor.codeLens 总开关,而是各自控制。
- LeetCode 的难度、通过率提示由
leetcode.editor.shortcuts控制,设为空数组[]就完全隐藏 - Jest 插件的
Run/Debug按钮受jest.autoEnable和jest.showCoverageOnLoad影响,和主 CodeLens 设置无关 - 这类插件的 CodeLens 只在匹配文件中触发:LeetCode 要求文件含
@lc注释,Jest 要求是.test.ts或匹配jest.config.js的路径 - 如果它们的 CodeLens 突然消失,优先运行对应命令(如
LeetCode: Refresh Explorer),而不是去翻通用设置
真正容易被忽略的点是:CodeLens 显示延迟不是 UI 卡顿,而是 LSP 分析未完成。别急着关设置,先盯两秒右下角状态栏——那个 Ready 才是开关真正的把手。


















