Hallo, ich mache eine Erweiterung für Visual Studio und die spezifische Sache, die ich brauche, ist den ausgewählten Text des Editor Windows für die weitere Verarbeitung. Jemand weiß, welche Schnittstelle oder welcher Dienst das hat? Zuvor muss ich den Pfad der offenen Lösung suchen und dafür frage ich nach einem Dienst, der IVsSolution implementiert, so dass ich für dieses andere Problem, dass es einen Dienst geben muss, der mir diese Informationen bereitstellt.erhalten Sie den ausgewählten Text des Editor-Fenster..visual Studio-Erweiterung
7
A
Antwort
3
innerhalb des OnlayoutChanged der folgende Code eine Nachricht mit dem Code Pop-up ausgewählt:
if (_view.Selection.IsEmpty)
{
return;
}
else
{
string selectedText = _view.Selection.StreamSelectionSpan.GetText();
MessageBox.Show(selectedText);
}
anderswo nur bekommen viewhost und seine die _view vom Typ (IWpfTextView)
10
Um zu klären " Holen Sie sich einfach den viewhost "in Stacker's Antwort, hier ist der vollständige Code, wie Sie die aktuelle Editor-Ansicht und von dort die ITextSelection von irgendwo anders in einem Visual Studio 2010 VSPackage bekommen können. Insbesondere habe ich damit die aktuelle Auswahl aus einem Menübefehl Rückruf abgerufen.
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;
}
Hier docs MSDN für IWpfTextViewHost, ITextDocument und ITextSelection.
Verwandte Themen
- 1. Erhalten Sie den ausgewählten Artikel
- 2. C#: So erhalten Sie den Index des ausgewählten Elements (und den Text) in ListBox
- 3. Chrome Extension erhalten ausgewählten Text
- 4. Protokollfehler in visueller Studioerweiterung
- 5. So erhalten Sie den Optionswert des ausgewählten Elements
- 6. jQuery den ausgewählten Text
- 7. Erhalten des übergeordneten Knoten für ausgewählten Text mit rangy Bibliothek
- 8. So erhalten Sie den ausgewählten Eingang: Radio
- 9. Erhalten Sie ausgewählten Text innerhalb eines Textelements in Oracle-Formularen
- 10. erhalten ausgewählten Text aus einem anderen Rahmen
- 11. Get Wert und Text des ausgewählten Kontrollkästchen
- 12. erhalten Sie die Registerkarte Text auf ausgewählten jquery ui Tabs
- 13. So erhalten Sie ausgewählten Text in WebView Android
- 14. erhalten ausgewählten Text von einem uiwebview Xcode
- 15. Select2 kennt den entsprechenden Text des ausgewählten Werts nicht
- 16. Erhalten Sie ausgewählten Text mit Ausnahme von nicht auswählbaren Elementen
- 17. Wie kann ich den ausgewählten Wert des Optionsfelds erhalten?
- 18. So rufen Sie den ausgewählten Text aus dem aktiven Fenster
- 19. reagieren-typeahead: Erhalten Sie die ID des ausgewählten Elements
- 20. Wie erhalten Sie ausgewählten Text in Emacs Lisp?
- 21. Wie erhalten Sie ausgewählten Text von Editiertext in Android?
- 22. Eclipse den ausgewählten Text in Klammern umbrechen
- 23. So erhalten Sie den ausgewählten Wert aus Breadcrumbs
- 24. So erhalten Sie den ausgewählten Wert der Doppelnummernbereichsauswahl
- 25. So erhalten Sie Text außerhalb des Tags
- 26. Setzen Sie den ausgewählten Text mit Tags fett
- 27. Android - So erhalten Sie den ausgewählten Dateinamen aus dem Dokument
- 28. So erhalten Sie den Geltungsbereich des Gitters
- 29. Visual Studio 2010-Plug-in - Hinzufügen eines Kontextmenüs zum Editorfenster
- 30. Wie erhalten Sie ausgewählten Zellentext von TcxGrid?