【问题标题】:How to make VS code able to lookup code in subproject directory for autocompletion?如何使 VS 代码能够在子项目目录中查找代码以自动完成?
【发布时间】:2021-07-08 19:00:20
【问题描述】:

我有项目结构

-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_launcher 中的某些文件时,我可以从core_ui 子项目中导入所有文件,但是 VSCode 没有看到他父母的任何课程 (core_domain & core_data)。

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

有人遇到过同样的问题吗?

【问题讨论】:

    标签: flutter dart visual-studio-code


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-30
      • 2022-06-10
      • 2021-10-28
      • 1970-01-01
      • 1970-01-01
      • 2017-01-20
      • 1970-01-01
      • 2017-10-31
      相关资源
      最近更新 更多