hola estoy haciendo una extensión para el estudio visual y lo específico que necesito es obtener el texto seleccionado de las ventanas del editor para su posterior procesamiento. ¿Alguien sabe qué interfaz o servicio tiene esto? Anteriormente necesito localizar la ruta de la solución abierta y para eso solicito un servicio que implementa IVsSolution, por lo que para este otro problema, creo que debe haber algún servicio que me proporcione esta información.obtener el texto seleccionado de la ventana del editor ... extensión de estudio visual
7
A
Respuesta
3
interior de la OnlayoutChanged el siguiente código se mostrará un mensaje con el código seleccionado:
if (_view.Selection.IsEmpty)
{
return;
}
else
{
string selectedText = _view.Selection.StreamSelectionSpan.GetText();
MessageBox.Show(selectedText);
}
en otro sitio acaba de obtener el viewhost y es el _view del tipo (IWpfTextView)
10
Para aclarar " acaba de obtener el viewhost "en la respuesta de Stacker, aquí está el código completo de cómo puede obtener la vista del editor actual, y desde allí el ITextSelection, desde cualquier otro lugar en un VSPackage de Visual Studio 2010. En particular, utilicé esto para obtener la selección actual de una devolución de llamada de comando de menú.
IWpfTextViewHost GetCurrentViewHost()
{
// code to get access to the editor's currently selected text cribbed from
// http://msdn.microsoft.com/en-us/library/dd884850.aspx
IVsTextManager txtMgr = (IVsTextManager)GetService(typeof(SVsTextManager));
IVsTextView vTextView = null;
int mustHaveFocus = 1;
txtMgr.GetActiveView(mustHaveFocus, null, out vTextView);
IVsUserData userData = vTextView as IVsUserData;
if (userData == null)
{
return null;
}
else
{
IWpfTextViewHost viewHost;
object holder;
Guid guidViewHost = DefGuidList.guidIWpfTextViewHost;
userData.GetData(ref guidViewHost, out holder);
viewHost = (IWpfTextViewHost)holder;
return viewHost;
}
}
/// Given an IWpfTextViewHost representing the currently selected editor pane,
/// return the ITextDocument for that view. That's useful for learning things
/// like the filename of the document, its creation date, and so on.
ITextDocument GetTextDocumentForView(IWpfTextViewHost viewHost)
{
ITextDocument document;
viewHost.TextView.TextDataModel.DocumentBuffer.Properties.TryGetProperty(typeof(ITextDocument), out document);
return document;
}
/// Get the current editor selection
ITextSelection GetSelection(IWpfTextViewHost viewHost)
{
return viewHost.TextView.Selection;
}
Aquí hay documentación de MSDN para IWpfTextViewHost, ITextDocument y ITextSelection.
Cuestiones relacionadas
- 1. ¿Hay alguna manera de alojar el editor de código C# en una ventana de extensión de estudio visual
- 2. En el estudio visual cómo seleccionar palabras en el editor de texto usando el teclado
- 3. Editor de texto independiente con la funcionalidad del editor de Visual Studio
- 4. Cómo obtener la posición absoluta del cursor de texto en la extensión de Visual Studio 2010
- 5. Cómo deshabilitar la extensión de estudio visual de Style Cop?
- 6. Leer documento de texto dentro del proyecto de estudio visual
- 7. Extensión de Visual Studio Text Editor
- 8. Cómo recuperar el texto seleccionado de la ventana activa
- 9. Obtener texto resaltado de la ventana activa
- 10. Obtener el texto resaltado/seleccionado
- 11. ventana interactiva para ejecutar dos comandos en el estudio visual
- 12. Probar extensiones de estudio visual
- 13. Cómo obtener el texto seleccionado de CUALQUIER ventana (usando la Automatización de IU) - C#
- 14. HTML del texto seleccionado
- 15. Ordenar texto seleccionado del menú contextual de Visual Studio
- 16. vim: inserte el texto seleccionado en la línea de comando?
- 17. Extensión de Visual Studio con ventana de acoplamiento
- 18. Extender estudio visual
- 19. Jquery para obtener el texto seleccionado de la lista desplegable
- 20. dónde está la guía de usuario del estudio visual
- 21. Teoría del editor de texto
- 22. Encuentra el tipo de artículo en la posición actual en una ventana del editor de C#
- 23. ¿Cómo obtengo el texto seleccionado de la ventana enfocada usando la API Win32 nativa?
- 24. Python - obtener texto de la ventana
- 25. Cómo extraer el texto del elemento seleccionado en la listaVer
- 26. Obtener texto seleccionado en un cuadro de texto
- 27. ¿Cómo se manipula el texto seleccionado a través de una extensión de Firefox?
- 28. Cómo mover la ventana de la ventana de texto al obtener el foco?
- 29. ¿Cómo cambiar el color del texto seleccionado?
- 30. Complemento de Visual Studio 2010 - Agregar un menú contextual a la ventana del editor