Visual Studio 对VisualStudio上下文菜单中的选定文本进行排序

xriantvc  于 2023-03-24  发布在  其他
关注(0)|答案(7)|浏览(216)

目前VS有一个非常有用的功能:排序使用(C#)。
我想为任何随机文本提供相同的功能,例如配置文件中的- XML节点。
实现起来有多复杂?VS插件,对吧?有没有可能调用一些用于排序的VS API?

kqlmhetl

kqlmhetl1#

VS 2019&VS 2022

1.选择行,最后一个选中的行是光标所在的位置,即使该行为空,没有可见的选择,也会考虑该行。
1.Shift + Alt + L,Shift + Alt + S=〉升序排序。
1.Shift + Alt + L,Shift + Alt + S(相同的选择相同的键)=〉降序排序。
也可以从菜单(@sharpener)调用该命令:编辑|高级|行排序
此快捷方式适用于最常用的方案:Visual C++6键盘Map方案(可能还有其他方案)。您可以在***选项中检查您的方案|键盘|应用以下附加键盘Map方案:***。
您可以在***选项中查看快捷方式|键盘|显示包含以下内容的命令:Edit.SortLines|所选命令的快捷方式:***。

bwleehnv

bwleehnv2#

Visual Studio的一个不错的插件是Code Maid
您选择一些行并从上下文菜单“排序行”中选择

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

ergxz8rk

ergxz8rk3#

**编辑:**请注意,此解决方案不适用于VS2013或更高版本,因为对宏的支持已被删除。

你不一定需要编写一个VS插件来做到这一点:Visual Studio内置了宏。若要开始,请使用“工具”、“宏”、“记录临时宏”。
下面是我根据Record Temporary Macro给我的代码编写的“Sort Lines”命令:

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
mznpcxlj

mznpcxlj4#

刚刚发现一个很好的免费插件:Menees VS Tools 2012(或2010 ver)-做的正是这一点和一些更多的文本技巧.有一些小的负面,当我安装它,但在评论页面上留下评论后,它得到了修复在几天内.等待去!=)
现在有一个2017版本:Menees VS Tools 2017

tzdcorbm

tzdcorbm5#

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

6fe3ivhb

6fe3ivhb6#

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

col17t5w

col17t5w7#

我个人使用的是Mads Kristensen的Web Essentials扩展。你只需要选择你想排序的行,然后Alt+3或Alt+4(asc/desc)。

相关问题