The RubyMine Blog : Intelligent Ruby and Rails IDE | The JetBrains Blog https://blog.jetbrains.com Developer Tools for Professionals and Teams Tue, 20 Jun 2023 13:14:31 +0000 en-US hourly 1 https://blog.jetbrains.com/wp-content/uploads/2023/02/cropped-icon-512-32x32.png The RubyMine Blog : Intelligent Ruby and Rails IDE | The JetBrains Blog https://blog.jetbrains.com 32 32 Mastering the New UI https://blog.jetbrains.com/ruby/2023/06/mastering-the-new-ui/ Tue, 20 Jun 2023 13:14:28 +0000 https://blog.jetbrains.com/?post_type=ruby&p=364771 Hi everyone!

We’re excited to introduce a new series of blog posts showcasing our favorite RubyMine features. Join us as we explore tips, tricks, and enhancements that will boost your productivity and streamline your development process.

In the first blog post, we’ll dive into RubyMine’s freshly-introduced user interface (UI). We revamped the IDE’s look and feel to reduce visual complexity, provide easy access to essential features, and gradually reveal advanced functionality when needed.

Starting from version 2022.3, you can enable the New UI in the IDE settings in Settings | Appearance & Behavior | New UI.

New users of the 2023.2 EAP have the New UI enabled by default.

Themes, icons, and fonts

  • Experience improved contrast and a consistent color palette with our new Light, Light with Light Header, and Dark themes.To change your theme quickly from the editor, press Ctrl+`, click Theme in the Switch popup, and choose the desired theme.
  • The New UI comes with a new set of icons that have more distinguishable shapes and colors designed for legibility and visual balance.
  • In the New UI, the Inter font is used on all supported OSs. The Classic UI used the default OS fonts, which differed depending on the platform.

Navigation bar

The navigation bar has been relocated to the bottom of the main window, providing a fresh perspective.

If you prefer the previous location, you can easily move it back to the top or hide it entirely. Simply go to the main menu and select View | Appearance | Navigation Bar.

Compact mode

The New UI comes with the Compact mode, which is perfect for working on smaller 11’’ – 13’’ screens. It reduces toolbar and tool window header heights, optimizes spacing and padding, and features smaller icons and buttons.

Enable the Compact mode by selecting View | Appearance | Compact Mode from the main menu.

Window header

We simplified the main window header while adding new widgets for quick access to useful features. New widgets hide actions in drop-down menus to simplify the layout.

  1. Main menu
    For Windows and Linux users, the main menu is now accessible via the hamburger icon. Use the Alt+\ shortcut to open the main menu using your keyboard.You can bring back the full menu by enabling the Show main menu in separate toolbar option in Settings | Appearance & Behavior | New UI.
  2. Project widget
    Use the Project widget to switch between recent projects, create new ones, or access existing ones.
  3. VCS widget
    With the new VCS widget, you can view the current branch, easily switch between your repository’s branches, and quickly access the most popular VCS actions like updating the project, committing, and pushing changes.It has replaced the branch widget previously located in the status bar and VCS action icons in the navigation bar.
  4. Run widget
    With the updated Run widget, you can select and start run/debug configurations, choose the mode (run or debug), and manage existing configurations.It also displays the state of the process when running or debugging, providing convenient options to restart or stop the process.

Editor

In the New UI, we’ve made improvements to RubyMine’s editor tabs and gutter to achieve better legibility.

Editor tabs now use more space and feature a larger font. Working with multiple editor tabs is now more convenient: You can choose between using a scroll bar or squeezing the tabs to fit the screen. Go to Settings | Editor | General | Editor Tabs | Show tabs in and select the desired option.

The gutter has also received an update, with breakpoints now placed over line numbers by default, saving horizontal space. Additionally, folding icons now appear on hover, and we’ve introduced a new color scheme for annotations (Git Blame) to help you identify recent changes faster.

Tool windows

Customize your IDE’s layout for quick access to frequently-used tool windows. Drag tool window icons to the desired location and organize them to your preference. Use vertical and horizontal splits to arrange tool windows, and hide or display tool windows under the More tool windows popup.

Run tool window

We moved the toolbar with run actions to the tool window tabs for easier access.

Debug tool window

We’ve consolidated separate toolbars for main debug actions, optimizing screen space.

Additionally, when there is a single running configuration, tabs for switching between the Threads & Variables view and Console now appear in the tool window tabs.

These changes to RubyMine’s new UI are designed to enhance your development experience with a streamlined and visually pleasing environment. We encourage you to give it a try and, if you come across any problems or have suggestions for new features, share your feedback in our issue tracker. Stay tuned for more upcoming posts in this series, where we’ll explore other exciting features.

Happy developing!

The RubyMine team

]]>
RubyMine 2023.2 EAP 5: Improved User Experience and New Live Templates https://blog.jetbrains.com/ruby/2023/06/rubymine-2023-2-eap-5-improved-user-experience-and-new-live-templates/ Mon, 19 Jun 2023 18:00:45 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/06/Blog_Featured_image_1280x600_RubyMine-2.png https://blog.jetbrains.com/?post_type=ruby&p=363868 The latest EAP version of RubyMine 2023.2 is now available. You can download it from our website or via the free Toolbox App.

We’ll be outlining some of the key improvements in this post.

Pinned run configurations in the Run widget

To enhance the experience of managing multiple run configurations, we have made it possible to pin your preferred configurations in the Run widget. Adding a run configuration to the Pinned section is simple: Open the kebab menu (three dots) next to the configuration’s name and select Pin. If you have multiple pinned configurations, you can effortlessly rearrange them by dragging and dropping them within the list.

File sorting by modification time in the Project view

RubyMine 2023.2 EAP 5 introduces a long-awaited feature: the ability to arrange files by modification time in the Project view. With this new functionality, RubyMine will automatically arrange your files based on their modification time. To enable this feature, simply open the kebab menu (three dots) in the Project view and select Tree Appearance | Sort by Modification Time.

Improved main toolbar customization

We have expanded the customization options for the main toolbar in the new UI. You can now conveniently add actions to the toolbar using a drop-down menu. To do this, simply right-click on any widget, choose Add to Main Toolbar, and explore the wide range of available options.

New live templates for React hooks

With this build, we’ve introduced a new set of live templates for React hooks. To access them, navigate to Settings and select Editor | Live Templates | React hooks. Explore this new collection of live templates and enjoy a more efficient development experience with React hooks.

The full list of improvements in this version is available in the release notes.

To learn about the latest features as they come out, follow RubyMine on Twitter. We post product news and tips several times a week.

We’d love to hear more about your experience with RubyMine. Schedule a 40–60 minute call with us to discuss it and get answers to any questions you might have!

We encourage you to share your thoughts in the comments below and to suggest and vote for new features in the issue tracker.

Happy developing!

The RubyMine team

]]>
RubyMine 2023.2 EAP4: New UI Improvements,  Extended RBS Support, and More https://blog.jetbrains.com/ruby/2023/06/rubymine-2023-2-eap4-new-ui-improvements-extended-rbs-support-and-more/ Mon, 12 Jun 2023 11:09:47 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/06/Blog_Featured_image_1280x600_RubyMine-1.png https://blog.jetbrains.com/?post_type=ruby&p=360691 We are currently in the process of developing RubyMine 2023.2 and have just launched our fourth Early Access Program (EAP) build. In this version, we’ve implemented several improvements, and we’d like you to explore them and share your feedback. Feel free to leave your comments in the section below or submit any issues through our dedicated issue tracker.

You can download the latest build from our website or through the free Toolbox App

Syntax highlighting in inspection descriptions

We’ve improved the Settings/Preferences menu under Editor/Inspections. Now you can enjoy syntax highlighting for code samples, making it easier to understand the purpose of each inspection.

Light theme with light header in the new UI

We’ve enhanced the user experience of the Light theme. We introduced a new option called Light with Light Header which provides a consistent and cohesive visual experience. This option ensures that window headers, tooltips, and notification balloons all have matching light colors, further refining the overall aesthetic.

Single-click navigation between project directories

In the Project view, we’ve added the Open Directories with Single Click option, enhancing the speed and responsiveness of expanding and collapsing project folders. To access this option, simply click on the three dots icon and select it from the drop-down menu.

use directives formatting in RBS

As part of our ongoing efforts to enhance support for use syntax in RBS, we have now added support for use directives formatting. This improvement ensures that the formatting of use directives is consistent and follows the established standards.

Updated Code Folding settings

We’ve updated the default code folding settings in this release. Here are the options that now are folded by default:

  • Code fences
  • Front matter
  • Link destinations
  • Table of Content
  • Tables

The full list of improvements in this version is available in the release notes. To learn about the latest features as they come out, follow RubyMine on Twitter. We post product news and tips several times a week.

We’d love to hear more about your experience with RubyMine. Schedule a 40–60 minute call with us to discuss and answer your questions!

We encourage you to share your thoughts in the comments below and to suggest and vote for new features in the issue tracker.

Happy developing!

The RubyMine team

]]>
RubyMine 2023.2 EAP3: Updated RBS Support and Search Everywhere Functionality https://blog.jetbrains.com/ruby/2023/06/rubymine-2023-2-eap3-updated-rbs-support-and-search-everywhere-functionality/ Fri, 02 Jun 2023 10:04:32 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/06/Blog_Featured_image_1280x600_RubyMine.png https://blog.jetbrains.com/?post_type=ruby&p=359379 We are actively developing RubyMine 2023.2 and have released our third Early Access Program (EAP) build. Here are the notable enhancements included in RubyMine 2023.2 EAP 3. We encourage you to try them and provide your feedback in the comments section or through our issue tracker.

You can download the latest build from our website or through the free Toolbox App

Naming convention inspections in RBS

In this EAP version we’ve added naming convention inspections for interfaces, type aliases, and type variables.

Сode insight for RBS use syntax

RubyMine code insight functionality is now available for use syntax in RBS. Here are some of improvements that we’ve implemented:

  • All namespaces used within a use clause now have reference support.
  • The target of an imported use clause now has reference support.
  • When resolving a simple name, we prioritize resolve targets in the following order: type variables first, followed by use clauses in reverse order. Use clauses that occur last have a higher priority, allowing you to shadow a use clause that comes earlier.
  • Autocomplete for wildcard use clauses now includes a * character.
  • An implicit reference is now provided for the * characters in wildcard use clauses. 
  • Use clause aliases are recognized as separate entities, and code insight actions such as Go to declaration, Find usages, and Rename are now available for them. 
  • When obtaining a type in Ruby from RBS (Ruby Signature), it will display the expected type that the use clause and/or alias targets.
  • All RBS inspections are updated to work with use clause aliases. 
  • Completion inside use clauses functions correctly, now that updates have been made to handle insertions properly.
  • When invoking completion inside a file, use clause aliases are included in the completion list. 
  • Use clause alias names now have spell checking support.

Annotations and inspections for use directives in RBS

We continue to support this new feature in RBS, while in this EAP build we’ve added some annotations and inspections for misused directives. Here is the list of improvements:

  • RubyMine now annotates use clause aliases when their cases do not match 
  • We’ve added an inspection for an unconventional use alias name, which behaves the same as other naming convention inspections.
  • We’ve added an inspection for unused use clauses with a quick fix to “optimize use clauses”, which removes the unused ones. 
  • We’ve added an inspection for Unnecessary qualifiers. Qualifiers are sometimes unnecessary when there is a namespace or use clause present that imports the actual name.
  • We’ve added a quick fix for simple unresolved references (those with no qualifiers) that propose adding a use clause to import the name if there is one available.
  • There is now support for the Optimize imports action, which only removes unused imports and behaves the same as the inspection. 

Text search in Search Everywhere

The Search Everywhere (Double ⇧ / Double Shift) functionality, primarily utilized for searching through files, classes, methods, actions, and settings, now includes text search capabilities similar to Find in Files. With this enhancement, text search results are displayed when there are few or no other search results available for a given query. The feature is enabled by default and can be managed in Settings/Preferences | Advanced Settings | Search Everywhere.

The full list of improvements in this version is available in the release notes. To learn about the latest features as they come out, follow RubyMine on Twitter. We post product news and tips several times a week.

We’d love to hear more about your experience with RubyMine. Schedule a 40–60 minute call with us to discuss and answer your questions!

We encourage you to share your thoughts in the comments below and to suggest and vote for new features in the issue tracker.

Happy developing!

The RubyMine team

]]>
RubyMine 2023.2 EAP2: New UI updates, improved Rails 7 and RBS support  https://blog.jetbrains.com/ruby/2023/05/rubymine-2023-2-eap2-new-ui-updates-improved-rails-7-and-rbs-support/ Fri, 19 May 2023 16:29:03 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/05/Blog_Featured_image_1280x600_RubyMine.png https://blog.jetbrains.com/?post_type=ruby&p=356726 The second EAP version of RubyMine 2023.2 is now available, and you can download the latest build either from our website or through the free Toolbox App

Here are some of the key improvements you’ll find. 

Rails 7

Support for turbo-rails completion

We’ve updated turbo-rails code completion and insight for models, controllers, and views, allowing you to define model-specific Turbo Stream templates that provide real-time updates to the client side when the model is created, updated, or deleted. With Turbo for Rails, you can use code completion in your models to access Turbo-Stream-specific methods. 

Import Maps support

We’ve implemented support for using importmaps with Ruby and Ruby on Rails code. Here is what we’ve implemented:

  • Run anything for importmap and its subcommands.
  • Scope context for the config/importmap.rb file. This means that self now has the correct type and that autocompletion and resolve are now available for the pin and pin_all_from methods.
  • Basic declaration and reference support for importmap modules within ruby code. Go to declaration, as well as Find usages to and from declarations and references, now works for importmap modules.
  • File references in the pin and pin_all_from calls in config/importmap.rb. The file references are now present for the pinunder argument (pin ‘my_module’, under: ‘<caret>’), and for the first argument in pin_all_from(pin_all_from ‘<caret>’). Additionally, completion and resolve are now available for these arguments.

New UI updates

We are continuing to improve the new UI, and we aim to release it out of Beta in version 2023.2. We appreciate your feedback and will make further improvements accordingly.

New hamburger menu in the main toolbar for Windows and Linux

One notable change is the reworking of the hamburger menu in the main toolbar for Windows and Linux. In the new UI, we have refined the behavior of the menu. Now, when you click on the menu icon, the menu elements will appear horizontally over the toolbar. This provides a more intuitive and streamlined experience.

Additionally, we have added the option to convert this menu into a separate toolbar. To enable this feature, navigate to View | Appearance | Main menu as a Separate Toolbar. By selecting this option, the menu will be displayed as a distinct toolbar, offering an alternative layout for easier access to its elements.

Updated window controls on macOS 

When working on macOS in full screen mode using the new UI, the window controls are now displayed right in the main toolbar – not in the floating bar as before.

Class and module aliases formatting in RBS

Formatting functionality is now available for the class and module aliases:

The full list of improvements in this version is available in the release notes.

To learn about the latest features as they come out, follow RubyMine on Twitter. We post product news and tips several times a week.

We’d love to hear more about your experience with RubyMine. Schedule a 40–60 minute call with us to discuss and answer your questions!

We encourage you to share your thoughts in the comments below and to suggest and vote for new features in the issue tracker.

Happy developing!

The RubyMine team

]]>
RubyMine 2023.2 EAP Is Open! https://blog.jetbrains.com/ruby/2023/05/rubymine-2023-2-eap-is-open/ Mon, 15 May 2023 13:28:49 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/05/Blog_Featured_image_1280x600_RubyMine.png https://blog.jetbrains.com/?post_type=ruby&p=353112 The first early access program (EAP) version of RubyMine 2023.2 is now available, and you can download the latest build either from our website or through the free Toolbox App

We’ll be outlining some of the key improvements in this post. 

Fast and smart code editing with updated lexer

We are committed to improving RubyMine’s performance to provide you with a better experience when editing, debugging, refactoring, and so on. In the first 2023.2 EAP release, we gave the RubyMine lexer a major overhaul, which dramatically increased the lexing and parsing speed. 

Ruby code editing has become notably faster with the introduction of the following improvements:

  • RubyMine now makes it easier to visually scan and understand code, identify errors and typos, and navigate through code, which, thanks to fast and convenient syntax highlighting, is more readable and understandable. 
  • With RubyMine’s updated lexer and parser, there’s a faster feedback loop when writing and testing your code. This allows you to see the results of your changes more quickly and iterate faster. 
  • RubyMine spends less time parsing and processing Ruby code, which results in better application performance improving the user experience of Ruby applications.

By reducing the time and resources needed to process code, fast lexing helps you create better applications more quickly and efficiently.

Filtering files during gem sync for Docker and docker-compose SDKs

We’re continually improving the performance of remote interpreters in RubyMine. In this release, we optimized gem synchronization for Docker and docker-compose SDKs.

We achieved this by making a slight change to how we sync gems for docker-compose SDKs. 

Previously, we had 2 modes for copying gems: using the docker cp command to copy gems from running containers and using the docker engine API to copy gems from an image. We now only use the Docker Engine API, which can be used for copying gems from both an image and a running container. However, you can still choose the method for copying gems in Settings | Build, Execution, Deployment | Docker | Ruby Settings.

You can see how the settings looked before:

Updated settings:

Support for renaming typos in RBS

In previous releases, we added spell checking for interfaces, type aliases, and comments in RBS. In this release, we have implemented a new quick-fix action that allows you to replace typos in symbol names with suggested corrections.

Support for namespaced components in script setup syntax in Vue

We now support namespaced components, allowing for proper resolution of the components used in template tags and enabling better navigation.

The full list of improvements in this version is available in the release notes.

To learn about the latest features as they come out, follow RubyMine on Twitter. We post product news and tips several times a week.

We’d love to hear more about your experience with RubyMine. Schedule a 40–60 minute call with us to discuss and answer your questions!

We encourage you to share your thoughts in the comments below and to suggest and vote for new features in the issue tracker.

Happy developing!

The RubyMine team

]]>
RubyMine Roadmap 2023.1–2023.2 https://blog.jetbrains.com/ruby/2023/04/rubymine-roadmap-2023-1-2023-2/ Thu, 13 Apr 2023 15:57:30 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/04/Blog_Featured_image_1280x600-5.png https://blog.jetbrains.com/?post_type=ruby&p=342539 Last month, we released RubyMine 2023.1, our first major update for the year 2023. We would like to express our gratitude to those who are already using it and providing us with feedback. Your responses have been incredible, with the new user interface being the most frequently mentioned aspect. We are permanently in the process of analyzing your feedback to determine what’s working well and what might still be in need of enhancement. 

Today, we’d like to give you a sneak peek into what we have planned for the next releases of RubyMine, with the usual disclaimer that these plans are subject to change. We may postpone some features and improvements to a future release. Our focus for 2023.1 was on performance improvements, and in 2023.2 we continue to work on performance, first-class support for Ruby technologies, and remote development.

Performance improvements

We believe that it’s not enough for our products to be powerful – they should also run smoothly. You expect fast code completion, seamless editing, and faster project opening, which is why we’re committed to addressing performance issues and enhancing your experience with RubyMine. We’ll be focused on improving performance in areas like completion, typing, inspections, and more.

First-class support

At JetBrains, we strongly believe that our IDEs should provide exceptional support for prominent languages and technologies. This is what we have done with RubyMine in past years and what we will continue to do in future releases. We plan to keep up with the latest developments in the Ruby community and deliver new features and improvements for popular technologies like new Ruby language versions, RBS, and Ruby on Rails as soon as possible.

Remote development

Remote development has become increasingly popular among developers. We’re actively researching the needs of the Ruby community in this area, and we hope to offer effective and effortless remote development options in the near future.

If you have any feedback or suggestions about remote development, please schedule a call with us using this link.

Other plans

We’ve also got a few other things in the works, including:

  • Extending first-class support to other technologies besides Ruby on Rails, such as Liquid or Falcon, which are popular among Ruby developers.
  • Improving the onboarding experience by streamlining the process of installing, updating, and managing the Ruby environment to make it more user-friendly.
  • Enhancing the stability of the Ruby plugin in IntelliJ IDEA to deliver the same level of support and experience as in RubyMine.

Extended support for Ruby-related technologies

For a considerable duration, Ruby on Rails has dominated the ecosystem, and we’ve consistently provided top-notch support for it. We are committed to extending this support to additional Ruby technologies, such as Liquid or Falcon, which many Ruby developers are eager to work with in RubyMine.

Better onboarding experience

Improving the onboarding experience is a key priority for us. We recognize that the process of getting up and running with our platform can be daunting, especially for new users. As such, we are constantly working to refine our onboarding process and make it as smooth and straightforward as possible. Our aim is to provide comprehensive documentation, clear instructions, and intuitive user interfaces to ensure that users can quickly and easily get started with RubyMine, regardless of their level of experience.

Working with the Ruby environment can be a hassle, even for seasoned developers. The installation, updating, and management of Ruby environments can be particularly cumbersome. To simplify this process and make it more intuitive and user-friendly, we are planning to improve the user experience. Our goal is to streamline the onboarding experience and ensure that developers of all skill levels can easily work with RubyMine.

Ruby plugin for IntelliJ IDEA

The Ruby plugin in IntelliJ IDEA has become extremely popular among Ruby developers, and we are committed to ensuring that the experience of working with Ruby in IntelliJ IDEA is just as good as it is in RubyMine. To this end, we are working hard to increase the stability of the plugin and provide the same level of support and user experience as our full-scale Ruby IDE. Our goal is to continuously improve the capabilities and usability of our platform, and we are committed to investing in the necessary resources to make this a reality.

These are the most notable improvements planned for the next releases. Keep an eye out for details regarding the forthcoming bug-fix updates for RubyMine 2023.1, as well as the start of the next round of the Early Access Program!

You can download RubyMine 2023.1 from our website or via the Toolbox App.

We’d love to hear more about your experience with RubyMine. Schedule a 40–60 minute call with us to discuss and answer your questions!

To learn about the newest features as they come out, please follow RubyMine on Twitter

We invite you to share your thoughts in the comments below and suggest and vote for new features in the issue tracker.

Happy developing!

The RubyMine team

]]>
RubyMine 2023.1: Rails 7 and Ruby 3.2 Support, Improved Performance, Refreshed New UI, and More! https://blog.jetbrains.com/ruby/2023/03/rubymine-2023-1-is-out/ Wed, 29 Mar 2023 12:10:10 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/03/Release_Preview_image_1280x600_RubyMine-1.png https://blog.jetbrains.com/?post_type=ruby&p=336175 The release of RubyMine 2023.1 is now available!

You can get the new build from our website or via the free Toolbox App.

The Ruby and Rails IDE has been upgraded to support Rails 7 and Ruby 3.2 with additional improvements, including a refreshed new UI, faster code completion, decreased memory usage, better gem synchronization on WSL, simpler navigation, and enhanced integration with Docker. Moreover, users can now effortlessly work with shared contexts and examples in RSpec, and much more.

Here are some highlights of the key features. For a detailed description of this update, please visit our What’s New page.

Ruby and Rails

Support for turbo-rails completion in Rails 7

Are you currently using or planning to upgrade to Rails 7? With the latest release, RubyMine’s autocomplete feature now supports Rails 7’s turbo-rails methods, enabling you to write Ruby code faster and more efficiently.

Completion of field parameters in ActiveRecord methods

We’ve included code completion support options for certain CRUD methods of the ActiveRecord class. RubyMine will now provide suggestions for argument completion for the following ActiveRecord methods:

  • Class ActiveRecord::Inheritance::ClassMethods
    Methods: new
  • Class ActiveRecord::Persistence::ClassMethods
    Methods: create, create!, update, update!
  • Class ActiveRecord::Persistence
    Methods: update, update!, update_columns, update_attributes, update_attributes!
  • Class ActiveRecord::Associations::CollectionAssociation
    Methods: build
  • Class ActiveRecord::Associations::CollectionProxy
    Methods: build, create, create!
  • Class ActiveRecord::Relation

Methods: new, create, create!, first_or_create, first_or_create!, first_or_initialize, create_or_find_by, create_or_find_by!, update, update!, build

Please note that some of these methods may not be defined in certain versions of Rails.

Performance

Code completion speed

We analyzed a great deal of anonymous user data and fixed a major performance issue following the analysis results. This almost doubled RubyMine’s code completion speed.

Memory consumption decreased

We fixed several issues that caused excessive memory consumption in RubyMine. When working with larger projects, the IDE memory footprint is now significantly smaller.

Gem synchronization on WSL

The new version of RubyMine comes with a built-in syncing tool optimized for working on WSL. This tool replaced rsync, previously used for file transferring during gem synchronization. The new solution is almost 10 times faster than the previous implementation.

New UI updates

Editor window zoom

You can now zoom into and out of the RubyMine editor window entirely, adjusting the size of all UI elements at once. This can be done by selecting View from the main menu, then choosing Appearance and adjusting the IDE’s scaling. Alternatively, if you have a touchpad or touchscreen, you can zoom in and out directly in the editor window.

To simplify the process of calling these actions, you can assign custom shortcuts to them in the Keymap section of the Settings menu. Simply navigate to the Main Menu, then View, and finally Appearance.

Configuration option to set up Actions on Save for new projects

In RubyMine 2023.1, there is a new configuration setting that allows you to define which Actions on Save for new projects. 
To access this setting, go to File/ New Projects Setup / Preferences For New Projects / Tools / Actions on Save. From there, you can specify which actions should be automatically executed when changes are saved in your projects.

Hidden toolbar in Zen and Distraction Free modes in the new UI

The appearance and user interface of the IDE have been improved with the latest update. When the Zen and Distraction Free modes are activated, the top toolbar is hidden.

Vertical split for tool windows

With the updated UI, you can easily organize your workspace by splitting the tool window area. To move a tool window to the lower section, drag its icon from the sidebar and drop it below the separator. Alternatively, you can right-click on the icon to access the context menu and then select the Move to option to relocate it.

Search Everywhere is enabled with ML-powered search for classes

We’re making ongoing efforts to incorporate machine-learning ranking into the Search Everywhere (Double ⇧ / Double Shift) functionality to deliver more precise and relevant search outcomes. The machine learning-powered sorting algorithm is now enabled by default in the Classes tab, as well as in the Actions and Files tabs.

Configure Tailwind CSS

In this build, we’ve added support for all configuration options, such as configuring custom class name completions under the `classAttributes` option and even experimental ones like tailwindCSS.experimental.configFile.

You can find and set up these configuration options under Preferences / Settings | Languages & Frameworks | Style Sheets | Tailwind CSS.

RSpec

Improved navigation from subject to subject definition in RSpec

We’ve enhanced navigation within RSpec to enable easy access to in-scope value definitions. You can now navigate to the nearest in-scope value definition by using ⌘Click (macOS) or Ctrl+Click (Windows) on a subject reference.

Run shared_examples_for and shared_context from the gutter

From this release onwards, utilizing shared_examples_for and shared_contexts has become simpler – it is now possible to execute them using gutter icons.

Fluent interface descriptions formatting for RSpec 3

The built-in RubyMine formatter now supports fluent interface descriptions for RSpec 3. While the tests are running, they will still have the default placeholder description. As soon as the tests are finished, these descriptions are replaced with the actual example names.

Docker

Merged logs from all Docker-compose containers

The Dashboard tab in the Docker-compose node has been enhanced to consolidate logs from all Docker-compose containers into a centralized location, allowing for real-time updates.

Support for Azure Container Registry

Connecting to Azure Container Registry is now much simpler. 
To set it up, navigate to the Docker Registry section under Settings/Preferences | Build, Execution, Deployment | Docker. Then, in the Docker Registry input field, select the Docker V2 option.

New setting to apply the :z mount option to bind volumes on SELinux

You can add the :z configuration flag to Docker bind mounts. This allows you to connect volumes to Docker containers on SELinux workstations.

These are the most notable updates introduced in RubyMine 2023.1. Check out the What’s New page or refer to the release notes for more comprehensive details about the new version.

You can download RubyMine 2023.1 from our website or via the Toolbox App.

We’d love to hear more about your experience with RubyMine. Schedule a 40–60 minute call with us to discuss and answer your questions!

To learn about the newest features as they come out, please follow RubyMine on Twitter. We post product news and tips several times a week.

We invite you to share your thoughts in the comments below and suggest and vote for new features in the issue tracker.

Happy developing!

The RubyMine team

]]>
Performance Improvements in RubyMine 2023.1 https://blog.jetbrains.com/ruby/2023/03/performance-improvements-2023-1/ Fri, 17 Mar 2023 15:18:13 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/03/Blog_Featured_image_1280x600-7.png https://blog.jetbrains.com/?post_type=ruby&p=333169 Hello everybody,

The new release is fast approaching, so it’s time to unveil the performance enhancements you can expect from RubyMine 2023.1.

Faster code completion

When developing and supporting RubyMine, we analyze a great load of anonymized usage data. A lot of recent data pointed to the fact that code completion wasn’t working as fast as we had anticipated. We dug into the code to identify the causes of this slowness and fixed a major performance issue, which allowed us to increase the speed of code completion drastically.

The graphic below shows how code completion has improved with the introduction of our performance fixes – from ~400 ms down to ~162 ms.

Please note that the provided values are average, and your personal experience might differ.

We plan to continue improving our code completion in the forthcoming releases, so stay tuned!

Lower memory consumption

We investigated and fixed several issues that were causing RubyMine to consume considerable amounts of memory under certain circumstances. When working with RubyMine projects, you may now notice that the IDE memory footprint has significantly decreased.

Additionally, we’ve changed the default value of the -Xmx option, which the JVM uses to run RubyMine, to 2048 MiB.

Tip: You can always configure RubyMine’s memory heap size manually. From the main menu, select Help | Change Memory Settings. Set how much memory you want to allocate, and then click Save and Restart for the new setting to take effect.

Other performance improvements

In addition to the already mentioned improvements, we diagnosed and optimized the work of RubyMine’s indexes and parser. All these changes are to improve the performance and general experience of using RubyMine.

Join the Early Access Program

You can download the latest EAP build from our website or via the Toolbox App. The full list of closed tickets in this EAP build is available in the release notes.

To learn about the newest features as they come out, follow RubyMine on Twitter. We post product news and tips several times a week.

We encourage you to share your thoughts in the comments below and to create and vote for new features in the issue tracker.

Happy developing!

The RubyMine team

]]>
RubyMine 2023.1 Beta Is Out! https://blog.jetbrains.com/ruby/2023/03/rubymine-2023-1-beta/ Thu, 02 Mar 2023 12:36:31 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/03/Release_Preview_image_1280x600_RubyMine.png https://blog.jetbrains.com/?post_type=ruby&p=328414 You can now download and test RubyMine 2023.1 Beta. In this build, you can find and test a range of new features. Please try it out and share your feedback in the comments or by using our issue tracker.

New UI updates

Our team has been working on enhancing the user interface, and we’ve made several improvements in the latest build. We encourage you to continue providing feedback so we can keep refining the new UI.

In the current EAP build, you’ll notice the following UI updates:

Revamped Run widget

We’ve given the Run widget, located at the top of the IDE window, a complete overhaul. The icons are now green, making for a more subdued and visually pleasing appearance, as opposed to the previous design, where the area around the icons was blocked out in color.

Configuration option to set up Actions on Save for new projects

The RubyMine 2023.1 Beta provides a configuration setting to define Actions to Save for new projects. To access this setting, navigate to File/ New Projects Setup / Preferences For New Projects / Tools / Actions on Save. Here, you can specify which actions should be executed upon saving changes in your projects.

Search Everywhere is enabled with ML-powered search for classes

We’re making ongoing efforts to incorporate machine-learning ranking into the Search Everywhere(Double ⇧ / Double Shift) functionality to deliver more precise and relevant search outcomes. The machine learning-powered sorting algorithm is now the default in the Classes tab, as well as in the Actions and Files tabs.

Оption to revert to the previous copy/cut/paste behavior

The copy/cut/paste behavior in this version of RubyMine differs from previous ones. To enable pasting clipboard content at the caret instead of the preceding line, we’ve introduced a restoring option. To access this option, go to Preferences / Settings | Advanced Settings | Editor, and select the dropdown menu next to When pasting a line copied with no selection.

Tailwind CSS support

In RubyMine 2023.1, we’ve added highly anticipated improvements for Tailwind CSS.

Configure Tailwind CSS

In this build, we’ve added support for all configuration options, such as configuring custom class name completions under the `classAttributes` option and even experimental ones like tailwindCSS.experimental.configFile.

You can find and set up these configuration options under Preferences / Settings | Languages & Frameworks | Style Sheets | Tailwind CSS.

Autocompletion of arbitrary values

In the RubyMine 2023.1 Beta release, we’ve added autocompletion for custom values when using square brackets notations like text-[#FFFFFF].

Autoconversion of strings to template strings when using an inline variable

With RubyMine 2023.1, you can now automatically convert strings to template literals when you type ${ inside of it.

Run Jest tests in folders

We’ve also added the ability to run all Jest tests in a specific folder via the right-click menu. This makes it much easier to run Jest tests.

Other improvements

  • We’ve supported Perforce in the Version Control widget in the new UI. [IDEA-297892]
  • Support @const tag in Svelte. [WEB-55903]
  • Structure filter now works in Find Usages for global variables. [RUBY-30964]

The full list of improvements in this version is available in the release notes.

To learn about the latest features as they come out, follow RubyMine on Twitter. We post product news and tips several times a week.

We encourage you to share your thoughts in the comments below and to suggest and vote for new features in the issue tracker.

Happy developing!

The RubyMine team

]]>
RubyMine 2023.1 EAP5 Is Out! https://blog.jetbrains.com/ruby/2023/02/rubymine-2023-1-eap5-is-out/ Mon, 20 Feb 2023 10:18:08 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/02/Blog_Featured_image_1280x600_RubyMine-2x-1.png https://blog.jetbrains.com/?post_type=ruby&p=324238 Hello everyone,

RubyMine 2023.1 EAP5 is now available! Below you can find the most notable features in this build. We encourage you to try them out and share your feedback in the comments or in our issue tracker.

Migration of Ruby code to the Symbol API

In order to improve code insight actions such as Find Usages, navigation, and the Rename refactoring, we are migrating some parts of the Ruby code to the Symbol API.

Migration of global variables

With the migration of global variables to the Symbol API, we’ve managed to provide a variety of optimizations and improvements for code insight features. These changes are especially noticeable when working with multiple declarations.

Navigation

  • The $ prefix is no longer highlighted as part of a global variable when you navigate to its declaration.
  • If there are multiple implementations of a particular global variable, you will see a standard hint instead of the “Multiple implementations” caption when going to the declaration.
  • You can now view usages of a global variable when holding (on macOS) or Ctrl (on Windows) and clicking on a declaration. Previously, RubyMine showed only a list of declarations.

Quick Documentation

  • You can now see syntax highlighting in the Quick Documentation headers.
  • We no longer redirect you from Quick Documentation to rubydoc.info, as there is no documentation on global variables.
  • If there are multiple declarations with documentation, you can see the documentation for all declarations at once by pressing F1.

Code completion

  • The $ prefix is no longer included in completion suggestions.
  • In the list of completion suggestions, RubyMine now displays the location of a declaration on the right-hand side instead of displaying the global variable’s comment there.

Find Usages and the Rename refactoring

Creation of Data instances with square brackets

In an earlier blog post about EAP3, we mentioned the newly added support for Data.define.

In this build, we’ve made it possible to create instances of the Data class using square brackets. RubyMine recognizes the types of these instances and displays them when invoking the Type Info action.

Display of usage types when renaming RBS symbols

We previously added support for displaying the usage types of Ruby symbols in the Rename preview. Now, RubyMine also shows the usage types of RBS symbols when you rename them.

Project tabs in the new UI on macOS

In response to a popular user request, we’ve implemented project tabs for macOS users in the new UI. When you have several projects open, you can now easily switch between them using the project tabs displayed under the main toolbar.

Option to filter files in the Coverage view

You can now filter files in the Coverage view after running tests with coverage. RubyMine allows you to view coverage details for the whole application or focus on the files that contain uncommitted changes and might require special attention during testing.

Completion for custom component events in Vue

We’ve made further improvements to Vue support in RubyMine 2023.1. You can now benefit from code completion for your custom component events in Vue templates. This completion is available as you type and works identically in both JavaScript and TypeScript.

Join the Early Access Program

You can download the latest EAP build from our website or via the Toolbox app. The full list of closed tickets in this EAP build is available in the release notes. To learn about the newest features as they come out, please follow RubyMine on Twitter. We post product news and tips several times a week. We encourage you to share your thoughts in the comments below and to create and vote for new features in the issue tracker.

Happy developing!

The RubyMine team

]]>
The RubyMine 2023.1 EAP4 Is Available! https://blog.jetbrains.com/ruby/2023/02/the-rubymine-2023-1-eap4/ Mon, 13 Feb 2023 10:10:37 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/02/Blog_Featured_image_1280x600_RubyMine-1.png https://blog.jetbrains.com/?post_type=ruby&p=323349 You can now download and test RubyMine 2023.1 EAP4.

This blogpost describes the most notable new functionality. Please try it out and share your feedback in the comments or by using our issue tracker.

Fluent interface descriptions formatting for RSpec3

We’ve supported the fluent interface descriptions for RSpec3 in our formatter. While the tests are running, they will still have the default placeholder description (e.g. example at …). As soon as the tests are finished, these descriptions are replaced with the actual example names. The only exception is when the test is ignored, since the descriptions are not available for those in RSpec3.

Minitest “describe” and “it” blocks in the Structure Tool Window

We’ve improved the display of Minitests in the Structure Tool Window for easier navigation. Now, in the Structure Tool Window, you can see your test structure nested under the corresponding method, making it easier to navigate large tests.

Astro language support

Astro support has finally arrived! It’s possible to access it through a new plugin, which is available in RubyMine 2023.1 EAP4. To get the Astro plugin, you can either download it from JetBrains Marketplace or install it within the IDE itself. To do so, simply navigate to the Plugins section in Preferences/Settings and search for Astro.

The Astro plugin offers a range of basic features, including syntax highlighting, automatic imports with code completion, refactorings, navigation, intentions, code folding, support for Emmet, and proper formatting. We have plans to expand Astro support and include more advanced features in the future.

Merged logs from all Docker-compose containers

The Docker-compose node’s Dashboard tab now brings together logs from all of the Docker-compose containers and displays them in a single, centralized location with updates appearing in real-time.

Support for Azure Container Registry 

Connecting to Azure Container Registry has become much simpler. To set it up, navigate to the Docker Registry section under Settings/Preferences | Build, Execution, Deployment | Docker. Then, in the Docker Registry input field, select the Docker V2 option.

New setting to apply the :z mount option to bind volumes on SELinux

With the RubyMine 2023.1 EAP4 update, you can add the :z configuration flag to Docker bind mounts. This allows you to connect volumes to Docker containers on SELinux workstations. To enable this functionality, go to Settings/Preferences | Advanced Settings | Docker.

Easily start Rails applications in debug mode with Docker SDK

We’ve fixed the issue related to starting the Rails application in debug mode after updating RubyMine to version 2023.1. To do so, we had to remove the Docker-based SDK and add it back again. Now you can update your IDE, and after installing debug gems, the Rails application will start successfully.

The full list of improvements in this version is available in the release notes.

To learn about the latest features as they come out, follow RubyMine on Twitter. We post product news and tips several times a week.

We encourage you to share your thoughts in the comments below and to suggest and vote for new features in the issue tracker.

Happy developing!

The RubyMine team

]]>