0

Sublime の白い点線の列区切り文字を取得するためのバンドルまたは設定が Textmate のどこかにあるかどうかを知りたいです。スクリーンショットを見てください。

Textmate でこの PHP 関数を見てください。

テキストメイトのスクリーンショット
(ソース: darwinsantos.com )

Sublimeで見てみましょう。

崇高なスクリーンショット
(ソース: darwinsantos.com )

よく見ると、Sublime では開始中括弧と終了中括弧が白い点線で囲まれていることに注意してください。これにより、両方の中括弧がまったく同じ列に配置されていることがわかります。

Textmateでこれを取得する方法はありますか?

4

1 に答える 1

5

更新 (2016 年 5 月) : TextMate にインデント ガイドが追加されました! バージョン 2.0-beta.9.2 以降View-> Show Indent Guides. それらは進行中の作業ですが、利用可能です。


更新:これを機能させ、公式の指示に従って独自のテキストメイトを構築する意思がある場合は、私のフォールドガイド対応バージョンの TextMate2を構築する(そしておそらく貢献する)可能性があります。ビルドはなく、ガイドを無効にする設定がないため、TextMate2 に導入する準備ができていません。


これは開発中の機能であり、完成すると、これから説明するよりもはるかにインテリジェントになります。新しいバージョンは、最終的には、スペース/タブのペアを単純に埋めるのではなく、言語のインデント ルールを尊重します。

そうは言っても、私はこれを使用して、テンプレートの無数の行が完璧であることを確認しました.

メソッドは更新されますが、それ以外はCocabits による Textmate1 の説明と同じです。

次のような結果になります: 折りガイドのデモ 最後から 2 番目の行に注意してください。行をトリガーするための空白がありません。新しいバージョンは、Sublime のバージョンにはるかに近くなります。

まず、コードの各行の前に使用するタブとスペースを識別する方法を TextMate に教える必要があります。

折りガイド バンドルを作成しましたが、配布するのはこれが初めてで、うまくいかないのではないかと心配しています。試してみてください。

機能しない場合は、これらのルールを手動で追加する必要があります。独自のバンドルを作成する方法を紹介しますが、好きな言語に直接追加することもできます。

Bundles->Edit Bundles からバンドルを作成し、File->New でバンドルを選択して名前を付け、File->New で文法を作成します。文法には次のコードが必要です。

{   patterns = (
        {   include = '#leading-spaces'; },
        {   name = 'meta.leading-tabs';
            begin = '^(?=\t)';
            end = '(?=[^\t])';
            patterns = (
                {   match = '(\t)(\t)?';
                    captures = {
                        1 = { name = 'meta.odd-tab'; };
                        2 = { name = 'meta.even-tab'; };
                    };
                },
            );
        },
    );
    repository = {
        leading-spaces = {
            begin = '^(?=\s\s)';
            end = '(?=[^\s\s])';
            patterns = (
                {   match = '(\s\s)(\s\s)?';
                    captures = {
                        1 = { name = 'meta.odd-tab'; };
                        2 = { name = 'meta.even-tab'; };
                    };
                },
            );
        };
    };
}

インスペクタは次のようになります。

インジェクターを * に設定した文法

「meta.even-tab」または「meta.odd-tab」に一致するテーマ ルールが必要なので、これを現在のテーマに追加するだけです。

{name = 'Alternating Tabs';
    scope = 'meta.even-tab';
    settings = {
        background = '#232323';
        };
}
于 2013-07-05T15:08:31.457 に答える