-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
feat: support workspace folders configuration #10488
Conversation
2a6d5d8
to
72217ee
Compare
Actually, I went to fix the bench tests on this and realised a big logic error in how I was doing this, and I need to re-work it... |
72217ee
to
9a61a80
Compare
Ok, re-worked it and fixed the benchmark tests... happier with the outcome. |
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.
Tested locally with a Node and a Deno project in workspace folders, and it works great :-)
2dec7ce
to
0ef1983
Compare
Requires Deno with denoland/deno#10488. Ref: #348 Resolves: #314 Resolves: #297
This reverts commit 84733d9.
* feat: code lens for references (denoland#308) * feat: disable most of builtin language service when deno enabled (denoland#307) * 0.0.8 * feat: add applyCodeActionCommand command (denoland#312) * fix: remove deno/applyCodeActionCommand (denoland#315) * New high-res logo (denoland#274) * feat: add implementations code lens configuration option (denoland#319) * feat: add initialize workspace command (denoland#316) * feat: support deno cache quick fix (denoland#322) * chore: add screenshot to README (denoland#323) * 0.0.9 * 0.0.10 * fix: typo in init command (denoland#327) * feat: add a welcome screen for extension (denoland#329) * feat: use preview instead of display for status (denoland#330) * chore: README improvements (denoland#331) * Release 3.0.0, canary is now main (denoland#332) * 3.0.1 * Fix typo (denoland#337) Grammar + context * chore: activate extension on command (denoland#336) * docs: recommend import_map.json instead of import-map.json (denoland#340) Resolves denoland#338 * chore: move Releases.md to CHANGELOG.md for better marketplace integration (denoland#344) Closes denoland#342 * feat: add deno.path setting (denoland#350) * 3.1.0 * feat: read-add debug support (denoland#351) Co-authored-by: CGQAQ <[email protected]> * feat: add settings to affect completions (denoland#368) * fix: manual `deno` command resolution on windows. (denoland#367) Fixes denoland#361 * 3.2.0 * feat: support for relative path resolution (using workspaces) in deno.path (denoland#381) Co-authored-by: Kitson Kelly <[email protected]> * feat: add version notification message (denoland#383) * feat: add restart language server command (denoland#385) Resolves denoland#372 * feat: add support for import registry completions (denoland#380) * 3.3.0 * typo in ImportCompletions.md (denoland#390) * fix: activate on reloadImportRegistries command (denoland#407) Fixes: denoland#394 * feat: handle per resource configuration (denoland#411) Requires Deno with denoland/deno#10488. Ref: denoland#348 Resolves: denoland#314 Resolves: denoland#297 * feat: add internalDebug config flag (denoland#406) Also integrate upstream formatting changes in deno fmt. Ref: denoland/deno#10368 * 3.4.0 * feat: recognise json(c) & markdown files (denoland#404) * 3.5.0 * docs: fix broken link in README (denoland#426) * feat: support registry auto discovery (denoland#427) * fix: bump semver of extension (denoland#429) * 3.5.1 * feat: add support for tasks and test code lens (denoland#436) * 3.6.0 * fix: update packaging and pin vsce version (denoland#440) Fixes denoland#439 * 3.6.1 * feat: add support for import map in test code lens (denoland#446) * fix: activate extension on markdown / json / jsonc (denoland#447) * fix: setting then clearing "deno.path" config should not use empty string for path (denoland#452) * fix: better handling when language server fails to start (denoland#454) * 3.7.0 * fix: remove trailing slash in example (denoland#471) * chore: remove test header from bug report issue template (denoland#479) * feat: add ability to set cache directory in settings (denoland#477) Closes denoland#287 * fix: properly handle plugin configuration at startup (denoland#474) Fixes denoland#473 Co-authored-by: Kitson Kelly <[email protected]> Co-authored-by: Luca Casonato <[email protected]> Co-authored-by: Kirill Reunov <[email protected]> Co-authored-by: Liam Murphy <[email protected]> Co-authored-by: Ryan Dahl <[email protected]> Co-authored-by: Jesse Jackson <[email protected]> Co-authored-by: CGQAQ <[email protected]> Co-authored-by: David Sherret <[email protected]> Co-authored-by: Hector Menendez <[email protected]> Co-authored-by: Heyward Fann <[email protected]> Co-authored-by: Satya Rohith <[email protected]> Co-authored-by: yaegassy <[email protected]> Co-authored-by: Cedric Vangout <[email protected]>
I think the PR is fully functional, I just need to fixup tests and add new ones...Adding integration tests is really difficult, because of the way that the server blocks in this case, because in order to complete a request, it needs to fetch configuration information from the client. In the real world this works perfectly fine, but in our harness, I tried lots of different ways and it simply blocked. lspower splits server responses and request testing into two different harness and there isn't any co-dependent request to server, request from server, response form client, response from server tests.
So I have opted for unit tests on the configuration, which help ensure the logic works and fixed the other tests by defaulting to the workspace configuration when the file configuration cannot be handled (if you drop the message stream returned when creating a server, requests from the server simply error out, which then default error handling kicks in in the language server)