Shopify / Shopify/ruby-lsp

Remove standalone launch timer and use status items to better communicate state

Open
#3,695 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement pinned
Dominant language
Ruby
Stars
2k
Forks
281
Avg merge
2h 14m
Merged PRs (30d)
6

Description

Concrete task derived from https://github.com/Shopify/ruby-lsp/discussions/3642.

We originally added a timer for the standalone launch mode because we were getting repeated issues about monorepo configurations that didn't have VS Code's multi-root workspace configs. That ended up being an overcorrection and we can make this a lot more subtle with a status item.

Note: I've been thinking about how the state of the LSP should probably be promoted to a proper status item (as opposed to a language status item). It often includes important information, like whether we're running in degraded mode due to Bundler failures or if it's in standalone.

We can also override onProgress on the client to show progress inside of the same status item, avoiding clutter on the bar. I think it might be worth taking a look at this as part of addressing the timer issue.

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 reading discussion 3642 and locating the standalone launch timer and existing language status item behavior. Review how the VS Code client reports LSP state and progress. Done means removing the standalone timer and communicating standalone, degraded, and progress states through one status item.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby, vscode
Domain
developer-experience, devtools
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.