目前,Visual Studio拥有一个非常有用的功能:对using进行排序(C#)。
我希望能够针对任意文本实现相同的功能,例如配置文件中的XML节点。
实现这个功能有多复杂?需要使用VS插件,对吗?是否可能调用一些用于对using进行排序的VS API?
目前,Visual Studio拥有一个非常有用的功能:对using进行排序(C#)。
我希望能够针对任意文本实现相同的功能,例如配置文件中的XML节点。
实现这个功能有多复杂?需要使用VS插件,对吗?是否可能调用一些用于对using进行排序的VS API?
VS 2019 & VS 2022:
该命令也可以从菜单中调用(@sharpener):编辑 | 高级 | 排序行
此快捷方式适用于最常用的方案:Visual C++ 6键盘映射方案(可能还有其他方案)。您可以在 选项| 键盘| 应用以下其他键盘映射方案:中检查您的方案。
您可以在 选项| 键盘| 显示包含命令:Edit.SortLines的命令|所选命令的快捷方式:中检查快捷方式。
编辑:请注意,此解决方案不适用于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
现在有一个2017版本:Menees VS Tools 2017
这个问题仍然出现在搜索结果的顶部,因此我将添加最新的解决方案。 如果您正在运行当前的VS Code(为什么不呢?),则可以使用内置的排序器,方法是按下ctrl-shift-p(Mac为cmd-shift-p),在随后的搜索框中输入“sort”即可。有许多选项可供选择。
您可以将代码复制到Sublime Text中,选择代码部分并按F9键(或转到编辑 > 排序行)。 然后您可以将其复制回Visual Studio。