47

目前 VS 有一个非常有用的特性:sort usings (C#)。

我希望任何随机文本都具有相同的功能,例如 - 配置文件中的 XML 节点。

实现起来有多复杂?VS插件,对吧?是否可以调用一些用于排序的 VS API?

4

7 回答 7

25

一个不错的 Visual Studio 插件是Code Maid

您选择了一些行并从上下文菜单“排序行”中选择

在此处输入图像描述

瞧,您的行按字母顺序很好地排序:

在此处输入图像描述

于 2016-03-30T12:35:18.480 回答
24

编辑:请注意,此解决方案不适用于 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
于 2010-07-28T07:52:16.110 回答
14

刚刚找到了一个不错的免费插件:Menees VS Tools 2012(或2010 版)- 正是这样做的,还有一些文字技巧。我安装它时有一些小的负面影响,但在评论页面上留下评论后,它在几天内得到了修复。去吧!=)

现在有一个 2017 版本:Menees VS Tools 2017

于 2012-12-15T14:27:51.730 回答
13

与 2019 年相比

  1. 选择行。最后选择的行是光标所在的位置 - 即使该行为空且没有可见选择,也会考虑该行。
  2. Shift + Alt + L,Shift + Alt + S => 升序排序。
  3. Shift + Alt + L,Shift + Alt + S(相同的选择相同的键)=> 降序排序。
于 2021-05-14T16:51:49.760 回答
7

您可以将代码复制到 Sublime Text 中,选择代码部分并按 F9(或转到 Edit > Sort Lines)。然后,您可以将其复制回 Visual Studio。

于 2015-11-16T00:46:13.873 回答
5

我个人使用 Mads Kristensen 的Web Essentials扩展。您只需选择要排序的行和 Alt+3 或 Alt+4 (asc/desc)。

于 2016-03-25T09:50:20.780 回答
5

这仍然出现在搜索的顶部,所以我将添加这个最新的解决方案。如果您正在运行当前的 VS Code(为什么不运行?),您可以通过按 ctrl-shift-p(Mac 是 cmd-shift-p)使用内置排序器并在随后的搜索中键入“sort”盒子。有很多选择。

于 2020-07-21T02:14:50.197 回答