TextMateのインデントベースの折りたたみ


1

SASSとHAMLには、Pythonによく似たインデントベースの構文があります。関連コードのブロックは、行の先頭に同じ数のスペースがあります。

コードの例を次に示します。

#drawer
  height: 100%
  color: #c2c7c4
  font:
    size: 10px
  .slider
    overflow: hidden
    height: 100%
    .edge
      background: url('/images/foo') repeat-y
      .tab
        margin-top = !drawer_top
        width: 56px
        height: 161px
        display: block

私はphuibonhoaのSASSバンドルを使用していますが、さまざまなセクションが折りたたまれるように拡張したいと思います。たとえば、私はすべての下に#drawer、すべての下に.slider、すべての下に.edge、などを折りたたみたいです。

バンドルには現在、次の折りたたみコードが含まれています。

foldingStartMarker = '/\*|^#|^\*|^\b|^\.';
foldingStopMarker = '\*/|^\s*$';

同様にインデントされたブロックを折り畳むためにこれをどのように強化できますか?

回答:


1

変更してみてください:

foldingStartMarker = '/\*|^#|^\*|^\b|^\.';

に:

foldingStartMarker = '/\*|^#|^\*|^\b|^\s*\.';

これにより、行の先頭.と折り畳み開始点の最初の間に任意の数のスペースを入れることができます。

エンドポイントはより複雑です。私はあなたのための良いエンドポイント表現を持っていないと思う。これは、ブロックがインデントレベルでグループ化されているpythonに似ています。Pythonバンドルがここで役立つのだろうか?Pythonのフォールド式の開始と終了は次のとおりです。

foldingStartMarker = '(/\*|\{|\()';
foldingStopMarker = '(\*/|\}|\))';

それらがあなたのために働くかどうかわからない。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.