Editar: Tenga en cuenta que esta solución no funciona en VS2013 o superior, ya que se eliminó el soporte para macros.
No necesita necesariamente codificar un complemento VS para hacer esto: Visual Studio tiene macros incorporadas. Para comenzar, utilice Herramientas, Macros, Grabar macro temporal.
Aquí hay un comando 'Ordenar Lines Pirateé basé juntos en el código que Grabar macro Temporal me dio:
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
está utilizando la propiedad de cambiar TextSelection.Text el texto. Esta suele ser una razón de una ejecución muy lenta. Puede tomar incluso varios segundos. La mejor manera es usar TextSelection. Insertar y eliminar métodos. No lo he probado, pero recomiendo reemplazar la línea: Selection.Text = String.Join (Environment.NewLine, Lines) con 2 líneas: Selection.Delete Selection.Insert (String.Join (Environment.NewLine, Líneas)) Luego puede colocar su macro en la barra de herramientas o en el menú (http://www.helixoft.com/blog/archives/7) o asignarle un atajo de tecla (http://www.helixoft.com/blog)/archives/8) –
@Peter, gracias. No tardé mucho escribiendo esto: si agrega una respuesta al OP la votaré –
La sugerencia de Peter cambió mi tiempo de ejecución de ~ 30 segundos a casi instantáneo, y también impidió que se generaran algunas líneas de basura. –