-
Notifications
You must be signed in to change notification settings - Fork 46
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
Language Server Rewrite #993
base: master
Are you sure you want to change the base?
Conversation
Support cancelling validate
Hey there! I just built a new version of the vscode extension based on 0774d28. You can download the .vsix here and then follow these installation instructions. |
* honor `showDiagnosticsInConsole` in lsp mode * remove rogue `console.info` * Fix issues with standalone workspaces * Fix bug in tests where logger wasn't un-stubbed * Remove `project-reload` event in favor of `project-activate` * upgrade roku-deploy for `getDestPath` fix * Fix lint issue. * Fix test failure on linux * Fix lint warnings
Hey there! I just built a new version of the vscode extension based on c03ace4. You can download the .vsix here and then follow these installation instructions. |
Hey there! I just built a new version of the vscode extension based on 4c24a48. You can download the .vsix here and then follow these installation instructions. |
Hey there! I just built a new version of the vscode extension based on 47ea906. You can download the .vsix here and then follow these installation instructions. |
There are some significant performance issues in the language server, focused around when files are opened/edited/closed from the editor. To mitigate this, we need to refactor the language server so that it's better about throttling/debouncing ALL the relevant files instead of just one at a time.
This is a fairly significant refactor of the language server code, and breaks it down into more manageable classes.
Task list
ProjectManager
and other new logicLanguageServer.ts
.roku-deploy-staging
, .git, and other ignored foldersProcess for excluding files:
Build a global list of filters, based on:
- globs from
files.exclude
- globs from
.gitignore
(maybe using this?)- all files in ".git", and every workspaceFolder.outDir.
Also produce a per-project list of file globs based on the project's bsconfig (or default)
In the lsp, in onWatchedFilesChanged, filter out any files that match zero of the patterns from above (handling negated .gitignore results and files.exclude).