【问题标题】:Unable to make custom syntax highlighting work in TextMate无法在 TextMate 中进行自定义语法突出显示
【发布时间】:2010-06-03 20:44:35
【问题描述】:

我正在尝试在 TextMate 中突出显示自定义语言。但是,以下定义没有突出显示 PHP 插入(我确实为我的 *.serpent 文件选择了它):

{ scopeName = 'source.serpent';
 fileTypes = ( 'serpent' );
 patterns = (
  { begin = '<\?';
   end = '\?>';
   patterns = ( { include = 'source.php'; } );
  },
 );
}

如果我选择 PHP 语言,那么 PHP 部分会突出显示。

可能是什么原因?它应该工作吗?

我也在考虑使用 分隔符插入 ruby​​,但它不适用于最简单的设置。


更新

显然,这只是 PHP 的问题。下面的语言定义在我的文本中突出显示了 Ruby 和 Serpent 语言,而不是 PHP 插入!这里有什么问题?

{   scopeName = 'source.phpruby.serpent';
    fileTypes = ( 'serpent', 'serpent.php', 'serpent.erb' );
    patterns = (
        {   begin = '<\?(php|=)?';
            end = '\?>';
            patterns = ( { include = 'source.php'; } );
        },
        {   begin = '<%';
            end = '%>';
            patterns = ( { include = 'source.ruby'; } );
        },
        {   include = 'source.serpent'; },
    );
}

我通过在我的模式中将 source.php 替换为 #language 并从 PHP 语言复制存储库来使其工作。

【问题讨论】:

    标签: php ruby editor syntax-highlighting textmate


    【解决方案1】:

    2010 年 7 月 9 日星期五 08:02,艾伦 奥德加德 写道:

    我们使 PHP 语法本身匹配 构造,所以用你的 语法,那些位已被消耗 通过包括语法和 包含的 PHP 语法将因此 无操作。

    我们这样做的原因是 PHP语法可以工作 当用作根文法时,因为 许多用户坚持使用它 方式,尽管我们努力¹教育 ;)

    ¹ http://wiki.macromates.com/Troubleshooting/PHPSyntaxHighlight

    在上帝的帮助下,我理解了自己的错误,并且能够做出有效的(至少突出显示!)定义:

    {   scopeName = 'source.phpruby.serpent';
        fileTypes = ( 'serpent', 'serpent.php', 'serpent.erb' );
        patterns = (
            {   begin = '<\?(php|=|)';
                end = '\?>';
                include = 'source.php';
            },
            {   begin = '<%';
                end = '%>';
                patterns = ( { include = 'source.ruby'; } );
            },
            {   include = 'source.serpent'; },
        );
    }
    

    【讨论】:

    • 有一小段代码不能正常工作,但后来修复了。
    猜你喜欢
    • 2020-03-19
    • 1970-01-01
    • 2016-11-04
    • 2013-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多