Textmate:HTML语法:嵌入在PHP单引号和双引号中

Textmate:HTML语法:嵌入在PHP单引号和双引号中,php,html,syntax,scope,textmate,Php,Html,Syntax,Scope,Textmate,在Textmate中,是否有突出显示PHP单引号和双引号中嵌入的HTML的方法?它没有定义范围 例如: printf('This someText,'foobar') 单引号内的所有内容都属于同一范围。真烦人。有没有人想办法解决这个问题?我不想更改语言文件(没有指导),我的正则表达式不太流利。您可能需要对HTML的范围定义进行一些相当复杂的编辑,以便按照您所描述的那样工作。在TextMate中,默认情况下PHP文件是HTML文件,因此您需要定义一个作用域,在该作用域中,您有一个嵌入了PHP的HT

在Textmate中,是否有突出显示PHP单引号和双引号中嵌入的HTML的方法?它没有定义范围

例如:

printf('This someText,'foobar')


单引号内的所有内容都属于同一范围。真烦人。有没有人想办法解决这个问题?我不想更改语言文件(没有指导),我的正则表达式不太流利。

您可能需要对HTML的范围定义进行一些相当复杂的编辑,以便按照您所描述的那样工作。在TextMate中,默认情况下PHP文件是HTML文件,因此您需要定义一个作用域,在该作用域中,您有一个嵌入了PHP的HTML文件,其中的字符串可能是HTML。并不是PHP中的每个字符串都是HTML,所以您需要找出一种方法来区分非HTML字符串和HTML字符串,如果您不熟悉正则表达式,可能需要进行大量的研究和反复试验才能正确使用

作为另一种选择,如果您实际使用的是<代码> Prtff<代码>,而不是简单地使用它作为一个通用的示例,请考虑使用该函数只格式化您需要的格式并执行类似的操作。

<?php
$var = sprintf( '%d', $num );
?>
Here's the <strong><?php echo $var; ?></strong>.

这是
您可能需要对HTML的作用域定义进行一些相当复杂的编辑,以便按照您所描述的那样工作。在TextMate中,默认情况下PHP文件是HTML文件,因此您需要定义一个作用域,在该作用域中,您有一个嵌入了PHP的HTML文件,其中的字符串可能是HTML。并不是PHP中的每个字符串都是HTML,所以您需要找出一种方法来区分非HTML字符串和HTML字符串,如果您不熟悉正则表达式,可能需要进行大量的研究和反复试验才能正确使用

作为另一种选择,如果您实际使用的是<代码> Prtff<代码>,而不是简单地使用它作为一个通用的示例,请考虑使用该函数只格式化您需要的格式并执行类似的操作。

<?php
$var = sprintf( '%d', $num );
?>
Here's the <strong><?php echo $var; ?></strong>.

这是
没关系,我知道怎么做了。在阅读了Textmate中作用域的工作原理之后。我打开捆绑包编辑器下的PHP语言面板,并将以下作用域名称的include粘贴到
字符串单引号
作用域中:

text.html.basic

这包括:

{include='text.html.basic';},

下面是整个
字符串单引号部分现在的样子:

string-single-quoted = {
        name = 'string.quoted.single.php';
        contentName = 'meta.string-contents.quoted.single.php';
        begin = "'";
        end = "'";
        beginCaptures = { 0 = { name = 'punctuation.definition.string.begin.php'; }; };
        endCaptures = { 0 = { name = 'punctuation.definition.string.end.php'; }; };
        patterns = (
            {   include = 'text.html.basic'; },
            {   name = 'constant.character.escape.php';
                match = '\\[\\'']';
            },
        );
    };

没关系,我知道怎么做了。在阅读了Textmate中作用域的工作原理之后。我打开捆绑包编辑器下的PHP语言面板,并将以下作用域名称的include粘贴到
字符串单引号
作用域中:

text.html.basic

这包括:

{include='text.html.basic';},

下面是整个
字符串单引号部分现在的样子:

string-single-quoted = {
        name = 'string.quoted.single.php';
        contentName = 'meta.string-contents.quoted.single.php';
        begin = "'";
        end = "'";
        beginCaptures = { 0 = { name = 'punctuation.definition.string.begin.php'; }; };
        endCaptures = { 0 = { name = 'punctuation.definition.string.end.php'; }; };
        patterns = (
            {   include = 'text.html.basic'; },
            {   name = 'constant.character.escape.php';
                match = '\\[\\'']';
            },
        );
    };

谢谢,但在“尝试和错误”(很多)之后,我真的让它工作了。很酷。我将尝试将其集成到我自己的TM环境中。:)是的,我不敢相信人们没有想到记录/分享它。我真的很想爱上Textmate,但定制它比现在的很多应用程序都要困难(有时令人难以置信)。我目前正在使用Espresso.app,它比Textmate有更自然的感觉,但老实说,你无法打败Textmate的功能。很高兴你发现它有用。虽然我不确定这是否是在另一个系统中添加额外语法支持的正确方法。好吧,讽刺的是,我现在正在浏览vim教程,期待放弃TextMate:(哦,顺便说一句,我发现了一个小问题。如果HTML标记没有结束角括号(即“谢谢,但在“尝试和错误”(很多)之后),我实际上让它工作了。非常酷。我将尝试将它集成到我自己的TM环境中。:)是的,我不敢相信人们没有想到要记录/分享它。我真的很想爱上Textmate,但定制它更难(有时令人难以置信)现在我正在使用Espresso.app,它比Textmate有更自然的感觉,但老实说,你无法打败Textmate的功能。很高兴你发现它很有用。虽然我不确定这是否是在其他应用中添加对附加语法支持的正确方法。好吧,讽刺的是,我实际上正在学习vim tutorials现在期待着放弃TextMate.:(哦,顺便说一下,我发现了一个小问题。如果HTML标记没有结束角括号(即