首页 > 解决方案 > 如何使 VS 代码能够在子项目目录中查找代码以自动完成?

问题描述

我有项目结构

-core_data
-core_domain
-core_ui
-core_launcher

这4个项目的依赖是

core_launcher -> core_ui -> core_domain -> core_data

4 个项目位于同一目录中,我通过 pubspec.yaml 文件将一个项目包含到另一个项目中(例如 core_launcher/pubspec.yaml):

dependencies:
  flutter:
    sdk: flutter
  core_ui:
    path: ../core_ui

我对所有项目做同样的事情来建立依赖层次。

core_ui问题是,当我当前正在编辑某些文件时,我可以从子项目中导入所有文件,core_launcher但 VSCode 没有看到他父母的任何类(core_domain 和 core_data)。

但是,我可以import 'blah-blah-blah手动输入,并且 VSCode 会看到此类并且导入效果很好,但是我无法通过按 Alt+Enter 来实现快速导入。所以,我想知道为什么自动完成不适用于继承的库。

有人有同样的问题吗?

标签: flutterdartvisual-studio-code

解决方案


代码完成将仅显示来自您的直接依赖项的类。这有两个可能的原因:

  1. 依赖传递依赖不是一个好主意,因为您的依赖可能会删除或更改它们的依赖,而不会认为这是一个重大更改。
  2. 如果代码完成列出了所有传递依赖项中的所有类,则代码完成列表将很大,并且包括来自您不认识的包的类(因为它们只是其他包依赖项)。这将是一种糟糕的用户体验,并且很容易意外依赖未在您的pubspec.yaml.

解决方法是显式列出core_domaincore_data在你的pubspec.yaml,因为如果你的项目正在使用它们中的类,那么它们就是依赖项。


推荐阅读