Sublime Text无法配置真正的Dart/Flutter开发环境,仅支持语法高亮、基础跳转、手动格式化及有限LSP补全;必须安装mrjones或dart-lang的Dart插件、复用Flutter自带SDK、配置正确PATH并重启,再启用LSP-dart实现勉强可用的补全。

Sublime Text 不能安装出“Dart 编译环境”——它不运行 Dart VM,也不启动 Flutter 热重载;你只能配出语法高亮、手动格式化、基础跳转,以及非常有限的 LSP 补全。所谓“Flutter 高级语法支持”,required、??=、泛型推导、WidgetsBinding.instance 这类东西,LSP-dart 基本不识别,别指望它能补全或跳转。
Sublime 启动时找不到 dart 命令?先改 Settings – User 的 path
GUI 启动的 Sublime 不继承 shell 的 PATH,哪怕终端里 dart --version 能跑,Sublime 里照样报 Unable to locate SDK。
- 终端执行
which dart,记下输出(比如/opt/homebrew/bin/dart或/Users/xxx/flutter/bin/cache/dart-sdk/bin/dart) - 打开 Sublime → Preferences → Settings – User,加这一行:
"path": "/opt/homebrew/bin:/Users/xxx/flutter/bin:/Users/xxx/flutter/bin/cache/dart-sdk/bin"
(多个路径用英文冒号分隔,填你自己的实际路径) - 必须重启 Sublime(不是重载设置),否则
path不生效 - 重启后按
Ctrl+Shift+P→Dart: Restart Analysis Server,看控制台(Ctrl+`)是否出现Analysis server ready
装哪个 Dart 插件才不标红、不跳错?只认 mrjones 或 dart-lang 的 Dart
别搜 “Dartlang”、“SublimeDart”、“Flutter Dart”——这些插件已停更,required 参数会标红,Ctrl+Click 直接跳到空白文件。
- 按
Ctrl+Shift+P→Package Control: Install Package,搜Dart - 严格核对作者字段:只选作者是
mrjones或dart-lang的那个Dart插件 - 装完必须重启 Sublime,否则右下角不会显示
Dart - 如果右下角没反应,右键文件 →
Open all with current extension as→Dart手动激活
dart_sdk_path 填错等于白配,优先走系统 PATH,别硬写
这个配置项不是必须填,但一旦填错,直接触发 Failed to start the Dart analysis server。
- 别单独下载 Dart SDK —— 复用 Flutter 自带的,路径类似:
/opt/homebrew/Caskroom/flutter/3.19.5/flutter/bin/cache/dart-sdk
(注意:是cache/dart-sdk,不是flutter根目录,也不是dart-sdk/bin) - 填完必须
Ctrl+Shift+P→Dart: Restart Analysis Server - 更稳妥的做法:删掉
dart_sdk_path这一行,确保path已正确配置并重启了 Sublime - 检查控制台(
Ctrl+`)有没有Unable to locate SDK,有就说明dart命令根本没被找到
LSP-dart 是补全唯一可行路径,但它对 Flutter 类几乎无感
原生 Dart 插件的补全在 Dart 2.12+ 后彻底失效,返回空列表或静默失败。LSP-dart 是目前唯一能凑合用的方案,但别期待它理解 Scaffold 或 Text。
- 先通过 Package Control 安装
LSP和LSP-dart(两个都得装) - 打开
LSP.sublime-settings,把"command"明确设为:/Users/xxx/flutter/bin/cache/dart-sdk/bin/dart
(不能依赖PATH,版本必须和 Flutter 自带 SDK 一致) - 补全不会自动弹,要手动触发:
Ctrl+Shift+P→LSP: Auto Complete,或保存后等几秒再按Ctrl+Space -
package:flutter里的类名、required参数、WidgetsBinding.instance这些,LSP-dart 基本不识别——它没做 Flutter 特有符号的索引,也没dart_flutter_sdk_path这种配置项可调
真正卡住人的从来不是“怎么点”,而是 dart 命令能不能被 GUI 进程看见、analysis_server.dart.snapshot 在不在缓存路径里、LSP-dart 启动时找的是哪个 dart 可执行文件——这三个点任何一个错位,整个链路就断了,且错误信息极其模糊。


















