syntax-highlighting - 在 Notepad++ 中扩展语言定义(用于代码突出显示)

标签 syntax-highlighting notepad++ twig

我最近一直在 TWIG 中进行开发。它是一种非常简单和健壮的 html 模板语言。

我已将 notepad++ 设置为自动将 .twig 文件视为 html。没关系,但是我的 Twig 函数没有任何语法高亮显示。

twig 语法非常简单(按设计)并且很容易添加到 Notepad++ 。问题是,我在这个主题上找到的一切要么是关于创建新的语言定义(我不想重新发明 html 定义),要么是修改语言中现有语法位的颜色。

有没有办法复制语言定义然后在 Notepad++ 中修改它?如果没有, Notepad++ 中是否有任何方法可以向现有语言定义添加额外的语法位?

编辑

TWIG 是一种 html 模板语言/引擎。它们的语法与 html 相同,但为控制语句添加了一些打开/关闭标记(特别是 {% %}、{{ }} 和 {# #})。你可以在 the twig website 阅读更多关于它的信息

编辑 #2

根据 Brian Deragon 的回答,我一直在调查 3 个文件。继承人到目前为止我想出/做的:

  • \plugins\APIs\html.xml - 似乎定义了关键字,用于自动完成。我复制了名为 twig.xml 的文件
  • langs.model.xml - 同样是一个关键字列表,在 1 个 XML 文件中包含所有语言。我复制了 HTML 对象并用 twig 替换了 name 和 ext 参数。
  • stylers.model.xml - 有一个不同项目的列表,以及每个项目的样式信息(颜色、背景颜色、字体等)。我复制了 HTML 部分并将 name 和 desc 参数更改为 twig。

  • 完成这些更改后,我在 notepad++ 中打开了一个 twig 文件,希望能在语言选项中看到它。可悲的是,它没有出现,让我相信其中一些是硬编码的(因此我想要的可能是不可能的)。

    不过,stylers.model.xml 很有趣。每个条目都有一堆项目,定义如下:
    <LexerType name="twig" desc="TWIG" ext="">
        <WordsStyle name="DEFAULT" styleID="0" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" />
        <WordsStyle name="COMMENT" styleID="9" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
        <WordsStyle name="TAG" styleID="1" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
        <WordsStyle name="TAGEND" styleID="11" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
        ...
    </LexerType>
    

    这些似乎是为不同元素定义样式的地方。我找不到定义这些元素的任何地方。 langs.model.xml 有注释开始/结束的定义,但没有用于任何其他分隔符。我真正需要的是一个地方告诉 Notepad++ 将 { } 视为分隔符,就像它现在对 < > 所做的一样。

    编辑 #3

    我也在查看 Notepad++ 的用户定义语言列表 http://sourceforge.net/apps/mediawiki/notepad-plus/index.php?title=User_Defined_Language_Files
    用户定义的语言使用不同的引擎,但我可能能够在其中找到一个与 html 足够相似的引擎,以便我可以对其进行调整。

    最佳答案

    我在这里为它制作了一个荧光笔:
    https://github.com/Banane9/notepadplusplus-twig

    关于syntax-highlighting - 在 Notepad++ 中扩展语言定义(用于代码突出显示),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8575865/

    相关文章:

    javascript - Symfony - 自定义 FieldType form_widget 渲染

    javascript - 如何在客户端点击按钮时选择不同的leaflet js文件

    html - 将颜色语法代码片段添加到网页的最佳方式是什么?

    javascript - 代码镜像。禁用垂直滚动条

    regex - 获取正则表达式匹配的前 n 个字符

    php - Twig 标签包含 vs 函数包含

    xcode - 在 XCode 中突出显示//TODO

    java - Eclipse 文本高亮显示

    emacs - 除了 Emacs,还有什么好的 Lisp 编程编辑器吗?

    无法打开输出文件 helloWorld.exe : Permission denied