2011-02-02 9 views
2

私はtextmateでmarkdownのコードフォールディングを有効にしたいと思います。TextMateでマークダウンのコード折りたたみを有効にするにはどうすればよいですか?

具体的には、1つ以上の '#'文字の前にあるテキスト)は、ブロックと次の見出しまたは水平ルールの間でブロックを切り替える行になります。例:

# Level 1 Heading - I'd like the block below to fold 

The text I'd like to fold away 

## Level 2 Heading 

More text... 

BBEditはこれをマークダウンに適しているようです。 TextMateは、対になった(そして同じインデントされた)中括弧を持つブロックを表す言語に対して、コードの折りたたみをサポートしています。

私はTextMateがあなたが言語文法ファイルで設定できる2つの変数を提供していることを知っていますが、私はそれを理解するために私が持っているよりも多くの才能を必要とします。以下は、現在、コードの折りたたみの設定のための値下げ言語の文法に存在するものです:

foldingStartMarker = '(?x) 
    (<(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)\b.*?> 
    |<!--(?!.*-->) 
    |\{\s*($|\?>\s*$|//|/\*(.*\*/\s*$|(?!.*?\*/))) 
    )'; 
foldingStopMarker = '(?x) 
    (</(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)> 
    |^\s*--> 
    |(^|\s)\} 
    )'; 

すべてのヘルプは大歓迎します!

答えて

2

TextMateフラットアウトできません。

TextMateの言語パーサーは、ファイルを行単位で読み取ります。つまり、コードを折り畳むには、開始マーカーと終了マーカーが必要です。 <ul>および</ul>のようになります。この場合、セクションの終わりが次のセクションの開始以外のものによってマークされていないので、行単位のパーサーは戻って空の行がコード折り返しブロックの終わりを示すはずがないと言うことができません。

それは意味がありますか?

1

Macromates blogには、マークダウンのための基本的なコードの折り畳みを有効にする方法が説明されています。これにより、ヘッダーに "#"記号を使用している限り、ヘッダーレベルで折り畳むことができます。値下げの折りたたみ設定について

(text.html.markdownするスコープ)、のは、いくつかのより多くの卑劣なパターンを見てみましょう:

{ foldingIndentedBlockStart = '^#+\s+'; foldingIndentedBlockIgnore = '^(?!#+\s+)'; }

我々は見出しがスタートマーカーでみましょうし、我々は効果的に無視しますインデントされていないものはすべて折りたたみ可能なブロックに含まれます。これにより、Markdown文書のセクション全体を見出しだけに折りたたむことができます。