📜 ⬆️ ⬇️

RubyMine 2017.3. Faster IDE, WSL, Embedded Puppet, and more

Hello, Habr! As you can see from the latest posts on the JetBrains blog, many of the company's products are in final release this year.

In this series, we will discuss the new version of the IDE for Ruby and Rails, RubyMine 2017.3 .



Table of contents


IDE has become smarter
WSL support
Improved refactoring
RuboCop is now even cooler
More code style options
EPP support
Debugger timeout
VCS
REST client
Javascript enhancements
Database
Important stuff
')
And now more:

IDE has become smarter


Speed


We managed to make the IDE faster, which is noticeable when working with large applications. For example, now checking all code for errors ( Code | Inspect Code ) takes much less time compared to RubyMine 2017.1 and 2017.2:



Read more in the blog (eng.).

Navigation to ad declarations


Users love RubyMine for the ability to quickly move to the definitions of methods and variables in the project and the gems used, and we are trying to improve this functionality. So, navigation to rail callbacks and responders in version 2017.3 has become much more reliable:



We’re seriously determined to improve basic Ruby and Rails support in later versions.

IDE recognizes caused parameters


And not only recognizes, but much better than before. RubyMine will tell you if the number of arguments passed does not match their original number in the declared method:



Details

Application Support with Nested Projects


IDE has learned to recognize nested projects, correctly install dependencies and switch to them if necessary:



If your application is a mono-repository, try the new version and let us know if you encounter problems.

WSL support


If you have Windows, then do not pass by this feature. RubyMine learned to work with Windows Bash, which allows you to avoid painful Ruby settings on the “Windows”. Recipe:




Improved refactoring


RubyMine has a set of refactorings, allowing you to conveniently bring code in order. In particular, the Extract Method option helps to quickly put the code in a logical way in a separate method. Now this option can also immediately take out the code in the private or protected section. If the section is not yet in the file, then RubyMine will create it yourself:



RuboCop is now even cooler


In the previous release, we taught RubyMine how to apply RuboCop autocorrection for the entire file directly from the editor. Starting from version 2017.3, you can not only detect and correct all errors, but also fix only a specific cop department or offense class ( blog ). No plugins, everything works right out of the box!



At the same time, RubyMine takes into account the presence of .rubocop.yml and displays violations according to the settings:



By the way, we are also asked if the IDE can display custom user inspections. Able, and some users have already seen this:


More code style options


In the settings ( Preferences / Settings | Editor | Code style | Ruby ) you can now set indents for the private and protected sections. RubyMine will remember the selected settings and uses them when formatting the code in the editor ( Code | Reformat code ):



Also, now it is possible to choose which operators should be separated by spaces, and which ones should remain intact by the formatter:



A source

EPP support


Some of our users manage configurations and use Puppet. For them, implemented support for Embedded Puppet . In particular, added autocomplete and navigation to EPP templates and manifests:





And the IDE quickly finds all uses of templates in a project, and is able to conveniently rename variables and parameters in the entire application:





Debugger timeout


We added the Trace to_s evaluation option ( Preferences / Settings | Build, Execution, Deployment | Debugger ), when selected, the debugger will start throwing out timeout messages in case of overhead:



Timeout can be configured by time, but you can disable it altogether:



Read more about the feature here .

VCS


Interactive rebase of the latest changes in Git can now be launched directly from the log by clicking on the base commit:



When switching between branches, the IDE saves the state of the workspace: the location of the editor tabs, tool windows, etc.:



The Show Changes to Parents mode has been added to the guitar log. In this mode, the right panel in the log shows not only changes in files with conflicts, but also separately non-conflict changes for each branch participating in the merge:



REST client


From now on, you can work with REST requests using a new tool based on the editor. It is enough to create a file in the project with the .http permission and open it in the editor:



Detailed analysis of work with the new REST-client .

Javascript enhancements



More details about the improvements can be found on the page What's new in WebStorm , as well as in the video:



Database



More information about the improvements in database tools can be found in the DataGrip blog (category 2017.3).

Important stuff


Other improvements include support for Ruby 2.5, Docker Compose v3, Gems.rb, Cucumber Expressions, and the ability to rename files from tabs.

Download the new version on the What's new page. If you are trying RubyMine for the first time, then the first month of use is at our expense (your credit card details will not be required).

Do not forget to report problems to the tracker , subscribe to our Twitter (in it you will find product announcements and useful tips & tricks), and also join our Slack !

PS Taking this opportunity, we will boast that a Ruby-Metap has recently been in JetBrains:


Video recordings of reports should appear already this week.

We are grateful to the organizers and speakers, and we also urge all Ruby and Rails developers who have not done this to join the Saint P Ruby User Group !

Good luck!

Source: https://habr.com/ru/post/343936/


All Articles