Как включить сворачивание блоков для комментариев Python в TextMate? - PullRequest
4 голосов
/ 09 января 2011

В TextMate 1.5.10 r1623 вы получаете маленькие стрелки, которые позволяют вам сворачивать блоки методов:

alt text

К сожалению, если у вас есть многострочный комментарий Python, он не распознает его, поэтому вы не можете его свернуть:

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

 print "bar"

На сайте TextMate есть информация о том, как настроить сворачивание: http://manual.macromates.com/en/navigation_overview#customizing_foldings

... но я недостаточно квалифицирован в регулярных выражениях, чтобы что-то с этим сделать. TextMate использует API-интерфейс регулярных выражений Oniguruma , и я использую стандартный Python.tmbundle, обновленный до последней версии через GetBundles.

У кого-нибудь есть идеи, как это сделать? Заранее спасибо за помощь! :)


Добавление значений регулярных выражений foldingStartMarker и foldingStopMarker по умолчанию для Python.tmbundle в Python Language в редакторе пакетов:

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

Ответы [ 2 ]

2 голосов
/ 03 февраля 2011

Похоже, что сложение многострочных комментариев работает в 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 голос
/ 03 июня 2011

Согласно этой ветке списка рассылки Textmate , если вы будете следовать ей до конца, правильное свертывание кода для Python не поддерживается. По сути, регулярные выражения, реализованные в раскладках foldStartMarker и foldStopMarker, не допускают захват, поэтому интервал в начале «конечного сгиба» не может быть сопоставлен с «начальным сгибом».

Эта проблема окончательно и официально не решена создателем Textmate Алланом Одгаардом; тем не менее, поскольку этот поток относится к 2005 году, я предполагаю, что это нерешенная проблема, а не та, которая будет поддерживаться.

...