microsoft / TypeScript

TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
https://www.typescriptlang.org
Apache License 2.0
100.7k stars 12.45k forks source link

autoImportSpecifierExcludeRegexes needs a window refresh for changes to take effect #60082

Open 188599 opened 3 weeks ago

188599 commented 3 weeks ago

🔎 Search Terms

autoImportSpecifierExcludeRegexes

🕗 Version & Regression Information

⏯ Playground Link

No response

💻 Code

.vscode/settings.json

{
  "<language>.preferences.autoImportSpecifierExcludeRegexes": ["<regex>"]
}

🙁 Actual behavior

Changes only take effect after a window reload.

🙂 Expected behavior

Changes to take effect immediately, same way that autoImportFileExcludePatterns does.

Additional information about the issue

I mentioned this earlier on another issue (https://github.com/microsoft/TypeScript/issues/35395#issuecomment-2371010892) and I initially thought that the update I got fixed the problem, turns out it was just because that forced the window to refresh, as I later encountered the same problem once I tried adding new regexes to it.

RyanCavanaugh commented 2 weeks ago

@mjbvz checked manually and I don't see anything in the server log where the updated setting gets sent over

mjbvz commented 2 weeks ago

@188599 What VS Code version are you using? Support for this setting was only added in the last month

188599 commented 2 weeks ago

@188599 What VS Code version are you using? Support for this setting was only added in the last month

1.94-insider

mjbvz commented 2 weeks ago

@RyanCavanaugh Can you also tru this out on in insiders. I see the field getting sent over in the configure request for the file:

Image

188599 commented 2 weeks ago

This is only tangentially related to the issue, but as I was digging through the code trying to figure out why autoImportFileExcludePatterns was seemingly not working as intended, with the code provided on a new Ionic project, they bundle it in with the following:

.vscode/settings.json

{
  "typescript.preferences.autoImportFileExcludePatterns": ["@ionic/angular/commons", "@ionic/angular"]
}

And instead of excluding those 2 import paths, it was removing all import paths under @ionic/angular, where the required imports are all from @ionic/angular/standalone.

It seemed to me that due to recent changes to autoImportFileExcludePatterns the old behavior was changed and this why autoImportSpecifierExcludeRegexes came about to make up for it.

What I was left wondering is, is the current behavior from autoImportFileExcludePatterns mentioned above intended? It feels like it shouldn't be either.