如何在 PHP 或 HTML 文件之间指定片段的范围?
How to specify the scope of a snippet between a PHP or a HTML file?
似乎在检查 PHP 文件的范围时,其扩展名为 .php
,并且其语法被正确识别为 PHP
,Sublime 仍会将其报告为 text.html.basic
(等等)。这使我的 HTML 片段始终在其中执行。
因为我想要制作一个片段 todo
作为它的 tabTrigger
,插入一个注释掉的标签,显然我需要它对于不同的文件类型是不同的(<!-- -->
或 /* */
)。但是这样,<!-- -->
注释被插入到 PHP 文件中...
我是否遗漏了额外的细节,或者这是一个错误?
Sublime Text 中的 PHP 语法是 HTML 语法的扩展,意味着所有 HTML 在 .php
文件中有效,加上额外的 <?php … ?>
标签。如果您的光标位于 .php
文件中,但在 <?php
标记之外,则范围将为 embedding.php text.html.basic
并且注释应采用 <!-- … -->
HTML 形式。
进入 PHP 标签后,您现在拥有 source.php
的额外范围。评论现在应该使用 PHP 评论 /* … */
and/or // …
.
对于您的代码段,只需将范围设置为 source.php
,它应该只在实际 PHP 代码内触发。
如果您希望您的代码段仅在 HTML 中触发,而 而不是 在 PHP 中触发,请将源设置为 text.html.basic -source.php
。
注意 这在最新版本的 Sublime Text 3(3.2.2,Build 3211)中都是正确的。 PHP 语法在早期完全重构,因此这可能无法在早期版本中正常工作。如果您还没有升级,现在是个好时机!
在您的 PHP 标签内,您需要使用 source.php
,而在标签外则是 text.html.php
。您可能想要这样的东西:
PHP
<snippet>
<content><![CDATA[/* TODO */]]></content>
<tabTrigger>todo</tabTrigger>
<scope>source.php</scope>
</snippet>
HTML (PHP)
<snippet>
<content><![CDATA[<!-- TODO -->]]></content>
<tabTrigger>todo</tabTrigger>
<scope>text.html.php</scope>
</snippet>
似乎在检查 PHP 文件的范围时,其扩展名为 .php
,并且其语法被正确识别为 PHP
,Sublime 仍会将其报告为 text.html.basic
(等等)。这使我的 HTML 片段始终在其中执行。
因为我想要制作一个片段 todo
作为它的 tabTrigger
,插入一个注释掉的标签,显然我需要它对于不同的文件类型是不同的(<!-- -->
或 /* */
)。但是这样,<!-- -->
注释被插入到 PHP 文件中...
我是否遗漏了额外的细节,或者这是一个错误?
Sublime Text 中的 PHP 语法是 HTML 语法的扩展,意味着所有 HTML 在 .php
文件中有效,加上额外的 <?php … ?>
标签。如果您的光标位于 .php
文件中,但在 <?php
标记之外,则范围将为 embedding.php text.html.basic
并且注释应采用 <!-- … -->
HTML 形式。
进入 PHP 标签后,您现在拥有 source.php
的额外范围。评论现在应该使用 PHP 评论 /* … */
and/or // …
.
对于您的代码段,只需将范围设置为 source.php
,它应该只在实际 PHP 代码内触发。
如果您希望您的代码段仅在 HTML 中触发,而 而不是 在 PHP 中触发,请将源设置为 text.html.basic -source.php
。
注意 这在最新版本的 Sublime Text 3(3.2.2,Build 3211)中都是正确的。 PHP 语法在早期完全重构,因此这可能无法在早期版本中正常工作。如果您还没有升级,现在是个好时机!
在您的 PHP 标签内,您需要使用 source.php
,而在标签外则是 text.html.php
。您可能想要这样的东西:
PHP
<snippet>
<content><![CDATA[/* TODO */]]></content>
<tabTrigger>todo</tabTrigger>
<scope>source.php</scope>
</snippet>
HTML (PHP)
<snippet>
<content><![CDATA[<!-- TODO -->]]></content>
<tabTrigger>todo</tabTrigger>
<scope>text.html.php</scope>
</snippet>