Редактировать: Обратите внимание, что это решение не работает на 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