Fuchsia 中的 Dart IDE

Dart SDK

一个预构建的可供 IDE 使用的 Dart SDK 位于:prebuilt/third_party/dart/{linux|mac|windows}-x64/bin/dart

Visual Studio Code

  1. 下载并安装 Visual Studio Code
  2. (可选)配置 VS Code 从命令行启动

    • 对于 macOS:为了允许从命令行运行 VS Code,可以查看 从命令行启动

    • 对于 Linux 和 Windows:这是安装程序已经做好的一部分了。

  3. 安装以下扩展插件:

    • Dart Code: 提供 Dart 编程支持。它会在 Fuchsia 树中自动找到 dart-sdk。
    • FIDL language support: 提供 Fuchsia 的 FIDL 文件语法高亮支持
    • GN: GN 构建文件的语法高亮支持
    • 可选但有用的 git 拓展插件:
      • Git Blame: 在状态栏查看 git 逐行追溯信息
      • Git History: 查看 git 日志、文件历史等
  4. 为了提高在 VS Code 中使用 Dart 的效率,您可以设置一些有用的设置。

    要增加设置:

    1. 打开您的用户设置 (Ctrl+,)
    2. 点击左上角的导航页图标 (macOS 是右上角)
    3. 添加:

注意:该配置文件是一个 JSON 文件。请确保您正确的使用了花括号。

  • 在您保存时自动格式化您的文件:
  1. "editor.formatOnSave": true,
  • 检查新的 Fuchsia SDK 更新:
  1. "dart.checkForSdkUpdates": false,
  • 配置 VS Code 使用 Dart SDK 套装:
  1. "dart.sdkPath": "/path/to/fuchsia/prebuilt/third_party/dart/linux-x64/bin/dart",

注意:对于 macOS,请在您的 dart.sdkPath 提供值中使用 mac-x64 替换 linux-x64

  • 不要在 fuchsia 上运行 pub。
  1. "dart.runPubGetOnPubspecChanges": false,
  • 配置单行宽度上限为 80 个字符,tab 宽度为 2 个空格
  1. "[dart]": {
  2. "editor.rulers": [80],
  3. "editor.tabSize": 2
  4. },

CLion/IntelliJ

  • 通过转到 Settings(设置)> Plugins(插件) 然后搜索 Dart language support(Dart 语言支持)来添加 Dart 插件。
  • Settings(设置)> Languages & Frameworks(语言和框架) > Dart 中通过以下步骤设置 Dart 路径:
    • 检查 Enable Dart support for the project
    • 输入 Dart SDK 路径“${FUCHSIA_SRC}/third_party/dart/tools/sdks/dart-sdk”

疑难解答

如果您发现 IDE 无法在您的 BUILD.gn 依赖项中找到已经正确的导入(红色波浪线),这通常表明 Dart 分析未在您的 IDE 中正常工作。

发生这种情况时,请尝试以下操作:

仅打开您正在处理的项目目录

例如:只打开 /topaz/shell/ermine 而不是 /topaz。分析器在处理非常大的源码树时可能会出问题。

删除 pub 输出

  1. 在您的项目中删除 .packagespubspec.lock 文件(如果存在的话);
  2. 确保在你的 VS Code 首选项中存在 "dart.runPubGetOnPubspecChanges": false, 以防止pubspec.yaml 文件改动后前述文件再次出现;
  3. 重载 VS Code 使 Dart 分析器重启;
    1. 按 Ctrl+Shift+P 打开 VS Code 的命令面板
    2. 选择“Reload Window(重新加载窗口)”

重构

在你的 Fuchsia 目录下删除 /out 并重构。 Dart FIDL 绑定是构建生成的,可能不存在。

确保您的构建包含了所有的包

分析器将无法使用任何未包含在您的构建中的包中的 Dart 代码,所以请确保您的构建配置 (fx set) 包含您需要的所有包(--with 标志可能会有所帮助。)

举个例子:要在 VS Code 中查看 echo_client_async 示例的 Dart 代码,请将 --with examples/fidl/dart/echo_client_async_dart 添加到您的 fx set 命令之后。然后,使用 fx build examples/fidl/dart/echo_client_async_dart 重构建。

重载 Dart 分析器

修改 FIDL 后通常需要手动重新加载分析器。

VS Code

  1. 打开命令面板 (Ctrl+Shift+P)
  2. 输入并选择“Reload Window(重新加载窗口)”

这将会重启 Dart 分析器

IntelliJ

  1. 打开查找操作 (Find Action) (Ctrl+Shift+A)
  2. 输入并选择“Restart Dart Analysis Server”

检查是否已为当前文件类型检测到正确的语言

  1. 在 VS Code 上使用 Ctrl+Shift+P 然后输入“Change Language Mode(更改语言模式)”并确保它设置为“Auto Detect”。
  2. 如果这不能解决问题,您可以尝试通过 Ctrl+Shift+P 并选择 “为 .dart 配置文件关联” (”Configure file association for .dart”)手动修复。

手动指定 Dart sdk 路径

VS Code

请参阅上面推荐的 VS Code 选项。

IntelliJ

  1. Open Settings
  2. Under Languages & Frameworks > Dart, enter “[YOUR FUCHSIA DIR LOCATION]/prebuilt/third_party/dart/{mac,linux}-x64”

  3. 打开设置

  4. Languages & Frameworks(语言和框架)> Dart 下面,输入 “[YOUR FUCHSIA DIR LOCATION]/prebuilt/third_party/dart/{mac,linux}-x64”