RubyMine 2023.2 Help

YAML

RubyMine enables you to work with YAML files (.yml, .yaml) and supports the following capabilities:

Let’s explore some YAML-specific features available in the editor.

Anchors and aliases

RubyMine supports working with anchors and aliases. If you specify a new anchor in the YAML file, the editor will show a warning that this anchor is not used by any node.

YAML: unused anchor warning

The editor enables you now to complete aliases for this anchor.

YAML: complete alias

You can navigate from aliases to the anchor using the Control+B shortcut.

YAML: navigate to anchor

For the anchor, you can do the same and find all corresponding aliases.

YAML: navigate to aliases

RubyMine also supports the rename refactoring for anchors and aliases.

renaming the YAML anchor

Note that the Structure view Alt+7 allows you to manage whether to display nodes for aliases. Use the Show aliases sub-trees button the Expand button to do this.

YAML structure view

Remote JSON schemas

RubyMine supports code completion and inspections for YAML files using the specified JSON schema. For instance, if you use the .travis.yml file for Travis CI configuration, RubyMine will suggest completing its options using the JSON schema loaded from schemastore.org:

YAML: complete JSON

You can manage loading JSON schemas using the Languages & Frameworks | Schemas and DTDs | Remote JSON Schemas page of the Settings dialog (Control+Alt+S).

If necessary, you can specify a path to the required schema file in the Languages & Frameworks | Schemas and DTDs | JSON Schema Mappings page.

Copying keys

RubyMine provides the ability to copy a full path to a specific option specified in the YAML file. For instance, this can be useful when copying key paths from localization files. You can do this in two ways:

  • Place a caret to the required key and press Control+Alt+Shift+C.

  • Hover over the required key, right-click it and select Copy Reference.

YAML: copy references

For the localization key on the image above, the en.likes.create.error value will be copied.

Last modified: 17 March 2022