Skip to content

Releases: InSyncWithFoo/ryecharm

v0.1.0-alpha-11

06 Apr 10:56
Compare
Choose a tag to compare
v0.1.0-alpha-11 Pre-release
Pre-release

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 in pyproject.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 the RUF200 rule.
  • Previously, due to a logic error, a NullPointerException might be thrown
    in certain circumstances. This has been fixed.

For contributors

Dependencies

v0.1.0-alpha-10

23 Mar 03:41
Compare
Choose a tag to compare
v0.1.0-alpha-10 Pre-release
Pre-release

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

v0.1.0-alpha-9

09 Mar 00:19
Compare
Choose a tag to compare
v0.1.0-alpha-9 Pre-release
Pre-release

For users

See the documentation for more information.

Latest tool versions at the time of release:

Added

  • .python-version and py.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 and lint in ruff.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

v0.1.0-alpha-8

17 Feb 00:43
Compare
Choose a tag to compare
v0.1.0-alpha-8 Pre-release
Pre-release

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

v0.1.0-alpha-7

02 Feb 02:54
Compare
Choose a tag to compare
v0.1.0-alpha-7 Pre-release
Pre-release

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

v0.1.0-alpha-6

20 Jan 03:11
Compare
Choose a tag to compare
v0.1.0-alpha-6 Pre-release
Pre-release

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 of dependency-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 an IndexOutOfBoundsException.
  • 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

v0.1.0-alpha-5

16 Dec 01:37
Compare
Choose a tag to compare
v0.1.0-alpha-5 Pre-release
Pre-release

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 and uv executables from PATH 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

v0.1.0-alpha-4

22 Nov 03:04
Compare
Choose a tag to compare
v0.1.0-alpha-4 Pre-release
Pre-release

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 of project.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 with dependency-groups.dev.

  • Dependency specifier strings in pyproject.toml and uv.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, a RuntimeException 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

v0.1.0-alpha-3

21 Sep 09:55
Compare
Choose a tag to compare
v0.1.0-alpha-3 Pre-release
Pre-release

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

v0.1.0-alpha-2

14 Sep 05:27
Compare
Choose a tag to compare
v0.1.0-alpha-2 Pre-release
Pre-release

For users

See the documentation for more information.

Latest tool versions at the time of release:

Added

  • Autocompletions are now provided for ruff and uv 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 of project.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