我需要分配一个自定义扩展名,以便在 netbeans 中识别为 twig 文件('blade.php' 为 'twig' 文件,并适当地给我语法突出显示和代码完成)。使用文件关联选项 (in Tools > Options > Miscellaneous > Files
) 的问题是它不允许我添加 '.' 在像 Blade.php 这样的扩展中,它适用于单字扩展,如 php、html、css 等。
如果有人可以帮助我,将不胜感激!
解决方法我想出了并且似乎有效(至少 Netbeans 8.x+)
Tools > Options > Miscellaneous > Files
Associate File Type (MIME)
选择TWIG (text/x-twig)Options
窗口%AppData%\Netbeans\<version>\
config\Services\MIMEResolver
user-defined-mime-resolver.xml
<ext name="blade"/>
条目(或您在上面输入的任何内容)瞧,高亮现在应该在 Netbeans IDE 中工作了 :)
修改user-defined-mime-resolver.xml
文件,使其看起来像这样:
<?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>
在 Linux (Ubuntu) 上,您可以在以下位置找到此文件:
$HOME/.netbeans/8.2/config/Services/MIMEResolver/user-defined-mime-resolver.xml
在 Windows 上,您可以在以下位置找到该文件:
%AppData%\Netbeans\8.2\config\Services\MIMEResolver\user-defined-mime-resolver.xml
基本上,第一个<file>
块扫描任何 PHP 文件的文件名,以查看它是否包含“.blade”子字符串。如果是这样,该文件将被视为 Twig 文件。如果不是,第二个<file>
块会将文件视为普通的 PHP 文件。
您可能需要“Twig Templates”NetBeans 插件才能正确突出显示:
Tools > Plugins > Available Plugins > Twig Templates
它并不完美......刀片指令等@include
仍然以纯文本突出显示。但是,我觉得它是对 PHP 语法高亮的显着改进。
以下来源非常有帮助:
很多人都在其他系统上开发,就像我在 Centos 7 上一样,所以这个解决方法几乎奏效了。
对于 CentOS,可能还有其他系统,请按照以下步骤操作,与上面的 Windows 几乎相同:
Tools->Options->Miscellaneous
并选择选项卡Files
。File Extension
在行中,单击按钮New
。输入crazywrongname
作为扩展名(这对选项 2 很重要)Associated File Type (MIME):
选择选项TWIG (text/x-twig)
Apply
,然后OK
。选项1:
以下步骤适用于CentOS 7和NetBeans 8.1,很可能也适用于其他系统,但如果您在该路径中找不到文件,选项 2 如下。
/root/.netbeans/8.1/config/Services/MIMEResolver/user-defined-mime-resolver.xml
在您喜欢的文本编辑器中打开文件,例如运行命令nano /root/.netbeans/8.1/config/Services/MIMEResolver/user-defined-mime-resolver.xml
未来的人们,您可能会尝试将文件路径中的 Netbeans 版本从选项 1 更改为您的版本,例如 14.3 或 2028 年推出的任何版本。
选项 2:
如果您无法在上面的确切路径中找到此文件,请运行以下命令来查找它:
cd / && grep -rI --exclude-dir=proc --exclude-dir=sys crazywrongname *
这将从根目录开始在整个系统上搜索特定模式。这就是我们为参数命名的原因crazywrongname
——因此在系统上的任何其他文件中都找不到它,就像blade
那样。它还将排除不应访问的文件夹。如果您不排除它们,您将收到错误并可能会挂起您的系统。此外,一些粉红色的独角兽可能会死亡。
找到系统的确切文件路径后,请按照选项 1 中的其余步骤更改参数名称。
谢谢你,神秘的 David Benedeki,他在回答后从 StackOverflow 消失了,这对你有很大帮助:)
正如我所看到的,问题更多的是以NetBeans 为中心,因此我还建议您向 NetBeans 社区提交错误报告。
也许将来他们可以解决这个问题。您也可以链接该问题,以便他们可以看到用户的反应。
用于使用自定义 *BladeDataObject 文件进行模块开发
@MIMEResolver.Registration(
resource = "BladeResolver.xml",
displayName = "#LBL_Blade_LOADER"
)
并在同一个包中创建带有内容的 BladeResolver.xml 文件
<MIME-resolver>
<file>
<ext name="php"/>
<name name="blade" substring="true">
<resolver mime="text/x-blade"/>
</name>
</file>
</MIME-resolver>