Releases: InSyncWithFoo/ryecharm
v0.1.0-alpha-11
For users
See the documentation for more information.
Latest tool versions at the time of release:
Added
- RyeCharm can now be configured to offer unsafe fixes
in an editor context even if configuration files say otherwise. - Inspect Code... will now also run Ruff.
- Project scripts and global tools can now be run as uv run configurations.
For project scripts, they can be configured automatically
using either run line markers shown inpyproject.toml
or
the corresponding actions in the menu when a subkey is right-clicked. - PEP 751's
pylock.toml
now has a specialized icon.
Changed
- Ruff's annotator is now prioritized over other annotators
(e.g., of other plugins).
Fixed
- "Fix all", "Organize imports" and "Fix all similar violations"
intentions now work correctly for injected files. - Ruff's annotator will now also run on
pyproject.toml
with regards to theRUF200
rule. - Previously, due to a logic error, a
NullPointerException
might be thrown
in certain circumstances. This has been fixed.
For contributors
Dependencies
- LSP4IJ: 0.11.0 → 0.12.0
- @Kotlin/kotlinx.serialization: 1.7.3 → 1.8.0
v0.1.0-alpha-10
For users
See the documentation for more information.
Latest tool versions at the time of release:
Added
- RyeCharm now also displays documentation popups for
rule selectors defined within script metadata blocks
when such blocks are opened in a new editor tab using the related intention.
It should be noted that Ruff does not support
reading configurations from script metadata blocks yet. - Single-rule selectors in TOML files and
# noqa
comments
can now be "folded" into that rule's name.
Such foldings are displayed in their folded forms by default;
this can be toggled using two settings in the Ruff panel. - Commands run by RyeCharm are now logged by a new "RyeCharm logs" tool window,
which is hidden by default but can be made available
via the More tool windows menu. - If Backspace is pressed when an empty comment within a script metadata block
is edited, RyeCharm will now remove that line and move the cursor
back to the preceding line automatically. - uv is now available as a run configuration.
Changed
- Previously, prefix selectors that only select preview rules
(e.g.,CPY0
) would not have documentation popups displayed on hover.
This is due to RyeCharm not passing--preview
when querying data,
and getting no list in return. It now does.
A new shortcoming of this approach is that resolved rule lists
might contain rules that are not actually enabled. - The linter table is now speed-searchable.
- Edit script metadata fragment now uses a better logic to determine
the offset the cursor of the new editor should be placed at.
The result is expected to be more intuitive for users.
Fixed
- The Edit script metadata fragment intention and TOML injection for
script metadata blocks are now available during indexing. - Redirected codes now have their documentation popups correctly displayed,
similar to that of a prefix.
For contributors
Dependencies
- Kotlin JVM plugin: 2.1.10 → 2.1.20
v0.1.0-alpha-9
For users
See the documentation for more information.
Latest tool versions at the time of release:
Added
.python-version
andpy.typed
now have specialized icons.- Previously, in light mode,
uv.lock
's icon has bad contrast.
It now uses a new, more accessible icon. - Non-topmost TOML key segments in a Ruff option documentation popup
(e.g.,ruff
andlint
inruff.lint.select
)
are now clickable.
They can be used to navigate between options. - Toggling the registry entry used to be the only way to disable Red Knot.
Now, it can also be disabled using an UI setting. - Typing
script
at the top-level of a.py
file now suggests
a live template that expands to a PEP 723 script metadata block. - Script metadata blocks now displays
# /// script
when folded
instead of the default...
for multicomment blocks. - Temporary script metadata files
(created by the "Edit script metadata fragment" intention)
now have automatic JSON schema mapping.
Changed
- The bundled plugin Terminal is now an optional dependency.
Removed
- 2024.3.2 is no longer supported.
Fixed
- Previously, Ruff's language server would not work correctly
if the client was LSP4IJ.
This has been fixed. - "Unsuppress rule" intention now works as expected
instead of causing a threading error.
For contributors
Dependencies
- Material for MkDocs: 9.5.43 → 9.6.6
- LSP4IJ: 0.10.0 → 0.11.0
- Gradle: 8.12.1 → 8.13
- IntelliJ Platform Gradle Plugin: 2.2.1 → 2.3.0
v0.1.0-alpha-8
For users
See the documentation for more information.
Latest tool versions at the time of release:
Added
- Previously, pressing Enter in the middle of a script metadata block
would break it, causing the code to no longer being highlighted as TOML.
Now, doing so will insert a new empty comment. - When a rule selector in a TOML configuration file is hovered,
RyeCharm will now display a popup showing all rules matching that selector. - It is now possible to fix all violations of the same code using a quick fix.
Changed
- Code actions provided by RyeCharm are now ordered,
with Ruff violation fixes being at the top of the code action popup.
Fixed
- Previously, the documentation for a rule would not be shown
if both its code and the cursor were placed at the very end of a comment.
This has been fixed.
For contributors
Dependencies
- LSP4IJ: 0.9.0 → 0.10.0
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