Puppet
RubyMine supports the Puppet language syntax and allows you to work with Puppet modules and environments.
The main supported features are:
Support for the Puppet language syntax, including Puppet 3, Puppet 4+, and the EPP template language.
note
Currently, RubyMine doesn't support module creation for Puppet 6 and later.
Syntax highlighting and formatting code according to the Puppet style guide.
Code insight features such as completion, rename refactorings, navigation support, finding usages, and so on.
The following gems are required to work with Puppet modules and environments:
The puppet gem.
(Optional) The librarian-puppet gem is needed to install dependencies specified in the Puppetfile or metadata.json.
tip
Before working with Puppet in RubyMine, make sure that the Puppet plugin is enabled. See Install plugins to learn how to enable or disable plugins.
In the main menu, go to File | New Project.
In the New Project dialog, choose Puppet Module on the left.
Then, specify the project location and select the required Ruby SDK. If the puppet gem is not installed in the selected SDK, RubyMine will suggest installing it.
Finally, specify the Author username, Module name, and click Create. The created project comprises the Puppet module structure.
You can learn how to create Puppet modules from its documentation.
RubyMine automatically recognizes opened Puppet modules or environments (for instance, by availability of metadata.json or environment.conf files) and marks them with corresponding icons in the project tree.

After opening a module or environment, you can install its dependencies.
RubyMine allows you to install the module/environment dependencies specified in the following files:
If the module contains a .fixtures.yml file, RubyMine will install dependencies using rake tasks into the spec
/fixtures directory. In this case, the IDE does not check next sources./modules If there is a Puppetfile, RubyMine installs dependencies using librarian-puppet into the .dependencies directory (or to modules for environments).
In case of a project contains metadata.json, RubyMine installs dependencies using librarian-puppet in the same way as from the Puppetfile.
To install the module/environment dependencies, right-click the module in the Project tool window and select Install dependencies for module <name> or Install dependencies for environment <name>.

If the project’s SDK does not have the librarian-puppet gem installed, RubyMine will suggest installing it.

The Settings dialog CtrlAlt0S allows you to configure the following settings related to Puppet:
The Language and Frameworks | Puppet page allows you to configure the Puppet language version and the path to librarian-puppet.
Editor | Code Style | Puppet contains code style settings for the Puppet language.
Editor | Inspections allows you to configure inspection settings.
On the Editor | Live templates page, you can create custom live templates for the Puppet language in the same way as for other languages.
Thanks for your feedback!