-
-
Notifications
You must be signed in to change notification settings - Fork 200
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: watch svelte files and project files outside workspace #2299
fix: watch svelte files and project files outside workspace #2299
Conversation
handleDocumentChange(document); | ||
if (isNewFile && document.openedByClient) { |
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.
Does this mean we would kick off the costly "update project files" logic on every new file created through the editor UI? Is there a way to do this in less cases? "update project files" reads the file system, creates a new program version etc, which seems costly.
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 changed to detection to file watch since #2393 also needs it. I also delay the check to the next time the language service is used. TypeScript also has some directory watching info in the config file parse result. So we can skip the project file check if the file isn't in the target directories. This should make it trigger a bit less. If there are performance regressions reported, there is a TypeScript's internal method to cache directory file entries and we can try using that.
The info is also used to watch directories outside the root using the fallback watch or when the client supports it. This is added because the optimization check might break a way to workaround directory watching outside the workspace, not sure if anyone actually uses it though 😅.
…nto update-project-files-when-open
…nto update-project-files-when-open
#2233 #2393
update project files(tsconfig.include) when a new client file is opened. So files included in both tsocnfig.json will be loaded into the respecting language service.