Change:
The built-in Javascript/Typescript extension is required for this feature, so the issue can't be observed with all extensions disabled. However, I did disable all extensions except the built-in JS/TS one, and the issue persisted. <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: Version: 1.73.1 Commit: Date: 2022-11-09T03:54:53.913Z Electron: 19.0.17 Chromium: 102.0.5005.167 16.14.2 V8: 10.2.154.15-electron.0 OS: Linux x64 5.4.0-126-generic Sandboxed: No OS Version: Linux Mint 20.3 Steps to Reproduce: a file like: to see a yellow underline under (since its import is missing) , see a gray dotted underline just under the first "u" in you press expect to see an option to import ... but instead the only Quick fix is "Change spelling to 'currentUser'" I do have in my , and automatic imports were working up until a couple updates ago. I tried installing the latest update, thinking it might fix it, but it did not.
One more detail: when I click the in the lower right (on the bottom-most blue bar) it says: That's weird, because I do have a ... in fact, when I click "Create jsconfig" it takes me right to it! So, now my issue makes sense: I'm not getting functionality because VS Code can't find the file with that configuration. The only question is ... why isn't VS Code finding my (since it can clearly find it when I click "Create json")?
Can you share a project that demonstrates this issue? For the bit about : you likely have a jsconfig that does not include the current file. We currently always show a generic button to create or open a jsconfig. I'll update the button to instead show or something similar when the file already exists
Unfortunately I just had to reinstall my OS, and I'm still getting things setup (I'm not sure if the issue is even still present on a new OS, new VS Code install, etc.). As soon as I can I'll post back (either with a sample project, if still reproducible, or by closing the issue, if not). Thanks!
Closing this issue until we hear back if this is still relevant. Most likely this is an issue with how the project is configured
Reopening based on
Please share an example project. Right now this sounds like an question about how your project is configured but it's difficult to tell without a simple project to test with
So, I went to make a basic example project, with the exact same (and the exact same VS Code settings), but with dummy files: (the exporter) const foo = 5; export default foo; (an existing import of foo) import foo from "src/foo"; (foo); (missing import of foo) (foo); Surprisingly, the in does get the Intellisense underlining, and when I quick fix I do get the option to import ... although oddly it does a CommonJS import instead of an ES Module one: const { default: foo } = require("./foo"); ... even though my has: "target": "esnext" ... and even though the existing import of (in ) uses ES module syntax. So now I just have two questions that you can hopefully answer: (Main Question) Since Intellisense works in my dummy project, but not in my main one, despite both having the same VS Code and ... what could my main project be doing to break Intellisense? Does this mean I have a file with invalid syntax or something in that project, and would a file with invalid syntax even break Intellisense? Could my , or any other specific file break Intellisense? (Side Question) Any thoughts on why I'm getting Common JS imports in my dummy project? Thanks again for your help.
One other strange detail: both projects have the exact same , in the exact same place (their respective root folders). However, when I hover over the in the lower-left, my main project says "No jsonconfig", while the test project says "". So, it would seem the presence of some other files in the main project prevents VS Code from finding the (again, identically located) file. Any thoughts on what files could do that?
If someone could even just point me to the place in VS Code's code where it decides whether or not to say "No " ... ie. where it does: if(!jsConfig X) showNoJsConfigMesage();` that would be super helpful, and I may even be able to debug things from there. The problem right now is just that "No " (ie. what the tool tells me) is false, because I have the file ... so whatever I'm doing wrong, it must be in the . But is currently a black box, so I'm not sure how to fix it.
It still sounds to me like the file you are working is not considered part of the same jsconfig project. Can you try putting together a minimal example just showing off the structure of your project? It can contain non-sense code As for the questions: 's difficult to say without seeing the project. However Invalid syntax should only break auto imports if the syntax error means we can't figure out which symbols exist in that file. A should generally only be relevant for auto imports from packages installed under , although it's always possible processing the could cause some errors 'm unable to reproduce this. Here's the exact setup I had. Here I triggered auto import on foo ! Again it sounds like is not being considered part of the correct project TypeScript is what actually determine if a file is part of the jsconfig project or not. Debugging this is not going to be easy. The error means that that specific file is not considered part of a jsconfig. The file may still exist on disk, but the current js file is not considered part of it
Can you try putting together a minimal example just showing off the structure of your project? Ok, this is ... weird. I just realized I never included my or (like a moron, sorry) ... so I went to include them and ... not only do I have my red underline under , but when I quick fix I get the option to add the import! But what makes it so strange is, I haven't changed anything in this sample project since I made it (and when I made it I observed an identical problem to the one in my main project). The only thing I can think of is that I've restarted my machine since then, as I know other similar problems were fixed by people restarting their TS Server in VS Code (I actually tried that earlier, but it didn't fix my problem at the time). Unfortunately, my main project is still broken ... even though it too has all the files in a folder, and it too has: "include": ["", ""], in the . But between your tip that: and my working example to compare to, I should be able to figure things out. I'll close this ticket, but for what it's worth it'd be really nice if there was more diagnostic info provided when Intellisense breaks. Even if VS Code can't tell me why it's breaking, if it could at least say "this is 's fault" or (or whatever) that would make a big difference.
P.S. Thank you so much for all your help (not to mention all your work on VS Code). For any future readers coming across this, my main issue (I never figured out my test example issue) turned out to be with the file not being in my directive in . So, even if you are sure the file is within that directive's directories (as I was), hover your mouse over the VS Code tab and make absolutely sure (especially if you have potentially confusing nested directories with similar names)! P.P.S. And if, instead of saying "No jsconfig" VS Code said "This file's path of X was not included in the 's directive of Y" ... I certainly wouldn't complain ;) Heck, if this is the desired behavior I'll even try looking at to see if I can grok the related code enough to submit a PR myself.

Discussion:
export class IntellisenseStatus extends Disposable { public readonly openOpenConfigCommandId = '_typescript.openConfig'; <del> public readonly createConfigCommandId = '_typescript.createConfig'; </del> <ins> public readonly createOrOpenConfigCommandId = '_typescript.createOrOpenConfig'; </ins> private _statusItem?: vscode.LanguageStatusItem;

}, }); commandManager.register({ <del> id: this.createConfigCommandId, </del> <ins> id: this.createOrOpenConfigCommandId, </ins> execute: async (rootPath: string, projectType: ProjectType) => { await openOrCreateConfig(projectType, rootPath, this._client.configuration); },

statusItem.text = noConfigFileText; statusItem.detail = undefined; statusItem.command = { <del> command: this.createConfigCommandId, </del> <ins> command: this.createOrOpenConfigCommandId, </ins> title: this._state.projectType === ProjectType.TypeScript <del> ? vscode.l10n.t("Create tsconfig") : vscode.l10n.t("Create jsconfig"), </del> <ins> ? vscode.l10n.t("Configure tsconfig") : vscode.l10n.t("Configure jsconfig"), </ins> arguments: [rootPath], }; } else {