RubyMine 2018.3, the final major update for RubyMine this year, is now available for your review! Check out the new features below and give it a try. Don't forget to share your feedback!
The IDE now understands Rails scopes much better. For example, when you add an association object to your scope, RubyMine will suggest available finder methods. You will also discover code autocompletion and navigation for chained scopes.
RubyMine adds full support for Struct. Now you can autocomplete, navigate, and refactor objects of Struct classes the same way you do with any other Ruby classes and their instances.
A new Nil dereference inspection will check your code for possible nil errors in the current context, like when you call a method on a variable that might be nil.
Use the new I18n dialog to create translations for all your dictionaries at once. Just like before, put the caret on a string, press Alt+Enter, and choose to i18nize it. Then, once generated, hold Cmd/Ctrl and click the created key to navigate to any existing translation.
You can also create translations for namespaced keys and lazy lookups with no extra effort, as the new version of RubyMine lets you create translations for such keys right from the editor.
RubyMine can show you actual translations instead of I18n keys – just press Cmd./Ctrl. on any key in a controller or a view file. You can even choose which dictionary should be used as a translation preview.
Read i18n features in RubyMine for other internationalization improvements made in v2018.3.
The new Extract Parameter dialog (Refactor | Refactor this | Extract Parameter) allows you not only to extract an argument, but also to provide a default value for it, make it optional, or pass it as a block.
We've improved the Inline refactoring to let you get rid of of excessive methods and variables more safely. In particular, inlining methods with arguments and variables with string interpolation is now much more robust.
Finally, we've added a very handy ability to extract parts of strings to variables and constants.
Read more about refactoring options in RubyMine Refactorings: Overview & Improvements.
New intention actions will help you make your code more readable. For example, you can now use the De Morgan's law intention to simplify ugly negations and extract block calls to methods. Just put your caret at a code smell and press Alt+Enter to apply an appropriate quick-fix.
Read about other new intentions in Intention Actions in RubyMine.
RubyMine 2018.3 also puts a handy gutter at each test method. These gutters are visual anchors that show you every particular test that can be run in a file. They also offer a faster way to run tests than the context menu does.
Read Running tests in RubyMine to learn about other handy testing features.
Now you can view GitHub pull requests right inside RubyMine. Go to VCS | Git | View Pull Requests to view the pull request’s description, labels, assignees, and the actual changes.
In addition, all the familiar features in the Git integration, such as update project, commit changes, view diff, and conflict resolution, now work with Git submodules.
The new Darcula theme gets rid of noisy colors, becomes easier on the eye, and better aligns with similar schemes designed for other programming languages in JetBrains IDEs.
The previous Darcula is still available, too. If you prefer to stay with it, go to Preferences / Settings | Editor | Color Scheme | Ruby, click on the gear icon, and choose Transform current scheme to Darcula 2018.2.
You will also discover the new, more convenient Search Everywhere dialog (Shift+Shift). It makes it easier to use all the other navigation dialogs – Go to Class, File, Symbol, and Action. Simply press Tab to switch between the search types.
The updated Plugins section (Preferences / Settings | Plugins) makes it easier to manage, install, uninstall, and update plugins. For example, now you can search for plugins by tags, and sort the results by downloads, name, rating, featured, or updates.
As you work with Angular, enjoy improved code autocompletion and navigation for variables, pipes, and async pipes and the template reference variables.
In React apps, code completion now suggests all component lifecycle methods. The Unresolved variable inspection warns you about the possibly undefined components.
The new Extract ruleset action (Alt-Enter) helps you quickly extract CSS declarations from one ruleset to a new, more specific one.
The code style for CSS and its preprocessors now has a configuration for the use of blank lines. Moreover, you can now sort the CSS properties inside blocks – alphabetically or in any custom order.
The new Introduce reference action helps you create references for inline links. The IDE will find all the link duplicates in the file suggest replacing them with the newly created reference.
In addition, you can now strikethrough text and toggle header size. Find these new actions in the toolbar.
The upgraded Ruby type inference makes the IDE significantly better at understanding types of elements in blocks, arrays, and hashes, which greatly improves the code autocompletion and navigation on the whole.
RubyMine now correctly recognizes and navigates (Ctrl/Cmd + Click) to definitions and usages of models that use polymorphic associations.
Autocompletion for abstract model names also becomes available if a polymorphic association is defined in the project.
The new release features chruby and asdf support. It makes all the version managers (RVM, rbenv, asdf, and chruby) available in WSL, Docker, as well as in SSH and other remote connections.
You will also discover that rbenv-vars and other plugins work correctly in the new version.
Now after you’ve run all tests in a file or directory, RubyMine provides an option to rerun the failed tests only, instead of rerunning all the tests. This frees you from manually picking up and investigating every failed test.
The new feature also works with presets like
rake test and
RubyMine now allows you to reformat YAML code. Select Code | Reformat Code, or press ⌥⌘L / Ctrl+Alt+L.
You can also choose how to fold and indent sequences, align values, and apply other code style options in Preferences / Settings | Editor | Code Style | YAML.
You can now autocomplete and find usages of aliases when an anchor is defined, as well as navigate to the anchor and back.
Inline renaming for aliases and anchors is also available now. The IDE will warn you if you try to provide a name that conflicts with another existing anchor. It will not let you rename anchors using characters that aren’t allowed by the standard.
A number of basic YAML code inspections were added as well.
With this release you can autocomplete YAML data structures that have a JSON Schema file. The IDE automatically traces schemas from schemastore, but also provides a way to manually add and configure JSON schema files in the settings.
Finally, you can now quickly copy & paste a key path to a value in
files instead of typing out the full path.
Starting with this release you can attach the debugger to remotely running processes. Set up an SSH connection (Preferences/Settings | Ruby SDK and Gems | New Remote | SSH Credentials), and troubleshoot the app without restarting or any additional configurations.
Also, the IDE now supports all new features from TypeScript 2.9 and the upcoming TypeScript 3.0 releases.
You can now refactor React components with Refactor | Extract Component, and convert React class components into functional components and back.
In addition, code completion is now available for events and event modifiers in Vue templates.
Now it’s easier to find files with merge conflicts as the IDE groups such files under a new Merge Conflicts node. Click the Resolve action link to open the Files Merged with Conflicts dialog.
There's a handy new Browse Repository at Revision action for exploring the state of the repository based on any given revision. Open the context menu in the Log or from the file history to access the required repository state in the Project Tool Window.
It is now possible to skip the Push dialog while using the Commit and Push action, or only show it when pushing to protected branches. Customize this behavior in Preferences / Settings | Version Control | Git.
You can configure as many GitHub accounts as you need (Preferences | Version Control | GitHub), and set the default GitHub account for each of your projects.
Run, build, and debug your app, commit changes, and update the project right from the Touch Bar.
All Touch Bar contexts can be customized in Preferences / Settings | Appearance & Behavior | Menus and Toolbars.
Make RubyMine title bars darker on macOS. Go to Preferences | Appearance & Behavior | Appearance and select Use dark window headers.
RubyMine 2018.2 also features a number of brand new icons, designed to provide a clearer and more consistent look & feel.
Parsing routines are now unified for arguments in method definitions and block calls. This improved Code Insight for block variables: for instance, a block passed as a parameter is now properly resolved from the receiver block’s body.
RubyMine 2018.1 introduces a new Run anything action (double-press Ctrl) — a unified and instant way to run any command in RubyMine, such as rake tasks, rails server, generators, configurations, or even terminal commands. Not only will the new action run a command or script, but it will also save and suggest it later in the Recent commands or Temporary Configurations dropdown.
Moreover, you can fire up the debugger from within the same action. Just press Ctrl twice to call Run anything, and then hold Shift to run a debug configuration.
The newly added postfix code completion lets you transform an existing expression without the need to move your caret about in the code to reverse, alter, or supplement a statement.
As you’d expect, you can locate the whole list of postfix templates with examples in the settings (Preferences / Settings | Editor | General | Postfix Completion), and turn off the ones you don’t use.
Markdown preview now renders inline diagrams! Insert
snippet used by the IDE) before your diagram code in an
.md file and RubyMine
properly identify the syntax and display the diagram in the preview pane.
RubyMine’s debugger now provides a more user-friendly way to set up exception breakpoints that will suspend execution when a certain type of exception is raised. Find and enable this option in Run | View Breakpoints.ыегаа
If you don’t want the debugger to stop at every exception raised, hit a plus button and choose which types of exceptions should be triggered.
The new version supports the latest TypeScript features, improves the Implement Members
adds a new Surround with type guard quick-fix for unresolved properties. The IDE also
TypeScript configuration file names other than
Create a new Vue component from an existing one, without copy and paste – select the part of the template and use Refactor | Extract or press Alt-Enter and select Extract Vue Component.
The IDE will create a new single-file component, add an import for it, and pass all the data and methods to it with props.
Cmd/Ctrl-click on the class name in HTML now suggests navigating not only to its declaration in the compiled CSS file linked in this HTML file, but also to the Sass, SCSS, or Less source.
In HTML, code completion suggests classes and ids from all of the style sheets if there are no matching symbols in the linked CSS file.
The new release features the highly-desired partial git commits. This new option allows you to include code chunks into a commit using the check-boxes in the Diff pane of the Commit Changes dialog.
Moreover, you can associate the code chunks with a changelist, and track them separately.
We've also added three new actions to make it easier to use the rebasing procedure from the IDE: Abort Rebase, Continue Rebase, and Skip Commit. Call the new actions from the handy Git Branches pop-up.