RubyMine 2024.3

Released: Nov 13, 2024

2024.3 での更新項目

機能

AI Assistant

  • Enhanced cloud-based code completion
    • RubyMine 2024.3 introduces faster and more contextually aware cloud-based code completion through the JetBrains AI Assistant plugin, featuring quality and speed improvements and adding support for multiline completion.
    • Powered by the Mellum large language model (LLM), completion latency is nearly one-tenth of what it was in previous versions, leading to almost instant suggestions. The acceptance rate for completion suggestions has approximately doubled, while the cancel rate has dropped to between half and a third of what it was in the previous version.
    • Please note that cloud-based code completion in AI Assistant is available only with an AI Pro subscription or an active free trial.
  • Improved Rails context for unit tests
    • RubyMine now provides AI Assistant with more context about Rails applications for better unit test generation.
  • Inline AI prompts
    • RubyMine 2024.3 introduces inline AI prompts, offering a seamless way to interact with AI Assistant directly in the editor. You can type requests in natural language, which AI Assistant instantly interprets and converts into code changes, marked with purple in the gutter for easy tracking. Inline AI prompts are context-aware, automatically including related files and symbols for more accurate code generation.
    • The feature is currently available in *.rb files.

Rails 8 support

  • Kamal 2 support
    • Rails 8 provides support for deploying your applications with Kamal 2, and in RubyMine 2024.3, JetBrains have implemented code completion for Kamal 2 configurations.
  • Nilability annotations from schema.rb for type support
    • RubyMine now recognizes the not-null type modifier for migration attributes and provides highlighting and warnings for incorrect nil assignments.
  • Code insight for Solid Queue and Solid Cache
    • In RubyMine 2024.3, queue_schema.rb and cache_schema.rb files now feature specific icons and syntax highlighting.

RBS

  • Built-in integration with the RBS Collection
    • RubyMine now features built-in integration with the RBS Collection, a community-managed collection of RBS files for gems that do not include signatures.
    • Even if you don’t use RBS in your project, you can still benefit from the type signatures included in the RBS Collection, with no additional effort required. RubyMine will automatically download and manage the type signatures for the project dependencies.

Ruby

  • Ability to use it as an alias for numbered parameters in blocks
    • RubyMine now recognizes it as an alias for _1 in blocks without parameters, providing type support and conversion intentions for such usages.
    • JetBrains have added a new error annotation that prevents you from using it in a block with regular numbered parameters.
  • Support for Ruby 3.4 "chilled" strings
    • RubyMine now recognizes "chilled" strings, a new transitional state for string literals in Ruby 3.4. In projects without the frozen_string_literal pragma, strings are "chilled" – allowing modifications with a warning rather than resulting in an error.
  • Error annotations for ambiguous anonymous arguments
    • RubyMine now displays an error when you try to use anonymous block, rest, and keyword rest arguments in an ambiguous nested context.

VCS

  • Updates to Find in Files
    • The Find in Files feature has been enhanced with a new search scope, Project Files Excluding Git-Ignored. This option excludes any files ignored in .gitignore files from your search results, helping you focus only on the relevant code when searching through your project.
  • Option to disable background pre-commit checks
    • You can now manage background checks during the commit process with a new Run advanced checks after a commit is done option under Settings | Version Control | Commit. This setting lets you decide if tests and inspections should run after making a commit. If you want these checks to be completed before the commit happens, simply disable it.

User experience

  • Bundled spelling and grammar checks
    • The Grazie plugin is now available in RubyMine out of the box. It provides intelligent checks beyond simple spelling mistakes and typos. It understands grammar rules and can warn you about inappropriate style.
    • Grazie checks are available in strings, heredocs, comments, block comments, and RDoc files.
  • Improved console support
    • JetBrains have added new options to control whether the first completion suggestion is preselected when using consoles or the Evaluate Expression field during debugging.
    • During debugging, the Evaluate Expression field now accurately reflects self types, recognizes local variables and parameters with inferred types, and supports completion for new local variables introduced within the current stack frame session.
    • Console sessions remember previously executed commands and provide type inference and completion for local variables.
  • Increased default tab limit
    • JetBrains have increased the default tab limit in the editor to 30. This means you can now keep more tabs open before the IDE starts closing the ones used least recently. You can control this setting in Settings | Editor | General | Editor Tabs.
  • Optimized placement for the Rename action
    • JetBrains have optimized the placement of the Rename action in the context menu when called on elements in the editor and the Project tool window. The action is now at the top level, making it easier for users who frequently rely on the mouse to quickly rename files, variables, and other elements.
  • Updated UI for the new terminal
    • JetBrains have updated the new terminal’s UI with a more compact design, reducing padding to maximize your screen real estate. The smaller padding saves space, giving you enhanced visibility while working with commands without sacrificing readability.
  • Highlighting for all occurrences of selected text
    • By default, RubyMine will now automatically highlight all instances of the text you select within a file. This makes it easier to track where the selected text appears throughout your code.