回答

11

只是找到了一個很好的免費插件:Menees VS Tools 2012(或2010 ver) - 正是這麼做的和幾個文字技巧。當我安裝它時,有一些次要的負面影響,但在評論頁面留下評論後,它在幾天內得到修復。 Waay去! =)

現在有一個2017年版本:Menees VS Tools 2017

22

編輯:請注意,此解決方案不適用於VS2013或更高版本,因爲對宏的支持已被刪除。

您不一定需要編寫一個VS插件才能做到這一點:Visual Studio中內置了宏。要開始使用,請使用工具,宏和記錄臨時宏。

這裏有一個「排序行」命令我入侵一起基於該代碼記錄臨時宏給我:

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 
+5

您正在使用TextSelection.Text屬性更改文本。這通常是執行速度非常慢的原因。甚至可能需要幾秒鐘的時間。更好的方法是使用TextSelection.Insert和Delete方法。我沒有測試它,但我建議替換線: Selection.Text = String.Join(Environment.NewLine,Lines) 2行: Selection.Delete Selection.Insert(String.Join(Environment.NewLine,行)) 然後,您可以將宏放在工具欄或菜單(http://www.helixoft.com/blog/archives/7)上或將鍵快捷方式分配給它(http://www.helixoft.com/blog /檔案/ 8) – 2010-07-28 10:45:26

+2

@彼得,謝謝。我沒有花很長時間寫這篇文章 - 如果你給OP增加一個答案,我會投票支持 – 2010-07-28 10:51:15

+0

Peter的建議將我的運行時間從30秒改變爲幾乎瞬間,並且也停止了一些生成的垃圾行。 – 2011-09-27 13:47:34

5

您可以將代碼複製到文本崇高,選擇部分代碼和按F9(或去編輯>排序行)。然後,您可以將其複製回Visual Studio。

+0

好主意。與emacs:標記區域相同,然後Alt-X分類線 – user829755 2016-03-08 15:47:46

2

我親自使用Mads Kristensen的Web Essentials擴展名。 您只需選擇要排序的行和Alt + 3或Alt + 4(asc/desc)。

13

一個不錯的附加元件的Visual Studio是Code Maid

您選擇一些線,然後從上下文菜單中選擇「排序行」

enter image description here

,瞧,你的行按字母順序很好的排序:

enter image description here

+0

編輯C++源文件時,這對於VisualStudio 2013上的Code Maid 10.2不起作用。選定的行保持不變。 – Eponymous 2017-02-01 21:29:39

相關問題