Skip to content

Add user-visible LSP status indicators #3085

Closed as duplicate
Closed as duplicate

Description

@kierr

🎯 Feature Request

Add user-visible LSP status indicators to help users understand when Language Server Protocol servers are active, working, or encountering issues.

📋 Problem Description

Currently, opencode gives no indication when LSP servers are enabled, starting, or working. Users are "flying blind" - they don't know if:

  • ruby-lsp actually started when opening a Ruby project
  • Why diagnostics aren't appearing (server crash? missing binary?)
  • If LSP is working but just finding no issues
  • Which LSP servers are active for their current project

This makes debugging language support issues difficult and reduces confidence in the tool.

🚀 Proposed Solution

Phase 1: Minimal Status Indicators (High Impact, Low Risk)

  1. Status bar LSP indicator in TUI:

    • LSP: ✓ when servers are healthy
    • LSP: ⚠ when there are issues
    • LSP: ✗ when disconnected
    • LSP: 3 showing diagnostic count
  2. Server initialization feedback:

    • Show "Starting ruby-lsp..." during initialization
    • Display errors if servers fail to start
  3. Enhanced debug command:

    opencode debug lsp-status
    • Show all active servers, versions, connections
    • Display diagnostic counts and performance metrics
    • Show workspace root detection results

Phase 2: Enhanced Integration

  • Progress indicators for long server initialization
  • Hover details on LSP status showing active servers
  • Diagnostic count badges in status bar

Phase 3: Advanced Features

  • LSP performance dashboard
  • Server restart capabilities
  • Configuration validation

🏗️ Technical Implementation Notes

The codebase is well-prepared for this feature:

  • Existing status bar (status/status.go) can be extended with LSP information
  • Event system (Bus.publish()) already handles LSP diagnostics
  • Log levels (--log-level debug) can control verbosity
  • Debug commands already exist (debug/lsp.ts)
  • LSP client lifecycle already tracks server states

🎨 UI/UX Considerations

  • Normal mode: Minimal status bar indicator
  • Debug mode: Detailed server information
  • Error states: Always visible (server failed to start, missing binary)
  • Follow existing patterns in the TUI status bar
  • Use color coding for quick status recognition

📊 Success Criteria

  • Users can see at a glance if LSP is working
  • Clear feedback when LSP servers fail to start
  • Easy way to debug LSP configuration issues
  • Professional experience comparable to other editors
  • No performance impact on normal operations

Activity

  1. github-actions commented on Oct 10, 2025

    @github-actions
    Contributor

    This issue might be a duplicate of existing issues. Please check:

    Feel free to ignore if none of these address your specific case.

  2. rekram1-node commented on Oct 10, 2025

    @rekram1-node
    Collaborator

    We have a couple other issues tracking this, we will have this support once the opentui migration is complete should be done within the week!

  3. kierr commented on Oct 10, 2025

    @kierr
    Author

    We have a couple other issues tracking this, we will have this support once the opentui migration is complete should be done within the week!

    FFS god damn sloppy AI, creating issues on public repos despite my firm allcaps system instruction insistence to only do so on private repos!

    But to be fair, sloppy as it was in quick firing, the issue is well researched and very well written!

    My fault for not scoping my PAT better! Sorry! I was trying to add this to my private fork for my own usage. But thank you, and well done on swiftly and effectively maintaining/fighting against AI slop ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions