Skip to content

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

Closed
@elitvinchuk

Description

@elitvinchuk

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

sheetalkamat

sheetalkamat commented on Jun 5, 2020

@sheetalkamat
Member

I think #38923 by @andrewbranch will help with this

elitvinchuk

elitvinchuk commented on Jun 6, 2020

@elitvinchuk
Author

Thank you @sheetalkamat for pointing me! Subscribed to the issue.

andrewbranch

andrewbranch commented on Jul 15, 2020

@andrewbranch
Member

@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?

sheetalkamat

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

Assignees

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

    Participants

    @elitvinchuk@andrewbranch@RyanCavanaugh@sheetalkamat@typescript-bot

    Issue actions

      Import autocompletion with project references and yarn workspaces doesn't work · Issue #38955 · microsoft/TypeScript