当前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