# [Editor Integrations](#editor-integrations)

Ruff can be integrated with various editors and IDEs to provide a seamless development experience. This section provides instructions on [how to set up Ruff with your editor](setup/) and [configure it to your liking](settings/).

## [Language Server Protocol](#language-server-protocol)

The editor integration is mainly powered by the Ruff Language Server which implements the [Language Server Protocol](https://microsoft.github.io/language-server-protocol/). The server is written in Rust and is available as part of the `ruff` CLI via `ruff server`. It is a single, common backend built directly into Ruff, and a direct replacement for [`ruff-lsp`](https://github.com/astral-sh/ruff-lsp), our previous language server. You can read more about `ruff server` in the [`v0.4.5` blog post](https://astral.sh/blog/ruff-v0.4.5).

The server provides Ruff diagnostics, Code Actions to fix them, and formatting using Ruff's built-in formatter. For features like navigation and autocompletion, we recommend using the [ty language server](https://docs.astral.sh/ty/features/language-server/) alongside Ruff.

The Ruff Language Server was available first in Ruff [v0.4.5](https://astral.sh/blog/ruff-v0.4.5) in beta and stabilized in Ruff [v0.5.3](https://github.com/astral-sh/ruff/releases/tag/0.5.3).
