Witam, tworzę przedłużenie do studia wizualnego i konkretną rzeczą, której potrzebuję, jest pobranie wybranego tekstu okna edytora do dalszego przetwarzania. Ktoś wie, co to ma interfejs lub usługa? Poprzednio muszę znaleźć ścieżkę otwartego rozwiązania i dlatego proszę o usługę implementującą IVsSolution, więc dla tego drugiego problemu muszę wiedzieć, że musi istnieć jakaś usługa, która dostarcza mi tych informacji.Pobierz zaznaczony tekst okna edytora. Wizualne rozszerzenie studyjne
7
A
Odpowiedz
3
wewnątrz OnlayoutChanged poniższy kod pojawi się komunikat z kodem wybrany:
if (_view.Selection.IsEmpty)
{
return;
}
else
{
string selectedText = _view.Selection.StreamSelectionSpan.GetText();
MessageBox.Show(selectedText);
}
nigdzie indziej po prostu uzyskać viewhost i Jego _view typu (IWpfTextView)
10
Aby wyjaśnić " po prostu uzyskaj widok "w odpowiedzi Stackera, tutaj jest pełny kod, w jaki sposób można uzyskać aktualny widok edytora, a stamtąd ITextSelection, z dowolnego miejsca w VSPackage Visual Studio 2010. W szczególności użyłem tego, aby pobrać aktualny wybór z wywołania polecenia menu.
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;
}
Oto docs MSDN dla IWpfTextViewHost, ITextDocument i ITextSelection.
Powiązane problemy
- 1. Rozszerzenie Chrome otrzymuję zaznaczony tekst
- 2. Rozszerzenie przeglądarki Firefox: Uzyskaj zaznaczony tekst
- 3. Pobierz zaznaczony tekst opcji z JavaScript
- 4. jQuery zastępuje zaznaczony tekst
- 5. Wyczyść tekst zaznaczony ComboBox
- 6. jQuery ustawić zaznaczony tekst
- 7. Odznacz zaznaczony tekst w JTextPane
- 8. pobierz i zainstaluj wizualne studio 2008
- 9. Node.js pobierz rozszerzenie pliku
- 10. Pobierz rozszerzenie chrome url
- 11. Jak przenieść zaznaczony tekst Lewy lub prawy
- 12. Jak uzyskać zaznaczony tekst z AccessibilityNodeInfo
- 13. Czy mogę uzyskać zaznaczony tekst w JQuery?
- 14. jQuery zawija zaznaczony tekst w textarea
- 15. Zapisuje zaznaczony tekst (linia częściowa) z Vim
- 16. Przeciągnij zaznaczony tekst, aby go przenieść?
- 17. Autouzupełnianie jquery otrzymujesz zaznaczony tekst pozycji
- 18. Rozszerzenie edytora tekstu w Visual Studio
- 19. Pobierz kolor tła okna
- 20. Rozszerzenie chrome, wysokość okna wyskakującego
- 21. Jak programowo zbudować rozwiązanie studyjne?
- 22. Pobierz tekst wewnątrz przycisku.
- 23. Pobierz tekst w getElementsByClassName
- 24. SSMS Zmień połączenie dla okna edytora zapytań
- 25. Ustaw tekst i pobierz tekst ze schowka
- 26. Skopiuj tekst z edytora nano do powłoki
- 27. Dostosowywanie okna dialogowego poprzez rozszerzenie okna dialogowego lub AlertDialog
- 28. Pobierz zawartość skryptu jako tekst
- 29. Pobierz tekst z zakresu jQuery
- 30. Pobierz tekst z asp: textbox