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

Indicate language server readiness in the UI #733

Open
radeksimko opened this issue Aug 10, 2021 · 1 comment
Open

Indicate language server readiness in the UI #733

radeksimko opened this issue Aug 10, 2021 · 1 comment
Labels
enhancement New feature or request extension-only

Comments

@radeksimko
Copy link
Member

radeksimko commented Aug 10, 2021

Problem Statement

Currently the relationship between the extension (acting as language client) and the language server isn't as transparent as it could be, which can sometimes lead to confusing user experience.

Launching the language server kicks off a number of background operations which user may not necessarily need to know about, but the result of these operations may be interesting when these fail. Currently these errors are only logged (by default to Output pane) and invisible to most users.

Users would benefit from more transparency where they know:

  • whether the language server is ready
  • what version of the LS is in use (for easy access when they report issues)
  • whether there were any significant issues with loading the server / TF module and what these are
  • whether there are any background operations running and what state are they in (e.g. how close to completion)

Expected User Experience

User would be able to see an icon, or terraform-ls entry in the status bar which can display:

  • progress of any ongoing background operations
  • failed operations
  • whether the server is ready/running
  • version of the launched server

Similar to Java VS Code extension:

IN-PROGRESS

42070441-42c1f798-7b0b-11e8-93dd-16f4187b2c2a
42070444-48f5fd4e-7b0b-11e8-9c2d-ac081aa5071e

READY

42070450-515d0572-7b0b-11e8-9ea9-6b7c1eab23fa

FAILED

42070639-3ce09d10-7b0c-11e8-9fbf-d2c62e7a369c

Proposal

Pending Questions

  • TBD: Exact notification request structure
  • TBD: Specific icons and text to show in the status bar for each state (in progress, ready, failure)
@radeksimko radeksimko added the enhancement New feature or request label Aug 10, 2021
@jpogran
Copy link
Contributor

jpogran commented Jan 3, 2022

While we can use the existing StatusBar API, there is a new proposed API for this kind of status client side for VS Code: microsoft/vscode#129037. We still have to implement something server side to send progress notifications, but there is a UI element for the client being prepared.

A first pass version of this can be seen in https://code.visualstudio.com/updates/v1_61#_new-javascript-and-typescript-language-status-item.

Proposed code: microsoft/vscode#129037 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request extension-only
Projects
None yet
Development

No branches or pull requests

2 participants