{"id":10008,"date":"2018-02-16T14:03:26","date_gmt":"2018-02-16T14:03:26","guid":{"rendered":"https:\/\/blog.jetbrains.com\/ruby\/?p=8086"},"modified":"2018-03-25T13:35:13","modified_gmt":"2018-03-25T13:35:13","slug":"javascript-in-the-updated-rubymine-2018-1-eap","status":"publish","type":"ruby","link":"https:\/\/blog.jetbrains.com\/fr\/ruby\/2018\/02\/javascript-in-the-updated-rubymine-2018-1-eap","title":{"rendered":"Improved CSS, Extract Vue Component, and More on JavaScript in the Updated RubyMine 2018.1 EAP"},"content":{"rendered":"<p>Hey all,<\/p>\n<p><strong><a href=\"https:\/\/www.jetbrains.com\/ruby\/nextversion\/\" target=\"_blank\" rel=\"noopener\">RubyMine 2018.1 EAP3 (181.3741.30)<\/a><\/strong> is now available. With this build we\u2019d like to tell you about the recent JavaScript improvements that the RubyMine 2018.1 Early Access Program inherits from <a href=\"https:\/\/blog.jetbrains.com\/webstorm\/\" target=\"_blank\">WebStorm<\/a> (our other IDE for JavaScript).<\/p>\n<ul>\n<li><a href=\"#improved_css\">Improved CSS<\/a><\/li>\n<li><a href=\"#better_extract_method_refactoring\">Better Extract method refactroing<\/a><\/li>\n<li><a href=\"#improved_dynamic_imports\">Improved support for dynamic imports with import()<\/a><\/li>\n<li><a href=\"#better_typescript_support\">Better TypeScript support<\/a><\/li>\n<li><a href=\"#extract_vue_components\">Extract Vue components<\/a><\/li>\n<\/ul>\n<h2 id=\"improved_css\">Improved CSS<\/h2>\n<p style=\"text-align: left;\">You will find the updated list of SVG properties and values, as well as code completion and validation for their values that were not available before:<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/02\/ruby-svg-properties-and-values.png\" alt=\"\" width=\"624\" \/><\/p>\n<p style=\"text-align: center;\"><a class=\"jb-download-button\" href=\"https:\/\/www.jetbrains.com\/ruby\/nextversion\" target=\"_blank\" rel=\"noopener\">Download RubyMine 2018.1 EAP<\/a><\/p>\n<p><!--more--><\/p>\n<p style=\"text-align: left;\">Previously, when\u00a0you cmd-clicked on a class name in the HTML file that had a link to a compiled CSS file, you\u00a0were navigated to\u00a0a class in the linked CSS file. Now the IDE suggests navigating both to the CSS file and the source file, if there are source maps, or if these files have the same names and are located in the same folder:<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/02\/ruby-navigate-to-scss-and-css.png\" alt=\"\" width=\"624\" \/><\/p>\n<p>Find more details, see\u00a0<a href=\"https:\/\/blog.jetbrains.com\/webstorm\/2018\/01\/webstorm-2018-1-eap\/\" target=\"_blank\">this post<\/a> on the WebStorm blog.<\/p>\n<h2 id=\"better_extract_method_refactoring\">Better Extract method refactoring<\/h2>\n<p><em>Extract method<\/em> refactoring now works without any additional dialogs. It no longer takes your attention away from the code:<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/02\/ruby-inplace-extract.gif\" alt=\"\" width=\"624\" \/><\/p>\n<h2 id=\"improved_dynamic_imports\">Improved support for dynamic imports with import()<\/h2>\n<p>Code completion is now available for the properties of\u00a0an imported module. You can also jump back to its definition with <em>Cmd+click<\/em>:<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/02\/ruby-dynamic-import-completion.png\" alt=\"\" width=\"624\" \/><\/p>\n<h2 id=\"better_typescript_support\">Better TypeScript support<\/h2>\n<p style=\"text-align: left;\">TypeScript support features new quick-fixes called <em>\u201cEnclose in type guard\u201d<\/em> and <em>\u201cPrefix with type guard\u201d.<\/em>\u00a0They are shown when a used method is not available for one of the types in a union type. To see the suggestions,\u00a0press\u00a0<em>Alt+Enter<\/em> when the cursor is on the highlighted code:<\/p>\n<p style=\"text-align: left;\"><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/02\/ruby-enclose-in-type-guard.png\" alt=\"\" width=\"624\" \/><\/p>\n<p>Read <a href=\"https:\/\/blog.jetbrains.com\/webstorm\/2018\/01\/webstorm-2018-1-eap-181-3007\/\" target=\"_blank\">this blog post<\/a> for more about the improved dynamic imports and TypeScript support.<\/p>\n<h2 id=\"extract_vue_components\">Extract Vue components<\/h2>\n<p>With this new intention, you can now easily extract a new Vue component from an existing one. No more copying and pasting!<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/02\/ruby-export-vue-component.gif\" alt=\"\" width=\"624\" \/><\/p>\n<p>Find more details <a href=\"https:\/\/blog.jetbrains.com\/webstorm\/2018\/02\/webstorm-2018-1-eap-181-3263\/\" target=\"_blank\">in this blog post<\/a>.<\/p>\n<p>Among other improvements, the <em>Run Anything <\/em>that we announced earlier\u00a0can\u00a0now remove recent commands. Simply press\u00a0<em>Shift+Backspace<\/em>:<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/02\/ruby-remove_recent_commands.png\" alt=\"\" width=\"624\" \/><\/p>\n<p>We&#8217;re still polishing the new <em>Run Anything <\/em>action, and will provide more updates on\u00a0it in future posts. If you happen to face any issues with <em>Run Anything<\/em>, please report them to the <a href=\"https:\/\/youtrack.jetbrains.com\/issue\/RUBY-20543\" target=\"_blank\" rel=\"noopener\">related ticket<\/a>, or submit a new one.<\/p>\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<p>See the <a href=\"https:\/\/confluence.jetbrains.com\/display\/RUBYDEV\/RubyMine+2018.1\" target=\"_blank\" rel=\"noopener\">release notes<\/a> for the detailed info, and please <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/ruby\" target=\"_blank\" rel=\"noopener\">report any issues<\/a> you encounter.<\/p>\n<p>Cheers,<br \/>\nYour RubyMine team<\/p>\n","protected":false},"author":574,"featured_media":0,"comment_status":"open","ping_status":"open","template":"","categories":[826,808,89],"tags":[685,197],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/ruby\/10008"}],"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\/574"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/comments?post=10008"}],"version-history":[{"count":0,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/ruby\/10008\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media?parent=10008"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/categories?post=10008"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/tags?post=10008"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/cross-post-tag?post=10008"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}