TextMate:条件格式?

时间:2010-06-10 20:10:23

标签: syntax-highlighting textmate

我希望能够根据起始角色对线条进行不同的着色。

例如:

- This is line 1
- This is line 2
x This is line 3
- This is line 4
x This is line 5

因此,第1,2,4行(以“ - ”开头)应为蓝色,而第3,5行(以“x”开头)应为红色。

这可能吗?你会怎么做?

感谢。

1 个答案:

答案 0 :(得分:0)

您可以通过定义新语法来定义颜色。我的语法包含以下内容:

{   scopeName = 'text.todo';
    fileTypes = ( 'todo' );
    foldingStartMarker = '\{\s*$';
    foldingStopMarker = '^\s*\}';
    patterns = (
        {   name = 'constant';
            match = '^\s*(-.*)$';
        },
        {   name = 'variable.other.constant';
            match = '^\s*(x.*)$';
        },
    );
}

我创建了范围text.todo并将此语法分配给名为“foo.todo”的文件。

第一种模式是“任何数量的空白,然后是破折号,后面是任何东西”。此匹配称为“常量”,因此TextMate将使用在“首选项”>中为此范围定义的颜色。 “字体和颜色”。常量在我的主题中是蓝色的。

第二种模式需要一个“x”而不是破折号,并调用匹配“variable.other.constant”,这在我的主题中恰好是红色的。你应该很容易从这里延伸。如果您需要帮助,只需按下语法定义下方的问号即可。