{"id":287367,"date":"2022-10-17T12:49:31","date_gmt":"2022-10-17T11:49:31","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=ruby&#038;p=287367"},"modified":"2022-10-18T06:05:04","modified_gmt":"2022-10-18T05:05:04","slug":"rubymine-2022-3-eap3","status":"publish","type":"ruby","link":"https:\/\/blog.jetbrains.com\/fr\/ruby\/2022\/10\/rubymine-2022-3-eap3","title":{"rendered":"RubyMine 2022.3 EAP3: Improved RSpec Support, Code Insights in RBS, and Much More"},"content":{"rendered":"<p>It\u2019s time to unveil the third build of RubyMine 2022.3 EAP!<\/p>\n<p>We invite you to <a href=\"https:\/\/www.jetbrains.com\/ruby\/nextversion\/?_gl=1*1le12lq*_ga*MTkyMjY3OTIxMy4xNjY0ODc1NjA2*_ga_9J976DJZ68*MTY2NTU4MzY3My41NS4xLjE2NjU1ODM2NzQuMC4wLjA.&amp;_ga=2.24359165.693918800.1664875606-1922679213.1664875606\" target=\"_blank\" rel=\"noopener\">download RubyMine 2022.3 EAP3<\/a> from our website or via the <a href=\"https:\/\/www.jetbrains.com\/toolbox-app\/?_gl=1*1uab4q*_ga*MTkyMjY3OTIxMy4xNjY0ODc1NjA2*_ga_9J976DJZ68*MTY2NTU4MzY3My41NS4xLjE2NjU1ODM2NzQuMC4wLjA.&amp;_ga=2.256143692.693918800.1664875606-1922679213.1664875606\" target=\"_blank\" rel=\"noopener\">Toolbox app<\/a>.<\/p>\n<p>Let\u2019s check out the updated features and improvements in detail.<\/p>\n<h2>Search for usages and rename shared contexts and examples in RSpec<\/h2>\n<p>We continue to improve coding assistance for shared contexts and examples in RSpec. In this build, we&#8217;ve supported the <strong>Rename<\/strong> refactorings and the <strong>Find Usages<\/strong> action.<\/p>\n<p>Now you can <a href=\"https:\/\/www.jetbrains.com\/help\/ruby\/find-highlight-usages.html\" target=\"_blank\" rel=\"noopener\">search for usages<\/a> of shared contexts in RubyMine. The <strong>Find Usages<\/strong> action works with shared contexts represented by a string or a symbol. In the editor, select the element for which you want to find usages and press <strong>\u2325 F7<\/strong> on macOS or <strong>Alt+F7<\/strong> on Windows.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-287601\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/10\/find-usages.png\" alt=\"\" width=\"512\" height=\"131\"><\/p>\n<p><\/p>\n<p>RubyMine also provides an inline preview of a usage when you click the related declaration.<\/p>\n<p>RubyMine lets you change names of shared contexts and examples along with their references by using the <a href=\"https:\/\/www.jetbrains.com\/help\/ruby\/2022.3\/rename-refactorings.html\" target=\"_blank\" rel=\"noopener\">Rename<\/a> refactoring. To invoke the Rename refactoring, place the caret at the desired shared context or example and press <strong>\u21e7 F6<\/strong> on macOS or <strong>Shift+F6<\/strong> on Windows. Then, specify the new name and press <strong>Enter<\/strong>.<\/p>\n<h2>Run shared examples in the context of referencing groups in RSpec<\/h2>\n<p>We introduced the ability to specify the context for executing shared examples in RSpecNow when you run specs containing shared examples, RubyMine displays a dialog where you can choose a context for executing them.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-287390\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/10\/rm_223_shared_examples_context.png\" alt=\"\" width=\"1440\" height=\"506\"><\/p>\n<h2>New inlay hints for self-type bindings in RBS<\/h2>\n<p>We&#8217;ve added new inlay hints for blocks with self-type bindings in RBS. To avoid displaying too many inlay hints, RubyMine shows the Numbered parameter type hints only when you actually use a numbered parameter inside a block.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-287502\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/10\/inlay-hints.png\" alt=\"inlay hints\" width=\"512\" height=\"215\"><\/p>\n<h2>Inject ruby into strings used in eval and eval-related functions automatically<\/h2>\n<p>Strings in <code>eval<\/code> and <code>eval<\/code>-like functions are automatically injected with Ruby. Hints, code completion, and other code editing features now work inside <code>eval<\/code> functions the same way they do in Ruby code.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-287513\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/10\/eval-1.png\" alt=\"\" width=\"512\" height=\"204\"><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-287524\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/10\/eval-2.png\" alt=\"\" width=\"512\" height=\"63\"><\/p>\n<h2>More accurate search results<\/h2>\n<p>Starting from this release, RubyMine will freeze the initial search results when you start typing your query in the Search Everywhere dialog. <a href=\"https:\/\/www.jetbrains.com\/help\/ruby\/searching-everywhere.html\" target=\"_blank\" rel=\"noopener\">Search Everywhere<\/a> query results will be displayed and not reordered when more options are found. Thus, the behavior of the Search Everywhere result list has become more predictable, and the selection of items that are found has become more accurate.<\/p>\n<div style=\"width: 1920px;\" class=\"wp-video\"><!--[if lt IE 9]><script>document.createElement('video');<\/script><![endif]-->\n<video class=\"wp-video-shortcode\" id=\"video-287367-1\" width=\"1920\" height=\"1080\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/10\/search-everywhere-results.mp4?_=1\" \/><a href=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/10\/search-everywhere-results.mp4\">https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/10\/search-everywhere-results.mp4<\/a><\/video><\/div>\n<p><\/p>\n<h2>Option to dock tool windows to floating editor tabs<\/h2>\n<p>We\u2019ve implemented options for dragging tool windows in the main window and docking them to floating editor tabs. Now you can easily set up and interact with your RubyMine workspace on multiple monitors.<\/p>\n<div style=\"width: 2180px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-287367-2\" width=\"2180\" height=\"1334\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/10\/dock_tool_windows.mp4?_=2\" \/><a href=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/10\/dock_tool_windows.mp4\">https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/10\/dock_tool_windows.mp4<\/a><\/video><\/div>\n<p><\/p>\n<h2>Join the Early Access Program<\/h2>\n<p>You can download the latest EAP build <a href=\"https:\/\/www.jetbrains.com\/ruby\/nextversion\/\" target=\"_blank\" rel=\"noopener\">from our website<\/a> or via the <a href=\"https:\/\/www.jetbrains.com\/toolbox-app\/\" target=\"_blank\" rel=\"noopener\">Toolbox app<\/a>. The full list of closed tickets in this EAP build is available in the <a href=\"https:\/\/youtrack.jetbrains.com\/articles\/RUBY-A-220365004\" target=\"_blank\" rel=\"noopener\">release notes<\/a>.<\/p>\n<p>To learn about the newest features as they come out, please follow <a href=\"https:\/\/twitter.com\/rubymine\" target=\"_blank\" rel=\"noopener\">RubyMine on Twitter<\/a>. We post product news and tips several times a week.<\/p>\n<p>We\u2019re encouraging users to share your thoughts in the comments below and to suggest and vote for new features in the <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/ruby\" target=\"_blank\" rel=\"noopener\">issue tracker<\/a>.<\/p>\n<p><em>Happy developing!<\/em><\/p>\n<p>The RubyMine team<\/p>\n\n\n<p><\/p>\n","protected":false},"author":1361,"featured_media":285087,"comment_status":"closed","ping_status":"closed","template":"","categories":[826],"tags":[7086,600],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/ruby\/287367"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/ruby"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/types\/ruby"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/users\/1361"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/comments?post=287367"}],"version-history":[{"count":8,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/ruby\/287367\/revisions"}],"predecessor-version":[{"id":287656,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/ruby\/287367\/revisions\/287656"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media\/285087"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media?parent=287367"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/categories?post=287367"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/tags?post=287367"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/cross-post-tag?post=287367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}