14

リージョンのみを折りたたみ/展開するためのショートカットはありますか?つまり、5つのメソッドを含む領域があり、collapseを押すと領域が崩壊し、expandを押すと領域が拡張され、以前と同じ状態の5つのメソッドすべてが表示されます(折りたたみ/拡張)。

現在、私が見つけたショートカットは、ALLを折りたたむか、ALLを展開するか、「現在」の単語を「すべて」の単語に置き換えています。

リージョンのみを折りたたみ、リージョン内の他のブロックには何もしないショートカットを探しています。拡大しても同じです。

そのようなことがない場合、誰かがそれを行うための視覚的な拡張を見つけたのでしょうか?

ルーカスを応援します

4

3 に答える 3

10

単純にヒットしてみませんか

ctrl+ m+m

カーソルを入れている間#region regionname

于 2012-09-16T13:10:45.560 に答える
6

次のマクロを使用して、個々のメソッドの展開/折りたたみ状態をそのままにして、領域を展開/折りたたみできます。

ここでマクロを見つけました。(Visual Studio 2010を使用して)CollapseAllRegionsメソッドからobjSelection.EndOfDocument()の呼び出しをコメントアウトする必要があることに注意してください。

Imports EnvDTE
Imports System.Diagnostics
' Macros for improving keyboard support for "#region ... #endregion"
Public Module RegionTools
    ' Expands all regions in the current document
    Sub ExpandAllRegions()

        Dim objSelection As TextSelection ' Our selection object

        DTE.SuppressUI = True ' Disable UI while we do this
        objSelection = DTE.ActiveDocument.Selection() ' Hook up to the ActiveDocument's selection
        objSelection.StartOfDocument() ' Shoot to the start of the document

        ' Loop through the document finding all instances of #region. This action has the side benefit
        ' of actually zooming us to the text in question when it is found and ALSO expanding it since it
        ' is an outline.
        Do While objSelection.FindText("#region", vsFindOptions.vsFindOptionsMatchInHiddenText)
            ' This next command would be what we would normally do *IF* the find operation didn't do it for us.
            'DTE.ExecuteCommand("Edit.ToggleOutliningExpansion")
        Loop
        objSelection.StartOfDocument() ' Shoot us back to the start of the document
        DTE.SuppressUI = False ' Reenable the UI

        objSelection = Nothing ' Release our object

    End Sub

    ' Collapses all regions in the current document
    Sub CollapseAllRegions()

        Dim objSelection As TextSelection ' Our selection object

        ExpandAllRegions() ' Force the expansion of all regions

        DTE.SuppressUI = True ' Disable UI while we do this
        objSelection = DTE.ActiveDocument.Selection() ' Hook up to the ActiveDocument's selection
        objSelection.EndOfDocument() ' Shoot to the end of the document

        ' Find the first occurence of #region from the end of the document to the start of the document. Note:
        ' Note: Once a #region is "collapsed" .FindText only sees it's "textual descriptor" unless
        ' vsFindOptions.vsFindOptionsMatchInHiddenText is specified. So when a #region "My Class" is collapsed,
        ' .FindText would subsequently see the text 'My Class' instead of '#region "My Class"' for the subsequent
        ' passes and skip any regions already collapsed.
        Do While (objSelection.FindText("#region", vsFindOptions.vsFindOptionsBackwards))
            DTE.ExecuteCommand("Edit.ToggleOutliningExpansion") ' Collapse this #region
            'objSelection.EndOfDocument() ' Shoot back to the end of the document for
            ' another pass.
        Loop
        objSelection.StartOfDocument() ' All done, head back to the start of the doc
        DTE.SuppressUI = False ' Reenable the UI

        objSelection = Nothing ' Release our object

    End Sub
End Module
于 2012-09-16T13:06:14.830 に答える
3

「すべての領域を折りたたむ」および「すべての領域を拡張する」ためのコマンドを提供する無料のVisualStudio拡張機能「MeneesVSTools 」を作成しました。2003から2013までのVSバージョン使用できます。VS2013およびVS2012バージョンは、VisualStudioGalleryで使用できます。

于 2015-01-05T00:11:02.477 に答える