从Visual Studio上下文菜单中排序选定的文本

时间:2010-07-28 07:34:21

标签: visual-studio visual-studio-2010 sorting visual-studio-addins

目前VS有一个非常有用的功能:排序使用(C#)。

我想为任何随机文本提供相同的功能,例如 - 配置文件中的XML节点。

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

7 个答案:

答案 0 :(得分:23)

编辑:请注意,此解决方案无法在VS2013或更高版本上运行,因为已删除对宏的支持。

您不一定需要编写VS插件来执行此操作:Visual Studio内置了宏。要开始使用,请使用工具,宏,记录临时宏。

这是一个'Sort Lines'命令,我根据Record Temporary Macro给我的代码一起入侵:

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

答案 1 :(得分:15)

Visual Studio的一个不错的AddOn是Code Maid

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

enter image description here

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

enter image description here

答案 2 :(得分:14)

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

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

答案 3 :(得分:5)

您可以将代码复制到Sublime Text,选择代码部分并按F9(或转到编辑>排序行)。然后,您可以将其复制回Visual Studio。

答案 4 :(得分:3)

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

答案 5 :(得分:1)

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

答案 6 :(得分:1)

VS 2019

  1. 选择行。最后选定的行是光标所在的位置 - 即使该行为空且没有可见的选择,也会考虑该行。
  2. Shift + Alt + LShift + Alt + S => 升序。
  3. Shift + Alt + LShift + Alt + S(相同的选择相同的键)=> 降序排序。