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.