PhpStorm 2016.2 Help

Tutorial: Using TextMate Bundles

On this page:

What this tutorial is about

Projects can contain file types unknown to PhpStorm. While PhpStorm comes with the built-in support for many programming and scripting languages, you might want to have syntax highlighting for the project-specific languages. For example, a project can contain a shell script, or Perl; a configuration file can exist in a project for the infrastructure automation purposes. If you want to have syntax highlighting for these cases, use the powerful PhpStorm's integration with the text editor TextMate.

This tutorial aims to walk you step by step through configuring PhpStorm to use the TextMate Bundles, and editing files with the registered extensions.

Learning TextMate is out of scope of this tutorial. For information about TextMate, refer to the product documentation.

Prerequisites

Make sure that:

  • You have already downloaded bundles you want to use. You can, for example, find the bundles you want to install on GitHub or Subversion.
  • You are working with PhpStorm 2016.1 (where TextMate Bundles has been supported) or higher. In this tutorial, PhpStorm 2016.2 is used.
  • Before you start working with TextMate Bundles, make sure that the TextMate bundle support plugin is enabled. The plugin is bundled with PhpStorm and is activated by default. If it is not, enable the plugin as described in Enabling and Disabling Plugins.

    py_textmatebundles_plugin

Importing bundles

Suppose you want PhpStorm to highlight syntax of the Shell Script files. For this purpose, you have already downloaded the Shell Script TextMate Bundle. It now resides on your hard disk, and you only have to import this bundle into PhpStorm.

OK, off we go. On the main toolbar, click settings, and under the Editor node, click TextMate Bundles. Then, in the TextMate Bundles area, click add, and locate the desired bundle on your hard disk:

py_textmatebundles_import

Click OK to apply changes. The Shell Script bundle appears in the list of recognized bundles, and its local path is visible to the right:

py_textmatebundles_import_result

However, we have not yet defined which color scheme PhpStorm will use to highlight Shell Script syntax. As you already know, PhpStorm provides a number of color schemes, from the classic-looking ones to the fashionable dark schemes, like Darcula. Have a look at the color scheme mapping section in the lower part of the TextMate Bundles page. By default, the PhpStorm's Default color scheme maps to the Mac Classic. If we want to use a different color scheme for our bundle, we can click the "Mac Classic" cell in the table of mappings, and select the desired scheme from the list of available ones. However, let's stick to the suggested scheme:

py_textmatebundles_color

Extension conflicts

Suppose you've imported a bundle that runs into a conflict with the existing file types. The conflict is immediately reported:

py_textmatebundles_import_existing

Clicking the Show details link opens the dialog box that gives you the chance to unregister the required extensions from the native file types:

py_textmatebundles_import_extension_conflicts

The node Files supported via TextMate Bundles now shows the new extensions (.htm, .html), and the node HTML lacks these extensions:

py_textmatebundles_import_new_file_types

Testing

Once a TextMate bundle is added, PhpStorm provides syntax highlighting for the file types registered with the bundle. Here's a sample script that uses the Shell Script TextMate bundle we've cloned earlier:

py_textmatebundles_highlight

See Also

Last modified: 2 September 2016