2011-01-09 72 views
4

在TextMate的1.5.10 r1623,你的小箭頭,使您可以摺疊方法塊:如何在TextMate中爲Python註釋啓用塊摺疊?

alt text

不幸的是,如果你有一個多行的Python評論,不承認它,所以你不能把它摺疊:

def foo(): 
""" 
How do 
I fold 
these comments? 
""" 

print "bar" 

TextMate中有這對他們如何定製摺疊網站:http://manual.macromates.com/en/navigation_overview#customizing_foldings

...但我並不擅長於正則表達式夠做任何事AB出來吧。 TextMate使用Oniguruma正則表達式API,我使用通過GetBundles更新到最新版本的默認Python.tmbundle。

有沒有人有如何做到這一點的想法?在此先感謝您的幫助! :)


添加默認foldingStartMarker和Python語言在包編輯器下Python.tmbundle foldingStopMarker正則表達式的值:

foldingStartMarker = '^\s*(def|class)\s+([.a-zA-Z0-9_ <]+)\s*(\((.*)\))?\s*:|\{\s*$|\(\s*$|\[\s*$|^\s*"""(?=.)(?!.*""")'; 
foldingStopMarker = '^\s*$|^\s*\}|^\s*\]|^\s*\)|^\s*"""\s*$'; 
+0

這不應該是將foldingStartMarker和foldingStopMarker定義爲`「」「|'''`嗎? – delnan 2011-01-09 03:30:46

+0

@delnan,我認爲你在正確的軌道上。當前的正則表達式值有點複雜將它們添加到上面的問題中) – 2011-01-09 14:53:28

回答

1

this Textmate Mailing list thread,如果你按照它的結束,不支持正確的代碼摺疊爲Python。基本上,在foldingStartMarker和foldingStopMarker中實現的正則表達式不允許捕獲,因此「end fold」開始處的間隔量不能與「begin fold」匹配。

這個問題並沒有最終由Textmate的創造者Allan Odgaard正式解決;然而,由於線程是從2005年開始的,我認爲這是一個死亡問題,而不是一個將被支持的問題。

2

看來,多行註釋的摺疊確實在TextMate的工作,但你必須精確地排隊你的報價,如下所示:

""" Some sort of multi 
    line comment, which needs quotes 
    in just the right places to work. """ 

這似乎做到這一點:

enter image description here

enter image description here

+1

這是正確的,但是您沒有提及重要的事實,即您的第21行需要與第18行對應的選項卡,否則它將無法工作 – 2011-08-28 04:07:42

相關問題