是否有关于如何让 Notepad++“理解”(语法突出显示)我的自定义库/框架的真正的/更新的说明?

是否有关于如何让 Notepad++“理解”(语法突出显示)我的自定义库/框架的真正的/更新的说明?

请注意:过去几年我曾多次在网上搜索此内容,阅读 Notepad++ 文档,并对 Notepad++ 进行了大量实验。尽管它似乎按照我的要求做了,但我始终无法让它做到这一点。如果您知道这有效,请仅回复;我很可能看过您可能会链接给我的各种指南和网页。

我制作了一个 PHP 框架/库。我可以创建 Notepad++ 需要的任何自定义文件格式,以便其语法突出显示“理解”我的系统。我说的不是烦人的“自动完成”功能,安装 Notepad++ 后,我做的第一件事就是关闭它。我说的是以下这些功能:

$variable = nope;

“nope” 在 PHP 中不是有效常量,但我可能已将该常量定义为“true”(不带引号)的别名。目前,Notepad++ 不可能知道这一点,因为我现在安装的是原始 Notepad++。我正在尝试弄清楚如何创建某种“语法帮助文件”,Notepad++ 将在程序启动时加载该文件,然后使我的“nope”被识别为常量/特殊关键字,从而获得与“false”或“true”(不带引号)相同的语法突出显示处理。

我想非常清楚地表明我不是想要“定义我自己的语言”。每当我尝试该功能时,所有现有的语法突出显示都会被删除并从零开始。我绝对不想这样。我只是想拥有默认的 PHP 语法突出显示,但也让它“理解”/知道我自己的自定义函数/常量/任何东西的列表。

无论我过去尝试过什么,Notepad++ 似乎都会忽略我编辑、扩展或添加的任何文件。有人甚至向我声称 Notepad++ 会忽略所有这些文件并从其他地方加载这些数据。我希望那只是他们几年前重组应用程序时的暂时现象。基本上,没有以任何有意义的方式记录下来,“只是摆弄”永远不会产生任何结果。

我真的开始怀疑这是否真的可能。

答案1

小子,你在回答问题时肯定受到很多限制,不是吗 ;)

反正:

我听说你想要“语言 > 用户定义”,你只是想扩展 PHP 语法高亮。太酷了 :)

我认为您无法扩展内置语法高亮来适应 PHP“nope”。具体来说:

https://community.notepad-plus-plus.org/topic/15983/php-additional-syntax-highlighting/2

问:是否有可能添加 php 语法高亮功能,例如可以起作用的 keywordClass 和 styleID 的一些组合,还是我只是在浪费时间?

答:给定语言可用的类别由该语言的词法分析器定义;遗憾的是,您无法添加新类别。(好吧,就像您看到的,您可以将任何内容添加到 stylers.xml……但如果 php 词法分析器未编程为匹配该类别中的单词,并将该类别传递给 scintilla 以使用特定样式对其进行标记,则什么也不会发生。)

因此,使用内置词法分析器,我认为您将无法添加单独的关键字样式/类别,抱歉。

您也许能够想出一个 UDL 来根据需要突出显示单词(但 UDL 突出显示通常在自定义词法分析器擅长的领域存在不足,因此您可能不得不放弃一些东西才能获得两种不同类别的关键字)。

相关内容