Skip to content

Running modes

There are three running modes: Command line, LSP4IJ and Native LSP client.

These modes all have their own pros and cons. While RyeCharm will try to maintain consistency where possible, a few features/settings are only available in one mode but not another.

The default mode is Command line. However, it is recommended to use either of the other two modes for performance and technical reasons.

See Linting and Formatting for more information.

Command line mode#

In Command line mode, RyeCharm will invoke the provided executable to retrieve necessary information for linting, formatting and # noqa documentation popups.

This is in contrary to the language server modes, in which there is only one long-running process that handles such operations via the language server protocol (LSP).

For features not directly available via LSP, the executable will still be invoked. This is done to provide a consistent experience across all modes.

Native LSP client and LSP4IJ modes#

These two modes make use of Ruff's language server capabilities, available via the server subcommand.

The differences between them are that of the client libraries. To use the native client, you must be using a paid IDE. On the other hand, LSP4IJ can be installed on any IDE.

Mode Native LSP client LSP4IJ
Client Built-in LSP4IJ (third-party)
Can be used on Paid IDEs All IDEs
Supported features* Few Much wider range
UI integrations Better Good
API stability Unstable Unstable

* Ruff's features are supported equally well by both.

Warning

On a (paid) IDE with both clients available, a LinkageError will be thrown if Native LSP client is selected. This is a known limitation.