Releases: InSyncWithFoo/ryecharm
v0.1.0-alpha-7
For users
See the documentation for more information.
Latest tool versions at the time of release:
Added
- RyeCharm now supports 2025.1 and 2024.3.2.
- Unsafe fixes can now be applied via the corresponding intention and action.
- When keys for Ruff configuration groups (e.g.,
tool.ruff.lint
) are hovered,
a list of its subkeys will now be shown,
where each item can be clicked on to view its full description. - Disabled rule codes in
# noqa
comments can now be re-enabled
using an intention.
Removed
- 2024.3.1 is no longer supported.
- The old project generator, package manager and SDK flavor
have all been removed in favor of the native support added in 2024.3.2.
For contributors
Dependencies
- @JetBrains/java-annotations: 26.0.1 → 26.0.2
- @Kotlin/kotlinx.serialization: 1.7.3 → 1.8.0
- Kover: 0.9.0 → 0.9.1
- Kotlin JVM plugin: 2.1.0 → 2.1.10
- Gradle: 8.12 → 8.12.1
v0.1.0-alpha-6
For users
See the documentation for more information.
Latest tool versions at the time of release:
Added
- Ruff's "Fix all" can now be used as an action.
Previously, this functionality was only accessible via an intention. optional-dependencies
("extras") now have corresponding install buttons
in the gutter similar to that ofdependency-groups
.- Ruff's Markdown error messages are displayed as-is in tooltips by default.
It is now possible to render them using a new setting. - Links to Ruff rules in documentation popups are now resolved in-place,
replacing the current popup content with the rule's documentation.
Previously, such links would open the browser.
Changed
- If a Ruff executable is not specified, one will be detected during execution.
When Ruff is not installed but "Formatting" is enabled,
the formatter will fail with an error notification.
As PyCharm triggers the formatter automatically on paste,
this might cause some confusion.
The formatter will now not run unless the executable is specified directly
using the Ruff setting panel. - The output of
ruff config
is now no longer cached by default.
This might result in a noticeable delay that would previously
only happen in the first run.
The old behaviour can be toggled using a new advanced setting.
Fixed
- An error notification will now be displayed if
an invalid range is given to the formatter.
Previously, this would result in anIndexOutOfBoundsException
. - Due to a logic error, RyeCharm would naively run Ruff on Jupyter notebooks.
This has been fixed.
Jupyter notebooks have never been supported by any versions of RyeCharm.
For contributors
Dependencies
- LSP4IJ: 0.8.1 → 0.9.0
- Gradle: 8.11.1 → 8.12
- @astral-sh/setup-uv: 4 → 5
- Qodana: 2024.3.2 → 2024.3.4
v0.1.0-alpha-5
For users
See the documentation for more information.
Latest tool versions at the time of release:
Added
- User-level
ruff.toml
/.ruff.toml
file can now be opened using an action. - "Unable to run command" notifications now have an action
to view debug information.
Changed
ruff
anduv
executables fromPATH
are now prioritized during detection.
Previously, those installed by Rye would be checked first.
Removed
- 2024.3 is no longer supported.
- Timeout settings are removed entirely. To cancel long-running processes,
use the cross buttons next to progress indicators.
Fixed
- Previously, due to a bug in the executable detector, the UI might freeze.
This has been fixed. - Path input fields (e.g., configuration files) now function correctly.
For contributors
Dependencies
- @astral-sh/setup-uv: 3 → 4
- Kotlin JVM plugin: 2.0.21 → 2.1.0
- Foojay Toolchains: 0.8.0 → 0.9.0
- LSP4IJ: 0.7.0 → 0.8.1
- IntelliJ Platform Gradle Plugin: 2.1.0 → 2.2.1
- Qodana: 2024.2 → 2024.3
- Kover: 0.8.3 → 0.9.0
v0.1.0-alpha-4
For users
See the documentation for more information.
Latest tool versions at the time of release:
Added
-
File-level diagnostics by Ruff can now be displayed as editor banners.
-
LSP4IJ mode now respects many settings
that were previously ignored due to technical limitations. -
It is now possible to snooze notifications on formatting failures.
-
PEP 735 support is added:
-
Arrays under the
dependency-groups
table will have language injection
similar to that ofproject.optional-dependencies
and others. -
Errors will be reported if:
- Two groups have the same name, normalized or otherwise.
- A group includes an invalid or non-existent group.
- A group references itself.
-
Group references will be detected and highlighted on focus.
-
Groups can be installed by clicking their corresponding line markers.
-
-
Usages of
uv.dev-dependencies
are now reported.
This field is deprecated as of uv 0.4.27;
it should be replaced withdependency-groups.dev
. -
Dependency specifier strings in
pyproject.toml
anduv.toml
now have the currently installed versions of the dependency
displayed next to them as inlay hints.By default, dependency specifiers in the following arrays are recognized:
project.dependencies
project.optional-dependencies.*
dependency-groups.*
- [
tool.uv
]dev-dependencies
-
Links to Ruff options in documentation popups are now resolved in-place,
replacing the current popup content with the option's documentation.
Previously, such links would open the browser.
Changed
- RyeCharm's documentation popups are now prioritized over that of LSP4IJ.
Both will be displayed in a paged popup, with RyeCharm's as the first.
Previously, LSP4IJ's would take precedence. - Executable suggestion notifications will now automatically disappear
after 30 seconds. Previously, they would remain indefinitely on the screen. .pyw
files are now recognized as supported by Ruff,
similar to.py
and.pyi
files.- Commands and their outputs are no longer logged by default.
To restore the old behaviour, enable the
insyncwithfoo.ryecharm.logging.commands
registry entry. - The import optimizer and formatter will now show a notification
if they cannot be run or if the process failed.
Removed
- 2024.2 and older versions are no longer supported.
Fixed
- Native LSP client mode now respects the "Report syntax errors" setting.
- Script metadata blocks will now have their trailing newlines stripped
before being written back to the original file. - New virtual environments created using the uv panel
now have their names detected correctly.
Previously, a threading error would be reported. - Ruff's violation fixes with multiple edits are now applied correctly
in Command line mode. - The plugin now creates an informational-only
project generation panel on IntelliJ IDEA.
Previously, aRuntimeException
would be thrown.
For contributors
Changed
- The
# noqa
comment parsing algorithm is updated to match that of Ruff.
Fixed
- Test report artifacts for different platforms
now use different names to prevent name conflict.
Dependencies
- LSP4IJ: 0.5.0 → 0.7.0
- @astral-sh/setup-uv: 3.1.0 → 3
- @JetBrains/java-annotations: 24.1.0 → 26.0.1
- Gradle: 8.10 → 8.11.1
- IntelliJ Platform Gradle Plugin: 2.0.1 → 2.1.0
- Qodana: 2024.2.3 → 2024.2
- Kotlin JVM plugin: 2.0.20 → 2.0.21
- Material for MkDocs: 9.5.35 → 9.5.43
v0.1.0-alpha-3
For users
See the documentation for more information.
Latest tool versions at the time of release:
Added
-
Script metadata blocks can now be edited in a separate editor.
The new content will be written back when this editor is closed. -
Ruff can now be configured to fix all problems on save.
-
Documentation is now provided when rule selectors
specified in the following settings are hovered:lint.extend-fixable
lint.extend-ignore
lint.extend-per-file-ignores.*
lint.extend-safe-fixes
lint.extend-select
lint.extend-unfixable
lint.extend-unsafe-fixes
lint.fixable
lint.ignore
lint.per-file-ignores.*
lint.select
lint.unfixable
The corresponding deprecated top-level settings are also recognized.
Changed
- Error and information notifications are now splitted to different groups.
- A few settings' serialization names are changed.
- Notifications are no longer shown when an on-save task fail.
Fixed
- Ruff is now no longer run on
.rst
files.
Due to how.rst
files are implemented,
they were incorrectly determined to be Python files.
For contributors
Dependencies
- @astral-sh/setup-uv: 2.1.0 → 3.1.0
- Qodana: 2024.1.9 → 2024.2.3
- @Kotlin/kotlinx.serialization: 1.7.2 → 1.7.3
- MkDocs: 1.6.0 → 1.6.1
- Material for MkDocs: 9.5.33 → 9.5.35
v0.1.0-alpha-2
For users
See the documentation for more information.
Latest tool versions at the time of release:
Added
-
Autocompletions are now provided for
ruff
anduv
commands
when the new terminal is used. -
PEP 723 inline script metadata blocks
now have TOML injected. -
Various uv PEP 508 dependency arrays settings now have
injections similar to that ofproject.dependencies
:constraint-dependencies
dev-dependencies
override-dependencies
upgrade-package
pip.upgrade-package
As a bonus,
project.optional-dependencies
is also supported.
This monkeypatches PY-71120. -
Ruff's command line mode now supports
"fix all" and "organize imports" as intentions.
Changed
- Projects not generated using the uv panel can now
independently configure whether uv should be used as the package manager.
Fixed
- "Bump project version" now no longer runs when
the project's path cannot be located.
This helps avoiding accidental resources usage and unwanted results.
For contributors
Dependencies
- @astral-sh/setup-uv: 1.0.0 → 2.1.0
- LSP4IJ: 0.4.0 → 0.5.0
v0.1.0-alpha-1
For users
RyeCharm is an all-in-one plugin for working with
Astral-backed tools. Supported features include:
-
Ruff:
- Linting:
- On-the-fly (command line tool)
- Language server
- Quick fixes:
- Fix all violations
- Organize imports
- Disable rule for line
- Automatic fix
- Formatting:
- On save
- On reformat
- On optimize imports
- Documentation on hover:
- Rule codes
- TOML setting keys
- Linting:
-
uv:
- Package management
- Project generation
- Synchronizing from editor
-
Rye:
- Version bumping from editor
See the documentation for more information.
For contributors
Commands and settings integrated:
-
Ruff
- Language server settings:
- Root:
configuration
fixAll
organizeImports
showSyntaxErrors
logLevel
logFile
codeAction
:disableRuleComment.enable
fixViolation.enable
lint
:enable
- Root:
- Commands:
check
: Run Ruff on the given files or directories (default)format
: Run the Ruff formatter on the given files or directoriesrule
: Explain a rule (or all rules)config
: List or describe the available configuration optionslinter
: List all supported upstream lintersversion
: Display Ruff's versionclean
: Clear any caches in the current directory and any subdirectoriesserver
: Run the language server
- Language server settings:
-
uv
- Commands:
init
: Create a new projectadd
: Add dependencies to the projectremove
: Remove dependencies from the projectsync
: Update the project's environmentpip
: Manage Python packages with a pip-compatible interfacelist
: List, in tabular format, packages installed in an environment
venv
: Create a virtual environmentversion
: Display uv's version
- Commands:
-
Rye
- Commands:
show
: Prints the current state of the projectversion
: Get or set project versionconfig
: Reads or updates the Rye configuration--show-path
: Print the path to the config
- Commands: