redhat-developer / redhat-developer/lsp4ij

Suppress warning notifications from LSP servers and widget API proposal

Open
#495 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Java
Stars
344
Forks
113
Avg merge
5h 22m
Merged PRs (30d)
15

Description

Background

Open a Rust file in https://github.com/eunomia-bpf/eunomia-bpf/tree/master/ecli on macOS and LSP4IJ turns every warning message from rust-analyzer into a notification that is persisted in the Notifications panel.

Plan

vscode screenshot

In order to turn it into a status bar widget that reflects warnings like the rust-analyzer VSCode plugin, the following APIs are needed to implement it in a language plugin.

  1. A status bar widget API, (optionally) with which plugins can customize its normal, warning and error style. If clicked, it should open a panel that lists warnings and errors from the LSP server.
  2. API to suppress warnings from LSP servers.

Each file can only have one active LSP server, so it makes sense to provide a unified experience from LSP4IJ. If the widget API is too heavy for LSP4IJ, API to get and register for notifications of LSP servers' status and lifecycle changes is an alternative that allows plugins to manage the widgets themselves.

If LSP4IJ could not provide a warnings and errors panel for LSP servers, API to fetch or collect warning and error messages from LSP servers is needed.

Originally posted by @harry-xm in https://github.com/redhat-developer/lsp4ij/discussions/493

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the LSP4IJ issue and the linked discussion 493, focusing on how rust-analyzer warning notifications are currently surfaced. Define the required status-bar, notification-suppression, server-lifecycle, and warning/error-collection behavior before identifying implementation and test locations; done means the API scope is agreed and its behavior is covered.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, rust
Domain
api, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.