web-dev-qa-db-ja.com

Visual Studioのコンテキストメニューから選択したテキストを並べ替える

現在、VSには非常に便利な機能があります:ソート使用(C#)。

たとえば、任意のランダムテキストに同じ機能が必要です-構成ファイルのXMLノード。

それを実装するのはどれほど複雑ですか? VSアドインですよね?ソートの使用に使用されるいくつかのVS APIを呼び出すことは可能ですか?

42
abatishchev

ちょうど良い無料のアドオンが見つかりました: Menees VS Tools 2012 (または 2010 ver )-まさにそれといくつかのテキストトリックを行います。インストールしたときにいくつかのマイナーなネガがありましたが、レビューページにコメントを残した後、数日以内に修正されました。行くわ! =)

現在2017バージョンがあります: Menees VS Tools 2017

14
Yurik

編集:マクロのサポートが削除されたため、このソリューションはVS2013以降では機能しないことに注意してください。

これを行うためにVSアドインをコーディングする必要はありません。VisualStudioにはマクロが組み込まれています。開始するには、[ツール]、[マクロ]、[一時マクロの記録]を使用します。

Record Temporary Macroが提供したコードに基づいてハッキングした「Sort Lines」コマンドは次のとおりです。

Imports System
Imports EnvDTE

Public Module TimModule
    Sub SortLines()
        Dim Selection As TextSelection = DTE.ActiveDocument.Selection
        Dim Lines() As String = Selection.Text.Replace(Environment.NewLine, Chr(13)).Split(Chr(13))
        Array.Sort(Lines)
        DTE.UndoContext.Open("Sort Lines")
        ' Edit - see comments
        ' Selection.Text = String.Join(Environment.NewLine, Lines)
        Selection.Delete
        Selection.Insert(String.Join(Environment.NewLine, Lines)) 
        DTE.UndoContext.Close()
    End Sub
End Module
24
Tim Robinson

Visual Studioの素敵なアドオンは コードメイド です。

いくつかの行を選択し、コンテキストメニューの[行の並べ替え]から選択しました

enter image description here

そして、あなたの行はアルファベット順にうまく並べられています:

enter image description here

19
Knasterbax

コードをSublime Textにコピーし、コードのセクションを選択してF9キーを押す(または[編集]> [行の並べ替え]をクリック)。その後、それをVisual Studioにコピーして戻すことができます。

6
William

私は個人的にMads Kristensenによる Web Essentials 拡張を使用しています。並べ替える行とAlt + 3またはAlt + 4(asc/desc)を選択するだけです。

5