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

后端 未结 4 1892
旧时难觅i
旧时难觅i 2021-01-01 19:24

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

相关标签:
4条回答
  • 2021-01-01 19:47

    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:

    • HOW TO: Declarative MIME Type Resolvers
    • DTD Grammar Documentation
    • David Benedeki's earlier answer to this question
    0 讨论(0)
  • 2021-01-01 19:47

    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 :)

    0 讨论(0)
  • 2021-01-01 19:57

    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 :)

    0 讨论(0)
  • 2021-01-01 20:00

    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.

    • The NetBeans forums.
    • The NetBeans bug tracker.

    Maybe in the future they can fix that issue. You may also link that question so they can see the user reactions.

    0 讨论(0)
提交回复
热议问题