當前VS有一個非常有用的功能:sort usings(C#)。從Visual Studio上下文菜單中排序選擇的文本
我想要任何隨機文本的相同功能,例如 - 配置文件中的XML節點。
實現它有多複雜? VS插件,對吧?是否可以調用一些用於排序使用的VS API?
當前VS有一個非常有用的功能:sort usings(C#)。從Visual Studio上下文菜單中排序選擇的文本
我想要任何隨機文本的相同功能,例如 - 配置文件中的XML節點。
實現它有多複雜? VS插件,對吧?是否可以調用一些用於排序使用的VS API?
只是找到了一個很好的免費插件:Menees VS Tools 2012(或2010 ver) - 正是這麼做的和幾個文字技巧。當我安裝它時,有一些次要的負面影響,但在評論頁面留下評論後,它在幾天內得到修復。 Waay去! =)
現在有一個2017年版本:Menees VS Tools 2017
編輯:請注意,此解決方案不適用於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
您可以將代碼複製到文本崇高,選擇部分代碼和按F9(或去編輯>排序行)。然後,您可以將其複製回Visual Studio。
好主意。與emacs:標記區域相同,然後Alt-X分類線 – user829755 2016-03-08 15:47:46
我親自使用Mads Kristensen的Web Essentials擴展名。 您只需選擇要排序的行和Alt + 3或Alt + 4(asc/desc)。
您正在使用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
@彼得,謝謝。我沒有花很長時間寫這篇文章 - 如果你給OP增加一個答案,我會投票支持 – 2010-07-28 10:51:15
Peter的建議將我的運行時間從30秒改變爲幾乎瞬間,並且也停止了一些生成的垃圾行。 – 2011-09-27 13:47:34