I need to assign a custom extension to be recognized as a twig file in netbeans (\'blade.php\' as \'twig\' file and give me syntax highlighting and code completion appropria
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:
Tools->Options->Miscellaneous
and select tab Files
.File Extension
row, click New
button. Enter crazywrongname
as extension name (this is important for option 2)Associated File Type (MIME):
choose the option TWIG (text/x-twig)
Apply
and then OK
.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.
/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
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 :)
Workaround I figured out and seems to work (at least Netbeans 8.x+)
Tools > Options > Miscellaneous > Files
Associate File Type (MIME)
select TWIG (text/x-twig)Options
window%AppData%\Netbeans\<version>\
config\Services\MIMEResolver
user-defined-mime-resolver.xml
<ext name="blade"/>
entry (or whatever you entred above)Voilà, higlighting should now work in Netbeans IDE :)
As I can see the problem is more NetBeans-centric, so I would also suggest you to file a bug report to the NetBeans community.
Maybe in the future they can fix that issue. You may also link that question so they can see the user reactions.