Early Access Program Features

RubyMine 2016.3 EAP: Better Puppet Support

Hello everyone,

Please welcome the next RubyMine 2016.3 EAP build 163.7342.19.

For previous posts covering the major new features of the upcoming release, see: New Gem Management UIFaster Remote Gem Downloading.

Better Puppet Support

If you’re staying with the latest 2016.3 EAP builds, you may have noticed a lot of issues on Puppet support being closed. Back in October 2014 we implemented many Puppet support improvements, and with the new RubyMine 2016.3 we’ve decided to add more intelligence into Puppet code insight and resolving as we felt there was room for improvement. Today we’re ready to share all the new features with you.

Puppet 4

First of all we’ve changed the default language level to Puppet 4. You can always adjust it in Settings | Languages & Frameworks | Puppet:puppet4_settings

Smarter code completion

We’ve implemented much smarter code completion. For all the main syntax elements, such as case, class, define, function, if, node, and unless, RubyMine is aware of the code element structure:puppet_code_completion

Data type code completion is now available inside lists of parameters for classes, functions and resource types:puppet_type_completion_1puppet_type_completion_2

Code completion now works correctly and for resources defined with an array of strings in the title:puppet_file_completion

The list of built-in variables and facts is now up-to-date:puppet_list_facts

Puppet functions

RubyMine now supports defining Puppet functions. Once defined, functions are also available in code completion:puppet_functions

More accurate code navigation

While highlighting code elements, RubyMine is now aware of local and global scopes:puppet_variables_1puppet_variables_2

Go to Declaration and Find Usages actions now work better for facts, functions, resource types and parameters:puppet_go_to_declarationpuppet_find_usages

In-place Rename refactoring

Rename refactoring is now aware of local and global scopes as well. Also, now it works without any additional dialogs, in-place:puppet_rename

Live templates

With RubyMine 2016.3 you can create your own custom live templates for Puppet language in the same way as for other languages:puppet_live_templates

You’re welcome to give this build a try by downloading it, and share your feedback with us here in the comments.

The full list of fixed issues can be found in the release notes. Please note that EAP builds are pre-beta software and may cause issues, which we ask you to report to our issue tracker.

Your RubyMine Team

image description