hi tôi đang tạo phần mở rộng cho studio trực quan và điều cụ thể mà tôi cần là lấy văn bản được chọn của cửa sổ trình chỉnh sửa để xử lý tiếp. Ai đó biết giao diện hoặc dịch vụ nào có giao diện này? Trước đây tôi cần xác định đường dẫn của giải pháp mở và tôi yêu cầu một dịch vụ triển khai IVsSolution, vì vậy vấn đề khác tôi phải có một số dịch vụ cung cấp cho tôi thông tin này.lấy văn bản đã chọn của cửa sổ trình biên tập .. tiện ích mở rộng studio mở rộng
7
A
Trả lời
3
bên trong OnlayoutChanged đoạn mã sau sẽ bật lên một thông điệp với mã chọn:
if (_view.Selection.IsEmpty)
{
return;
}
else
{
string selectedText = _view.Selection.StreamSelectionSpan.GetText();
MessageBox.Show(selectedText);
}
bất cứ nơi nào khác chỉ nhận được viewhost và của nó _view loại (IWpfTextView)
10
Để làm rõ " chỉ cần có được viewhost "trong câu trả lời của Stacker, đây là mã đầy đủ cho cách bạn có thể có được giao diện trình soạn thảo hiện tại, và từ đó ITextSelection, từ bất cứ nơi nào khác trong Visual Studio 2010 VSPackage. Đặc biệt, tôi sử dụng điều này để có được lựa chọn hiện tại từ một lệnh gọi lại 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;
}
Dưới đây là tài liệu MSDN cho IWpfTextViewHost, ITextDocument, và ITextSelection.
Các vấn đề liên quan
- 1. Tiện ích mở rộng của Google Chrome - Cửa sổ bật lên có lập trình mở
- 2. Tiện ích mở rộng của Firefox: Nhận văn bản đã chọn
- 3. Mở URL trong tab/cửa sổ hiện tại từ Tiện ích mở rộng của Firefox
- 4. Bạn có thể tập trung cửa sổ bật lên từ Tiện ích mở rộng của Chrome
- 5. Tiện ích mở rộng của Chrome + Dart
- 6. Tiện ích mở rộng trình duyệt Android
- 7. Cách tiện ích mở rộng có được văn bản được chọn trong trình xem pdf chrome?
- 8. Tiện ích mở rộng PSake?
- 9. Tiện ích mở rộng của Google Chrome - tập lệnh nền
- 10. Tiện ích mở rộng của Chrome: biểu tượng tiện ích mở rộng onclick, mở popup.html trong tab mới
- 11. cửa sổ bật lên ở menu ngữ cảnh của tiện ích mở rộng chrome
- 12. Tiện ích mở rộng Intellisense tùy chỉnh
- 13. Chuyển đổi Tiện ích mở rộng của Google Chrome sang tiện ích mở rộng của Firefox hoặc Safari
- 14. .Tiện ích mở rộng tệp không được biên soạn
- 15. Tiện ích mở rộng của Firefox: kiểm tra xem cửa sổ có bị thu nhỏ
- 16. Tiện ích mở rộng của Firefox để đóng cửa sổ firefox
- 17. Khôi phục tương tác với Tiện ích mở rộng Git
- 18. Mở rộng Visual Studio 2010 mở rộng mã
- 19. Tiện ích mở rộng của Chrome - Hình ảnh của tiện ích mở rộng trên Trang cài đặt
- 20. ms mở rộng tập tin văn phòng
- 21. Tiện ích mở rộng của Python và OpenMP C
- 22. Tiện ích mở rộng của Chrome + Devise + Rails App - Đặt yêu cầu được xác thực từ tiện ích mở rộng?
- 23. Tải tiện ích mở rộng hình ảnh
- 24. Làm cách nào để bạn thao tác văn bản đã chọn qua tiện ích mở rộng Firefox
- 25. Tải ImageFormat từ Tiện ích mở rộng Tập tin
- 26. Tôi làm cách nào để mở cửa sổ bật lên của tiện ích mở rộng bằng JavaScript?
- 27. Tiện ích mở rộng của Google Chrome - Truy cập DOM
- 28. .tiện ích mở rộng gốc của mạng cho node.js
- 29. Bật tiện ích mở rộng trên trình đổ bóng Three.js
- 30. Cách xác định thư mục của tiện ích mở rộng