{"id":21764,"date":"2020-06-05T09:53:21","date_gmt":"2020-06-05T09:53:21","guid":{"rendered":"https:\/\/blog.jetbrains.com\/phpstorm\/?p=15736"},"modified":"2020-06-05T09:53:21","modified_gmt":"2020-06-05T09:53:21","slug":"phpstorm-2020-2-eap-2","status":"publish","type":"phpstorm","link":"https:\/\/blog.jetbrains.com\/phpstorm\/2020\/06\/phpstorm-2020-2-eap-2\/","title":{"rendered":"PhpStorm 2020.2 EAP #2"},"content":{"rendered":"<p>Last week, we launched the Early Access Program for PhpStorm 2020.2. For the next two months, we are going to be releasing updates every week, and today we\u2019ve got the second build of the 2020.2 EAP for you.<\/p>\n<p>In this blog post, you can read about improvements for Composer, Quality Tools, and VCS.<\/p>\n<ul>\n<li><a href=\"https:\/\/blog.jetbrains.com\/phpstorm\/2020\/06\/phpstorm-2020-2-eap-2\/#composer\">Composer<\/a><\/li>\n<li><a href=\"https:\/\/blog.jetbrains.com\/phpstorm\/2020\/06\/phpstorm-2020-2-eap-2\/#quality_tools\">Quality Tools<\/a><\/li>\n<li><a href=\"https:\/\/blog.jetbrains.com\/phpstorm\/2020\/06\/phpstorm-2020-2-eap-2\/#vcs\">VCS<\/a><\/li>\n<\/ul>\n<p align=\"center\"><a class=\"jb-download-button\" href=\"https:\/\/www.jetbrains.com\/phpstorm\/nextversion\/\" target=\"_blank\" rel=\"noopener\"><i class=\"download-icon\"><\/i>Download PhpStorm 2020.2 EAP<\/a><\/p>\n<p><!--more--><\/p>\n<h2 id=\"composer\">Composer<\/h2>\n<p>PhpStorm 2020.1 introduced support for <a href=\"https:\/\/blog.jetbrains.com\/phpstorm\/2020\/04\/phpstorm-2020-1-release\/#out_of_the_box_composer_json_support\">managing dependencies in the editor<\/a> right inside the composer.json file. Based on your feedback, there are some improvements in the upcoming 2020.2.<\/p>\n<p><strong>Support for custom Satis\/Packagist packages<\/strong><br \/>\nIf you have custom sources specified in the <code>\u201crepositories\u201d<\/code> section, you will get completion for custom packages.<\/p>\n<p>There will be a gutter icon showing the current state of the caching of custom repositories. <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/06\/phpstorm-composer_custom_repos.png\" data-gif-src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/06\/phpstorm-composer_custom_repos.gif\" class=\"alignleft size-medium wp-image-15739\" alt=\"composer_custom_repos\" width=\"598\" \/><\/p>\n<p><strong>Completion for multiple versions<\/strong><br \/>\nWhen a package has multiple versions separated with a comma or pipes (<code>||<\/code>), PhpStorm will now handle it properly and provide completion with all available versions for this package.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/06\/phpstorm-composer_range-versions.\u0441mproj.png\" data-gif-src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/06\/phpstorm-composer_range-versions.\u0441mproj.gif\" class=\"alignleft size-medium wp-image-15741\" alt=\"composer_range-versions.\u0441mproj\" width=\"598\" \/><\/p>\n<p><strong>Specify versions constraints with ~, ^, or &gt;=<\/strong><br \/>\nIt\u2019s quite common to use range constraints in composer.json. Earlier, completion was lost after typing <code>~<\/code>, <code>^<\/code>, or <code>&gt;=<\/code>, but now it works as expected.<\/p>\n<p><strong>Link to homepage\/sources<\/strong><br \/>\nYou can quickly jump to package websites right from the composer.json file.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/06\/phpstorm-composer_pages_links.png\" data-gif-src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/06\/phpstorm-composer_pages_links.gif\" class=\"alignleft size-medium wp-image-15743\" alt=\"composer_pages_links\" width=\"598\" \/><\/p>\n<p><strong>Open settings of tools added as dependencies<\/strong><br \/>\nPhpStorm provides many integrations with third-party tools. Now, if a supported tool is declared in composer.json, there will be a wrench icon in the gutter near it. You can click it to go straight to the corresponding section of the preferences.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/06\/phpstorm-composer_open_settings.png\" class=\"alignnone wp-image-15744\" alt=\"composer_open_settings\" width=\"598\" \/><\/p>\n<h2 id=\"quality_tools\">Quality Tools<\/h2>\n<p>PhpStorm 2020.2 will come with several improvements for code quality tools.<\/p>\n<p><strong>Docker Compose Support<\/strong><br \/>\nIt was possible to use PHP_CodeSniffer, PHP CS Fixer, and PHP Mess Detector via Docker, but not Docker Compose. This has been resolved.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/06\/phpstorm-quality_tools_docker-compose.png\" data-gif-src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/06\/phpstorm-quality_tools_docker-compose.gif\" class=\"alignleft size-medium wp-image-15746\" alt=\"quality_tools_docker-compose\" width=\"598\" \/><\/p>\n<p><strong>Exclude Patterns for PHP_CodeSniffer<\/strong><br \/>\nIf your custom ruleset.xml has an &quot;exclude-pattern&quot; section, PhpStorm will now take it into account and not analyze files under the specified path.<\/p>\n<p><strong>Reformat quick-fix with remote interpreter<\/strong><br \/>\nIt will be possible to run PHP CS Fixer and PHPCBF reformatting with a remote interpreter.<\/p>\n<h2 id=\"vcs\">VCS<\/h2>\n<h3 id=\"squashing_local_commits_from_the_log\">Squashing local commits from the log<\/h3>\n<p>If you have a number of redundant commits, say some work-in-progress ones, you can now combine them into a single one to clean up the history before pushing.<\/p>\n<p>In the<em> Log<\/em> tab of the <em>Git<\/em> tool window, select several commits and choose <em>Squash Commits\u2026<\/em> from the context menu.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/06\/phpstorm-vcs_squash.png\" data-gif-src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/06\/phpstorm-vcs_squash.gif\" class=\"alignleft size-medium wp-image-15748\" alt=\"vcs_squash\" width=\"808\" \/><\/p>\n<h3 id=\"better_presentation_of_results_when_comparing_branches\">Better presentation of results when comparing branches<\/h3>\n<p>Sometimes you want to compare two branches to see which commits do not belong to one another.<\/p>\n<p>With PhpStorm 2020.2, the corresponding actions will show the logs in the editor instead of the <em>Git<\/em> tool window. This will ensure that there is enough space to display all the information.<\/p>\n<p>Choose the <em>Compare with Current<\/em> action from the <em>Git Branches<\/em> popup menu (<em>VCS | Branches<\/em>).<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/06\/phpstorm-vcs_compare_branches.png\" class=\"alignnone wp-image-15749\" alt=\"vcs_compare_branches\" width=\"808\" \/><\/p>\n<hr>\n<p>The full list of changes, including bug-fixes and improvements, is available in the <a href=\"https:\/\/confluence.jetbrains.com\/display\/PhpStorm\/PhpStorm+202.5103.20+Release+Notes\" target=\"_blank\" rel=\"noopener\"><strong>release notes<\/strong><\/a>.<\/p>\n<ul>\n<li><strong>Important!<\/strong> PhpStorm EAP builds are not fully tested and may be unstable.<\/li>\n<li>You can install an EAP build side by side with a stable PhpStorm version to try out the latest features.<\/li>\n<li>EAP builds are <em>free<\/em> to use but expire 30 days after the build date.<\/li>\n<\/ul>\n<p>Please report any problems you find to our <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/WI\" target=\"_blank\" rel=\"noopener\">issue tracker<\/a>, or by commenting on this post. Your feedback is much appreciated, and the most active EAPers will get special <a href=\"https:\/\/twitter.com\/Mark_Baker\/status\/1221049276362522624\" target=\"_blank\" rel=\"noopener\">limited-edition gifts<\/a> from us!<\/p>\n<p><em>Your JetBrains PhpStorm team<\/em><br \/>\n<em>The Drive to Develop<\/em><\/p>\n","protected":false},"author":869,"featured_media":0,"comment_status":"open","ping_status":"open","template":"","categories":[826],"tags":[192,2583,285,2615,284],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/phpstorm\/21764"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/phpstorm"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/types\/phpstorm"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/users\/869"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/comments?post=21764"}],"version-history":[{"count":0,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/phpstorm\/21764\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/media?parent=21764"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/categories?post=21764"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/tags?post=21764"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/cross-post-tag?post=21764"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}