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

Revamp server status bar item. #3478

Merged
merged 2 commits into from
Feb 1, 2024

Conversation

jdneo
Copy link
Collaborator

@jdneo jdneo commented Jan 26, 2024

This PR made following changes to the server status bar item.

  1. Move to the left. This aligns VS Code's status bar UX guideline: Place primary (global) items on the left.

  2. Display the progress more explicitly
    screenshot-1706253148794

  3. Use background color to highlight the status item when action is required
    screenshot-1706253180936
    screenshot-1706253204678

  4. Make the status bar item as an entrance to access other useful commands.
    screenshot-1706254021696

Copy link
Member

@rgrunber rgrunber left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall, looks good to me. The status is a lot more visible and access to opening logs / clearing workspace should hopefully fix some issues.

Only other consideration is whether users might be annoyed if they're doing something not related to Java and yet the status is a lot more prominent now. A user mentioned this but I don't think there's much we can do if the project itself is a Java project (particularly now that we have a global status bar).

@@ -32,7 +32,11 @@ export namespace serverStatus {

export function initialize() {
serverTasks.onDidUpdateServerTask(tasks => {
isBusy = tasks.some(task => !(task.complete));
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed. I just read that some doesn't short-circuit. find is an improvement 👍

@jdneo
Copy link
Collaborator Author

jdneo commented Jan 27, 2024

Only other consideration is whether users might be annoyed if they're doing something not related to Java and yet the status is a lot more prominent now.

We can let the user to hide the java server status bar when he does not want to see it for some workspaces. It's togglable.

image

@testforstephen
Copy link
Collaborator

  1. Use background color to highlight the status item when action is required
    screenshot-1706253180936
    screenshot-1706253204678

The yellow background color is a little inharmonious with the overall VS Code appearance. Other status icons do not have any extra background color, like the error diagnostics.
image

The icon and text are sufficient to draw attention. I would rather not set the background color when the status is warning.

@jdneo
Copy link
Collaborator Author

jdneo commented Jan 29, 2024

I would rather not set the background color when the status is warning.

What about the icons, if no background color change, do we need to change the icon to ⚠️ when warnings appear?

BTW, @rgrunber, I changed the icon from 👍 to ☕, in this PR, but I'm not sure if that coffee codicon is available in Theia as well. Do you know if it's supported in Theia?

@testforstephen
Copy link
Collaborator

What about the icons, if no background color change, do we need to change the icon to ⚠️ when warnings appear?

If no proper icon for java warning, we can still coffee icon since the text expresses its meaning as well.

@rgrunber
Copy link
Member

I think it should be fine to use the coffee codicon. What about using text to represent status vs. codicons ("Ready", "Warning", "Error", 👍 , ⚠️ , ❌ ).

Does " ☕ Java: 👍 " look weird ? Benefit would be saving a bit of space at the bottom. " ☕ : 👍 " seems it could be confusing.

@jdneo
Copy link
Collaborator Author

jdneo commented Jan 30, 2024

Does " ☕ Java: 👍 " look weird ? Benefit would be saving a bit of space at the bottom. " ☕ : 👍 " seems it could be confusing.

I prefer ☕ Java: Ready, etc... 😄

@testforstephen
Copy link
Collaborator

I prefer ☕ Java: Ready, etc... 😄

+1, icon+text is better than two icons.

Copy link
Collaborator

@testforstephen testforstephen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

To me, the status shortcut list is a good way to expose features.

One follow-up request is to enable 3rd party extensions to contribute to the status shortcut list. For instance, vscode-java-pack offers many webviews to set up Java extension. If these options could appear in the status shortcut quickpick, users would find them more easily.

@rgrunber
Copy link
Member

Just be aware we may encounter similar kinds of problems that we did trying to merge eclipse-jdtls/eclipse.jdt.ls#2821 . Opening more things to the progress reporting means if they don't end their progress reporting the bar will "spin" forever.

@testforstephen testforstephen merged commit f7f3bdb into redhat-developer:master Feb 1, 2024
2 checks passed
@jdneo jdneo deleted the cs/new-status-bar branch February 1, 2024 02:19
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.

Improvement global status item in VS Code Java to be more user friendly
3 participants