2010-06-10 80 views
0

我希望能夠根據起始字符對線條加以不同的顏色。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')應該是紅色。

這可能嗎?你會怎麼做?

謝謝。

+0

稍微不相關的筆記:我想要這個功能的主要原因是對待辦事項列表進行顏色編碼。最近我發現textmate內置了一個TODO包,可以讓您在所有項目文件中查看待辦事項列表。只需在TODO:或FIXME:或CHANGED:等前添加一行,它就會自動添加到待辦事項列表中。只需查看捆綁列表中的「TODO」即可。 – nebs 2010-06-18 16:26:05

回答

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」,它恰好在我的主題中爲紅色。你應該很容易從這裏延伸。如果您需要幫助,只需按下語法定義下面的問號即可。