Add string literal completions for package.json imports field#57718
Add string literal completions for package.json imports field#57718andrewbranch merged 27 commits intomicrosoft:mainfrom
package.json imports field#57718Conversation
| } | ||
|
|
||
| /** @internal */ | ||
| export function getPossibleOriginalInputPathWithoutChangingExt( |
There was a problem hiding this comment.
this is kinda a reverse of getOutputPathWithoutChangingExt:
TypeScript/src/compiler/emitter.ts
Lines 542 to 554 in 3fca8c8
|
@andrewbranch I opened this as a draft because there are some minor cleanups to be done here. I'd appreciate an early review here though - in case there is something fundamentally wrong with this. |
|
@Andarist did you still want to pursue this? We're looking to get this done in the TS 5.7 timeframe. |
|
@DanielRosenwasser yes, it would be great if @andrewbranch could give this a quick look to check if im not doing anything overly wrong so I dont spend too much time on cleaning up things that will turn out to be wrong in the end ;p |
andrewbranch
left a comment
There was a problem hiding this comment.
Yeah, this looks on the right track to me, thanks!
|
@andrewbranch thanks for the review! I’ll try to clean this up asap |
…letions # Conflicts: # src/compiler/utilities.ts # src/services/stringCompletions.ts
06559e9 to
22b6148
Compare
| const value = normalizeFileSetEntry(files[key]); | ||
| const path = dirname ? vpath.resolve(dirname, key) : key; | ||
| vpath.validate(path, vpath.ValidationFlags.Absolute); | ||
| vpath.validate(path, vpath.ValidationFlags.Absolute | vpath.ValidationFlags.AllowWildcard); |
There was a problem hiding this comment.
I have no idea if this is completely correct. I added it to make pathCompletionsPackageJsonImportsSrcNoDistWildcard6 pass as it's using ? in the component path component.
I have added that test based on the existing pathCompletionsPackageJsonExportsWildcard6. The difference is that the test I have added is a fourslash/server test and it follows a slightly different codepath.
The existing one validates here:
TypeScript/src/harness/vfsUtil.ts
Lines 1104 to 1108 in b8e4ed8
And the ValidationFlags.AllowWildcard was added there here
On the other hand, the fourslash/server validates here, where I'm adding this comment. This codepath was added as part of #20763 - which proceeds the PR that introduced ValidationFlags.AllowWildcard. So perhaps this was just a harmless omission in that newer PR. I don't know why this is a flag in the first place though so 🤷♂️
|
@andrewbranch it's ready for re-review :) I could also use a build of this to test it more easily in a real project, and not only in the test harness ;p cc @jakebailey |
|
@typescript-bot pack this |
|
Hey @jakebailey, I've packed this into an installable tgz. You can install it for testing by referencing it in your and then running There is also a playground for this build and an npm module you can use via |
jakebailey
left a comment
There was a problem hiding this comment.
I think this is okay; the FS thing I think is also fine? Everything passes...
closes #52460
closes #57680
closes #57777
Currently, this only has tests based on #55015 but I still have to add more