Skip to content

[FEATURE]: Built-in flag-gated Ruff LSP server (parity with the existing ty LSP) #38226

Description

@natori-hrj

Feature hasn't been suggested before.

  • I have verified this feature I'm about to request hasn't been suggested before.

Describe the enhancement you want to request

Follow-up to #5345, which was auto-closed for inactivity (the bot suggested opening a fresh one).

opencode already ships ty as a built-in Python LSP behind an experimental flag (experimentalLspTy in packages/opencode/src/lsp/server.ts), but there is no built-in ruff server counterpart — Ruff is wired up only as a formatter. Astral's own guidance is to run ty + ruff together (ty for types, ruff for lint + quick-fixes / import fixing), so the built-in Python LSP support is currently half-complete.

Proposal: add a flag-gated ruff LSP that mirrors the existing Ty server exactly and runs alongside pyright/ty rather than replacing them (same way eslint runs next to typescript):

  • new Ruff entry in lsp/server.ts, extensions .py/.pyi, launched via ruff server
  • gated by an experimental flag, symmetric with ty
  • detect ruff on PATH or in .venv/venv, no auto-install (per the earlier maintainer note in [FEATURE]: ty + ruff lsp rather than pyright #5345)

I know this is achievable today via custom lsp config, and there were prior stale PRs (#9126, #14850). Filing this mainly to confirm whether a first-class, ty-symmetric built-in is wanted before I open a PR — happy to implement it if so.

Metadata

Metadata

Assignees

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