IntelliJ IDEA 2017.3 Help

Blade

This feature is only supported in the Ultimate edition.

The following is only valid when PHP Plugin is installed and enabled!

In this section:

Overview

IntelliJ IDEA provides full support of the Laravel Blade template engine up to version 5.1. This support involves:

  • Highlighting of Blade syntax in template files.
  • Code completion for all Blade directives, both predefined and custom, as well as for braces.
  • In @for and @foreach directives, variable introduction is offered with autocompletion inside the code constructs.
  • Expanding and folding sections defined through the @section directive. A block of code between a @section directive and a closing directive (for example, @stop) can be expanded or folded by clicking foldingPlus or foldingMinus in the gutter area.
  • Dedicated Blade-specific code inspections, for example an inspection to check that a section opened with @section directive is closed with one of the corresponding directives.
  • Blade-aware navigation with Ctrl+B includes links to templates in @extends and @include directives.
  • Finding usages (Alt+F7) can be invoked on a file name or a symbol in the code to show all the usages of a template across your codebase. Currently this functionality is available only inside other templates, but not from views.
  • Customizing predefined Blade directives and defining custom directives for Blade templates.

Preparing to use Blade templates

Before you start, make sure the PHP and Blade plugins are installed and enabled. The plugins are not bundled with IntelliJ IDEA, but they can be installed from the JetBrains plugin repository as described in Installing, Updating and Uninstalling Repository Plugins and Enabling and Disabling Plugins. Once enabled, the plugins are available at the IDE level, that is, you can use them in all your IntelliJ IDEA projects.

Adding, editing, and removing Blade directives

In IntelliJ IDEA, Blade directives are managed in the Directives tab of the Blade Page. The tab lists all the currently available Blade directives, for those that have parameters, the prefixes and suffixes are also shown. When you start, the list contains only predefined directives. You can edit these directives as well as create custom ones.

  1. Open the Settings / Preferences Dialog by pressing Ctrl+Alt+S or by choosing File | Settings for Windows and Linux or IntelliJ IDEA | Preferences for macOS. Expand the Languages & Frameworks node, and then click Blade under PHP. On the Blade page that opens, switch to the Directives tab. The tab shows a list of all currently available directives.
  2. Do one of the following:
    • To define a new directive, click the Add directive button new and then specify the directive's name in the Name text box. If the new directives requires a prefix and a suffix, select the Has parameter checkbox and type the prefix and suffix to use in the Prefix and Suffix text boxes respectively. IntelliJ IDEA will automatically enclose the prefix and suffix in opening and closing brackets and quotes and add a colon separator : so the parameters will look as follows: ("<prefix>:<suffix>").
    • To edit an existing directive, select it in the list and change the values in the text boxes below. To restore the original definition, click the Reset to defaults button icon resetToDefault.
    • To remove a directive from the list, select it and click the Remove directive button delete.

Configuring Blade delimiters

IntelliJ IDEA recognizes Blade templates and provides error highlighting and code completion for them based on the delimiters you specify. These delimiters are managed in the Text Tags tab of the Blade Page.

The fields in the tab show the opening and closing characters for raw tags, content tags, and escaped tags.

The fields are filled in with the default values in compliance with Blade Templates 5.1. If you are using an earlier version, you can specify the relevant custom delimiters and IntelliJ IDEA will provide coding assistance according to the new rules.

Last modified: 6 March 2018

See Also

Reference: