函数悬浮提示不出现的根本原因是 Dart 分析服务器未正常启动,主要因 SDK 路径未识别或未启用 LSP(需设置 "dart.previewLsp": true),纯 CLI 项目还需添加 analysis_options.yaml 启用严格分析与实验特性,macOS/Linux 用户须从终端执行 code . 启动 VSCode 以继承正确 PATH。

函数悬浮提示不出现,大概率是分析服务器没起来
VSCode 的 Dart 函数悬浮提示(hover)依赖后台运行的 dart-analysis-server,不是简单装了插件就自动生效。常见现象是:鼠标悬停无响应、Ctrl+Click 跳转失败、类型推导全灰——这些都指向同一个问题:分析服务器启动失败或卡住。
根本原因通常是 SDK 路径未被识别,或插件启用了旧协议(非 LSP)。验证方式很简单:打开任意 .dart 文件,看右下角状态栏是否显示 Dart SDK x.x.x;不显示,说明插件连 SDK 都没找到,hover 不可能工作。
必须设为 true 的关键配置:dart.previewLsp
VSCode Dart 插件默认仍可能使用旧版分析协议,而 hover 提示在 LSP 模式下才稳定支持完整语义。不启用它,很多上下文敏感提示(比如泛型推导、扩展方法、record 字段 hover)会直接缺失。
- 打开 VSCode 设置(
Cmd+,或Ctrl+,),搜索dart.previewLsp - 勾选该项,或手动在
settings.json中添加:"dart.previewLsp": true - 重启 VSCode 窗口(
Developer: Reload Window不够,必须完全关闭再重开) - 打开一个有合法
pubspec.yaml的项目(哪怕只有name:和version:),等待右下角状态栏出现Dart SDK x.x.x且无警告图标
纯 Dart CLI 项目 hover 弱?补一个 analysis_options.yaml
Flutter 项目默认启用强分析,但纯 Dart CLI 项目(如用 dart create 生成的 console app)可能只启用基础检查,导致 hover 显示不全(例如不显示参数文档、忽略 @required 注解)。
在项目根目录新建 analysis_options.yaml,写入最小有效配置:
analyzer:
language:
strict-casts: true
strict-inference: true
enable-experiment:
- records
- patterns
这个文件会让分析服务器加载更严格的规则和实验特性,hover 才能正确解析现代 Dart 语法(包括 record 字段、模式匹配分支类型等)。改完后等几秒,状态栏 Dart 图标应从 “Analyzing…” 变为 “Ready”。
hover 显示乱码或空白?检查终端启动方式(macOS/Linux)
macOS 和 Linux 用户如果通过 Dock 或桌面图标启动 VSCode,它往往继承不到 shell 的 PATH,导致分析服务器找不到 dart 命令,进而无法加载 SDK 内置文档。结果就是 hover 只显示 “Loading…” 或空框。
- 务必从终端启动:
code .(当前目录含pubspec.yaml) - 确认终端里
which dart有输出,且dart --version正常 - 不要依赖 VSCode 内置终端验证 PATH —— 它和 GUI 启动的 VSCode 是两套环境变量
真正容易被忽略的是:即使你改了 ~/.zshrc,也得确保 VSCode 是从 shell 继承环境启动的;否则所有配置都白搭,hover 就是“看得见摸不着”。











