- Notifications
You must be signed in to change notification settings - Fork13.2k
Add string literal completions forpackage.jsonimports field#57718
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Add string literal completions forpackage.jsonimports field#57718
Uh oh!
There was an error while loading.Please reload this page.
Conversation
| } | ||
| /**@internal */ | ||
| exportfunctiongetPossibleOriginalInputPathWithoutChangingExt( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
this is kinda a reverse ofgetOutputPathWithoutChangingExt:
TypeScript/src/compiler/emitter.ts
Lines 542 to 554 in3fca8c8
| functiongetOutputPathWithoutChangingExt( | |
| inputFileName:string, | |
| ignoreCase:boolean, | |
| outputDir:string|undefined, | |
| getCommonSourceDirectory:()=>string, | |
| ):string{ | |
| returnoutputDir ? | |
| resolvePath( | |
| outputDir, | |
| getRelativePathFromDirectory(getCommonSourceDirectory(),inputFileName,ignoreCase), | |
| ) : | |
| inputFileName; | |
| } |
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Andarist commentedMar 11, 2024
@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. |
Uh oh!
There was an error while loading.Please reload this page.
DanielRosenwasser commentedAug 23, 2024
@Andarist did you still want to pursue this? We're looking to get this done in the TS 5.7 timeframe. |
Andarist commentedAug 23, 2024
@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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Yeah, this looks on the right track to me, thanks!
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Andarist commentedSep 25, 2024
@andrewbranch thanks for the review! I’ll try to clean this up asap |
…letions# Conflicts:#src/compiler/utilities.ts#src/services/stringCompletions.ts
06559e9 to22b6148Compare| constvalue=normalizeFileSetEntry(files[key]); | ||
| constpath=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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
I have no idea if this is completely correct. I added it to makepathCompletionsPackageJsonImportsSrcNoDistWildcard6 pass as it's using? in the component path component.
I have added that test based on the existingpathCompletionsPackageJsonExportsWildcard6. The difference is that the test I have added is afourslash/server test and it follows a slightly different codepath.
The existing one validates here:
TypeScript/src/harness/vfsUtil.ts
Lines 1104 to 1108 inb8e4ed8
| private_resolve(path:string){ | |
| returnthis._cwd | |
| ?vpath.resolve(this._cwd,vpath.validate(path,vpath.ValidationFlags.RelativeOrAbsolute|vpath.ValidationFlags.AllowWildcard)) | |
| :vpath.validate(path,vpath.ValidationFlags.Absolute|vpath.ValidationFlags.AllowWildcard); | |
| } |
And theValidationFlags.AllowWildcard was added therehere
On the other hand, thefourslash/server validates here, where I'm adding this comment. This codepath was added as part of#20763 - which proceeds the PR that introducedValidationFlags.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 🤷♂️
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
@rbuckton can you advise?
Andarist commentedOct 17, 2024
@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 |
jakebailey commentedOct 31, 2024
@typescript-bot pack this |
typescript-bot commentedOct 31, 2024 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
typescript-bot commentedOct 31, 2024 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Hey@jakebailey, I've packed this intoan installable tgz. You can install it for testing by referencing it in your and then running There is also a playgroundfor this build and annpm module you can use via |
jakebailey left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
I think this is okay; the FS thing I think is also fine? Everything passes...
Uh oh!
There was an error while loading.Please reload this page.
closes#52460
closes#57680
closes#57777
Currently, this only has tests based on#55015 but I still have to add more