Skip to content
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

Merged
merged 11 commits into from
Jun 24, 2024

Conversation

jasonlyu123
Copy link
Member

@jasonlyu123 jasonlyu123 commented Feb 24, 2024

#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.

handleDocumentChange(document);
if (isNewFile && document.openedByClient) {
Copy link
Member

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.

Copy link
Member Author

@jasonlyu123 jasonlyu123 Jun 20, 2024

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 😅.

@jasonlyu123 jasonlyu123 changed the title fix: update project files when document opens fix: watch svelte files and project files outside workspace Jun 20, 2024
@dummdidumm dummdidumm merged commit dbfb47a into sveltejs:master Jun 24, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants