Skip to content

Import autocompletion with project references and yarn workspaces doesn't work #38955

Description

TypeScript Version: 3.9.5

Search Terms:
"project references" import
"project references" import autocomplete
"project references" monorepo

Description
Hello! First of all, thank you for all amazing work!

I've been trying to befriend yarn workspaces, project references and import autocompletion for a while. It was a relief to see that caveat mentioned in docs is resolved, but didn't manage to do it myself. I've even tried example repo provided by maintainers, but no luck.

When using only yarn workspaces there're no issues at all - all packages listed in workspaces are imported with no issue. After adding ts and project references autocomplete disappears, though Go to Definition works as expected.

I'm is using @babel/preset-typescript so don't actually rely on d.ts.

Could you please point to whether I'm doing anything wrong or the issue really takes place?

Thanks in advance!

Code
I've created example repo. Initial commit illustrates how things didn't work initially, and second commit is updates due to maintainer's example.

Expected behavior:
Import autocomplete is available without building with tsc -d

Actual behavior:
not-working

Related Issues:

Activity

  1. sheetalkamat commented on Jun 5, 2020

    @sheetalkamat
    Member

    I think #38923 by Andrew Branch (@andrewbranch) will help with this

  2. elitvinchuk commented on Jun 6, 2020

    @elitvinchuk
    Author

    Thank you Sheetal Nandi (@sheetalkamat) for pointing me! Subscribed to the issue.

  3. andrewbranch commented on Jul 15, 2020

    @andrewbranch
    Member

    Sheetal Nandi (@sheetalkamat), my PR almost solved this, but module resolution through node_modules fails when the referenced project isn’t built because index.d.ts/index.js doesn’t exist yet—the resolution host needs to use [your version of fileExists] that recognizes project reference redirect sources, but it’s not accessible in its current location. I remember you originally had that function in Project, but later moved it to Program, but can’t remember why... do you think moving it out to a common utility would make sense?

  4. sheetalkamat commented on Jul 16, 2020

    @sheetalkamat
    Member

    I think you could imprelement getCompilerHost of autoImport provider as configuredProjectInQuestion.getCcompilerHost() and that should fix this. (Note you would want to remove unsetting compiler host of the configured project after updateGraph is complete.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Fix AvailableA PR has been opened for this issueNeeds InvestigationThis issue needs a team member to investigate its status.

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions