Skip to content

Add 20 additional LSP servers from OpenCode reference #50

Description

@amondnet

Summary

Add comprehensive LSP server support by implementing 20 additional servers from the OpenCode reference implementation. This will significantly expand language support for the LSP package and improve developer experience across multiple programming languages.

Phase-based Implementation Plan

Phase 1 - Web/Common Languages (Priority)

  1. Biome - JS/TS/JSON/CSS linter (biome lsp-proxy)
  2. Svelte - Svelte language server
  3. Astro - Astro language server
  4. YamlLS - YAML language server
  5. BashLS - Bash language server
  6. DockerfileLS - Dockerfile language server

Phase 2 - Additional Languages

  1. Rubocop - Ruby LSP (gem install)
  2. ElixirLS - Elixir LSP (GitHub + mix build)
  3. Zls - Zig LSP (GitHub releases)
  4. CSharp - C# LSP (dotnet tool)
  5. FSharp - F# LSP (dotnet tool)
  6. SourceKit - Swift LSP (system only)
  7. Clangd - C/C++ LSP (GitHub releases)
  8. JDTLS - Java LSP (Eclipse download)
  9. LuaLS - Lua LSP (GitHub releases)
  10. PHPIntelephense - PHP LSP (npm)
  11. Ocaml - OCaml LSP (system only)
  12. TerraformLS - Terraform LSP (GitHub releases)
  13. TexLab - LaTeX LSP (GitHub releases)
  14. Gleam - Gleam LSP (system only)

Implementation Approach

  • Follow existing patterns in server.ts for consistency
  • Auto-download support for npm/GitHub/dotnet servers
  • Version tracking for npm packages
  • Platform detection for binary downloads
  • Comprehensive unit tests for all servers
  • Update documentation and configuration examples

Files to Modify

  • packages/lsp/src/server.ts
  • packages/lsp/src/language.ts
  • packages/lsp/src/index.ts
  • packages/lsp/CLAUDE.md
  • packages/lsp/test/unit/server.test.ts

Acceptance Criteria

  • All 20 LSP servers implemented following existing patterns
  • Auto-download mechanisms working for all applicable servers
  • Platform detection properly handled for binary releases
  • Comprehensive test coverage for all new servers
  • Documentation updated with new server support
  • Configuration examples provided for each server

Related References

Metadata

Metadata

Assignees

No one assigned

    Labels

    lspp1Priority 1 - Hightype:featureNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions