{"id":9995,"date":"2018-01-26T16:09:42","date_gmt":"2018-01-26T16:09:42","guid":{"rendered":"https:\/\/blog.jetbrains.com\/ruby\/?p=8043"},"modified":"2018-03-20T15:59:50","modified_gmt":"2018-03-20T15:59:50","slug":"rubymine-2018-1-eap1-is-open","status":"publish","type":"ruby","link":"https:\/\/blog.jetbrains.com\/ruby\/2018\/01\/rubymine-2018-1-eap1-is-open\/","title":{"rendered":"RubyMine 2018.1 EAP is Open: Run Anything Action, Better Debugger, and More!"},"content":{"rendered":"<p>Hi there,<\/p>\n<p>We are happy to announce that the Early Access Preview program for RubyMine 2018.1 is now open.<\/p>\n<p>For our next release, which is planned for the end of March, we\u2019ve been focusing on polishing and improving the editing and Code Insight capabilities. These changes will primarily cover go to definition, find usages, code completion, as well as accuracy and speed of other actions.<\/p>\n<p>We are still working on the Code Insight core, but this RubyMine version already has some new tricks up its sleeve (and more to come!)<\/p>\n<ul>\n<li><a href=\"#run_anything_action\">Run Anything Action<\/a><\/li>\n<li><a href=\"#inline_diagrams_in_markdown\">Inline diagrams in Markdown<\/a><\/li>\n<li><a href=\"#debugger_improvements\">Debugger Improvements<\/a>\n<ul>\n<li><a href=\"#multiprocess_debugging\">Multiprocess debugging<\/a><\/li>\n<li><a href=\"#live_variables_refresh\">Live variables refresh<\/a><\/li>\n<li><a href=\"#native_conditional_breakpoints_support\">Native conditional breakpoints support<\/a><\/li>\n<li><a href=\"#exception_breakpoints\">Exception breakpoints<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#navigation_bar\">Navigation Bar<\/a><\/li>\n<li><a href=\"#ruby_parsing_improvements\">Ruby Parsing improvements<\/a><\/li>\n<li><a href=\"#future_plans\">Future plans<\/a><\/li>\n<\/ul>\n<p style=\"text-align: center;\"><a class=\"jb-download-button\" href=\"https:\/\/www.jetbrains.com\/ruby\/nextversion\" target=\"_blank\" rel=\"noopener\"><i class=\"download-icon\"><\/i>Download RubyMine 2018.1 EAP<\/a><\/p>\n<h2 id=\"run_anything_action\"><strong>Run Anything Action<\/strong><\/h2>\n<p>RubyMine has a great number of helpful tools for running rake tasks, various rails server configurations, and generators. All these actions require different shortcuts and different kinds of configuration.<br \/>\nA couple of months ago, a discussion in our <a href=\"http:\/\/slack.rubymine.org\" target=\"_blank\" rel=\"noopener\">slack channel<\/a> led to a <a href=\"https:\/\/youtrack.jetbrains.com\/issue\/RUBY-20543\" target=\"_blank\" rel=\"noopener\">feature request<\/a> for providing a unified way to run completely different stuff in RubyMine. We already have the universal and easy to use <a href=\"https:\/\/www.jetbrains.com\/help\/ruby\/searching-everywhere.html\" target=\"_blank\" rel=\"noopener\">search everywhere<\/a>, and now we\u2019ve created a similar kind of action for running and debugging stuff (where possible). Meet Run Anything:<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/01\/ruby-run_anything_rake.gif\" alt=\"\" width=\"624\" \/><\/p>\n<p><!--more-->The action combines all our run configuration types and tries to match the input with known actions. For example, typing `rake` will render a list of available rake actions in the suggestion list. Typing `install` will suggest running bundle install and so on. If the command does not match any actions provided by RubyMine, you can still run it right from the popup:<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/01\/ruby-run_anything_take2.gif\" alt=\"\" width=\"624\" \/><\/p>\n<p style=\"text-align: left;\"><strong>IMPORTANT NOTE: <\/strong>due to a bug, on OS X systems RubyMine has to be run from the terminal in order to be able to run several \u201cunknown\u201d commands like rvm, brew, and others.<\/p>\n<p>As you know, RubyMine has a great built-in debugger, so you can seamlessly debug matched configurations right from the same popup. Hold the Shift button when selecting an existing configuration (or creating a new one) to debug the command:<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/01\/ruby-debug_anything.gif\" alt=\"\" width=\"624\" \/><\/p>\n<p>As of EAP1, it is not possible to debug commands unknown to RubyMine. However, we are already polishing this capability, so stay tuned for more juicy cases which are to be delivered next week!<\/p>\n<h2 id=\"inline_diagrams_in_markdown\"><strong>Inline Diagrams in Markdown<\/strong><\/h2>\n<p>It is now possible to render UML diagrams and DOT right in the markdown documents [<a href=\"https:\/\/youtrack.jetbrains.com\/issue\/RUBY-19041\" target=\"_blank\" rel=\"noopener\">RUBY-19041<\/a>].<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/01\/ruby-markdown_diagram.gif\" alt=\"\" width=\"624\" \/><\/p>\n<p>Please make sure you have Graphviz installed to use this feature. <a href=\"http:\/\/plantuml.com\/graphviz-dot\" target=\"_blank\" rel=\"noopener\">This page<\/a> describes the expected configuration on different OSs.<\/p>\n<h2 id=\"debugger_improvements\"><strong>Debugger Improvements<\/strong><\/h2>\n<p>Several important improvements and bugfixes come with this EAP build:<\/p>\n<h3 id=\"multiprocess_debugging\"><strong>Multiprocess debugging<\/strong><\/h3>\n<p>RubyMine now allows for proper debugging of multiprocess applications. By design, our debugger allows you to explore all the application processes, their threads, and variables during stepping. However, due to <a href=\"https:\/\/youtrack.jetbrains.com\/issue\/RUBY-20533\" target=\"_blank\" rel=\"noopener\">this bug<\/a>, RubyMine had only been gaining control over the process where a breakpoint was hit. Now that it is fixed, you have proper control over the whole application.<\/p>\n<h3 id=\"live_variables_refresh\"><strong>Live variables refresh<\/strong><\/h3>\n<p>Now RubyMine updates the variables lists after using an action which changes them, e.g. evaluating expressions or running stuff in the debugger console.<\/p>\n<h3 id=\"native_conditional_breakpoints_support\"><strong>Native conditional breakpoints support<\/strong><\/h3>\n<p>The conditional breakpoints are now implemented right on the interpreter side which means less communicating between the debugged process and IDE, and, hence, an increased running speed.<\/p>\n<h3 id=\"exception_breakpoints\"><strong>Exception breakpoints<\/strong><\/h3>\n<p>For a long time, RubyMine has been capable of setting up <a href=\"https:\/\/www.jetbrains.com\/help\/ruby\/creating-exception-breakpoints.html\" target=\"_blank\" rel=\"noopener\">exception breakpoints<\/a> which suspend execution when a certain kind of Exception is raised. However, this feature has not really been discoverable. Now in the <a href=\"https:\/\/www.jetbrains.com\/help\/ruby\/breakpoints-2.html\" target=\"_blank\" rel=\"noopener\">exceptions list<\/a> dialog you can enable catching every exception raised:<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/01\/ruby-any_exception_correct.gif\" alt=\"\" width=\"624\" \/><\/p>\n<p>To add some specific type of Exceptions to be considered, add a new one with a plus button:<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/01\/ruby-particular_exception.gif\" alt=\"\" width=\"624\" \/><\/p>\n<h2 id=\"navigation_bar\"><strong>Navigation Bar<\/strong><\/h2>\n<p>Another important feature which has been made more visible is <a href=\"https:\/\/www.jetbrains.com\/help\/ruby\/navigation-bar.html\" target=\"_blank\" rel=\"noopener\">Navigation bar<\/a>. Now it is enabled by default:<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/01\/ruby-navbar.gif\" alt=\"\" width=\"624\" \/><\/p>\n<h2 id=\"ruby_parsing_improvements\"><strong>Ruby Parsing Improvements<\/strong><\/h2>\n<p>We have unified parsing routines for arguments in method definitions and block calls. This has improved Code Insight features provided for block variables: for example, now a block passed as a parameter is properly resolved from the receiver block&#8217;s body, and the parameter inspections like &#8220;unused parameter&#8221; apply to them as well:<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/01\/ruby-blocks.gif\" alt=\"\" width=\"624\" \/><\/p>\n<h2 id=\"future_plans\"><strong>Future Plans<\/strong><\/h2>\n<p>Our work is far from finished. If you are interested in our plans, you may skim through our <a href=\"https:\/\/youtrack.jetbrains.com\/issues?q=%23ruby%20%23%7BMeta%20Issue%7D%20fix%20versions:%202018.1\" target=\"_blank\" rel=\"noopener\">roadmap<\/a> in YouTrack. If you feel like sharing your ideas on our new features, feel free to comment on the issues you find interesting, or just ping us in the comments to this post.<\/p>\n<p>Happy hacking,<br \/>\nYour RubyMine Team.<\/p>\n","protected":false},"author":315,"featured_media":0,"comment_status":"open","ping_status":"open","template":"","categories":[826,808,89],"tags":[685,600],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/ruby\/9995"}],"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\/315"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/comments?post=9995"}],"version-history":[{"count":0,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/ruby\/9995\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media?parent=9995"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/categories?post=9995"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/tags?post=9995"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/cross-post-tag?post=9995"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}