How to add a custom file extension that has a dot (blade.php) in NetBeans? How to add a custom file extension that has a dot (blade.php) in NetBeans? laravel laravel

How to add a custom file extension that has a dot (blade.php) in NetBeans?


Workaround I figured out and seems to work (at least Netbeans 8.x+)

  • Go to Tools > Options > Miscellaneous > Files
  • Click New
  • Enter blade as the new extension (you can use anything here, but this seems the most natural)
  • Click OK
  • In Associate File Type (MIME) select TWIG (text/x-twig)
  • Click OK of the whole Options window
  • Close Netbeans
  • Open the Netbeans configuration folder - on Windows it's %AppData%\Netbeans\<version>\
  • Go to subfolder config\Services\MIMEResolver
  • Open user-defined-mime-resolver.xml
  • Find the <ext name="blade"/> entry (or whatever you entred above)
  • Change the blade to blade.php
  • Save and close the file

VoilĂ , higlighting should now work in Netbeans IDE :)


Modify the user-defined-mime-resolver.xml file so that it looks something like this:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE MIME-resolver PUBLIC "-//NetBeans//DTD MIME Resolver 1.1//EN" "http://www.netbeans.org/dtds/mime-resolver-1_1.dtd"><MIME-resolver>    <file>        <ext name="php"/>        <name name=".blade" substring="true"/>        <resolver mime="text/x-twig"/>    </file>    <file>    <ext name="php"/>        <resolver mime="text/x-php5"/>    </file></MIME-resolver>

On Linux (Ubuntu), you can find this file at:
$HOME/.netbeans/8.2/config/Services/MIMEResolver/user-defined-mime-resolver.xml

On Windows, you can find the file at:%AppData%\Netbeans\8.2\config\Services\MIMEResolver\user-defined-mime-resolver.xml

Basically, the first <file> block scans the filename of any PHP files to see if it contains the ".blade" substring. If so, the file is treated as a Twig file. If not, the second <file> block will treat the file as a normal PHP file.

You might need the "Twig Templates" NetBeans plugin in order to get proper highlighting:
Tools > Plugins > Available Plugins > Twig Templates

It's not perfect... Blade directives such as @include are still highlighted as plain text. However, I feel it is a marked improvement over PHP syntax highlighting.

The following sources were extremely helpful:


A lot of people are developing on other systems, as I am on Centos 7, so this workaround almost worked.

For CentOS, and probably other systems as well, follow these steps, almost the same as above for Windows:

  • Open Netbeans. Go to Tools->Options->Miscellaneous and select tab Files.
  • In File Extension row, click New button. Enter crazywrongname as extension name (this is important for option 2)
  • Below that, under Associated File Type (MIME): choose the option TWIG (text/x-twig)
  • click Apply and then OK.
  • Close Netbeans

Option 1:

The following steps are for CentOS 7 and NetBeans 8.1, most probably for other systems as well, but if you can't find the file at that path, option 2 is below.

  • open Terminal and open the file /root/.netbeans/8.1/config/Services/MIMEResolver/user-defined-mime-resolver.xml in your favourite text editor, e.g. run command nano /root/.netbeans/8.1/config/Services/MIMEResolver/user-defined-mime-resolver.xml
  • find the parameter name "crazywrongname" in this file and change it to "blade.php"
  • save the file
  • open Netbeans and enjoy.

People from the future, you might try changing the Netbeans version in file path from option 1 to yours, like 14.3 or whatever is out in 2028.

Option 2:

If you can't find this file in the exact path as above, run this command to find it:

cd / && grep -rI --exclude-dir=proc --exclude-dir=sys crazywrongname *

This will start a search for the specific pattern on your whole system, starting at root. That's why we named the parameter crazywrongname - so it isn't found in any other file on the system, like blade would be. It will also exclude the folders that are not supposed to be accessed. If you don't exclude them, you will get errors and possibly hang your system. Also, some pink unicorns might die.

After you find the exact file path for your system, follow the remaining steps in option 1 for changing the parameter name.

Thank you, mysterious David Benedeki who disappeared from StackOverflow after answer which helped enormously :)