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, which allows for the widest range of customizations. However, it is recommended to use Native LSP client if possible, 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 whenever it needs to run a task. This is in contrary to the language server modes, in which there is only one long-running process that handles all operations via the language server protocol.

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
Customizations Easy to implement Limited
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.