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.