Сортировать выделенный текст из контекстного меню Visual Studio

В настоящее время VS имеет очень полезную функцию: сортировку по использованию (C #).

Я хочу такую ​​же функциональность для любого произвольного текста, например - узлов XML в файлах конфигурации.

Насколько сложно это реализовать? VS Addin, верно? Можно ли вызвать некоторый VS API, который используется для сортировки употреблений?

39
задан abatishchev 28 July 2010 в 07:34
поделиться

1 ответ

Изменить: Обратите внимание, что это решение не работает на 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
24
ответ дан 27 November 2019 в 02:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: