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

feat: support workspace folders configuration #10488

Merged
merged 7 commits into from
May 10, 2021

Conversation

kitsonk
Copy link
Contributor

@kitsonk kitsonk commented May 4, 2021

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)

@kitsonk kitsonk force-pushed the feat_workspace_config branch from 2a6d5d8 to 72217ee Compare May 5, 2021 04:49
@kitsonk kitsonk changed the title [WIP] feat: support workspace folders configuration feat: support workspace folders configuration May 5, 2021
@kitsonk kitsonk marked this pull request as ready for review May 5, 2021 04:51
@kitsonk kitsonk requested a review from lucacasonato May 5, 2021 04:56
@kitsonk kitsonk marked this pull request as draft May 5, 2021 06:50
@kitsonk kitsonk removed the request for review from lucacasonato May 5, 2021 06:50
@kitsonk
Copy link
Contributor Author

kitsonk commented May 5, 2021

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

@kitsonk kitsonk force-pushed the feat_workspace_config branch from 72217ee to 9a61a80 Compare May 6, 2021 07:08
@kitsonk kitsonk marked this pull request as ready for review May 6, 2021 07:10
@kitsonk kitsonk requested a review from lucacasonato May 6, 2021 07:10
@kitsonk
Copy link
Contributor Author

kitsonk commented May 6, 2021

Ok, re-worked it and fixed the benchmark tests... happier with the outcome.

Copy link
Member

@lucacasonato lucacasonato left a 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 :-)

cli/lsp/config.rs Outdated Show resolved Hide resolved
@kitsonk kitsonk force-pushed the feat_workspace_config branch from 2dec7ce to 0ef1983 Compare May 9, 2021 23:41
@kitsonk kitsonk mentioned this pull request May 10, 2021
43 tasks
@kitsonk kitsonk merged commit 84733d9 into denoland:main May 10, 2021
@kitsonk kitsonk deleted the feat_workspace_config branch May 10, 2021 01:16
kitsonk added a commit to denoland/vscode_deno that referenced this pull request May 10, 2021
ry added a commit to ry/deno that referenced this pull request May 12, 2021
LumaKernel added a commit to LumaKernel/coc-denoland that referenced this pull request Aug 7, 2021
* 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]>
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