2014-12-17 3 views
0

Я написал расширение для расчесывания файлов кода по строкам, чтобы обнаружить определенные шаблоны. Проблема, которую я вижу, заключается в том, что строки в сложенных разделах пропускаются при использовании TextSelection.LineDown() или аналогичных. Я знаю, что существует TextSelection.OutlineSection() для создания таких разделов, но есть ли способ обнаружить и, возможно, расширить или свернуть их?Обнаружение разделов в пределах EnvDTE.Document

+0

Похоже, вы больше заинтересованы в тексте документа, чем в выделенных регионах документа. Если это правильное утверждение, то вы, вероятно, не хотите вообще манипулировать общими областями (это будет отвлекать пользователей), и вместо этого следует задать вопрос относительно основной истинной проблемы, которую вы пытаетесь решить. –

+0

@SamHarwell. Вы правы, что меня не интересуют области выделения, но проблема, с которой я сталкиваюсь, заключается в том, что «TextSelection» делает это плохо. Основная проблема заключается в том, как чисто читать текстовый документ по строкам, если 'TextSelection.LineDown()' может перемещаться из строки «TextSelection» с 4 по 13, если он встречает свернутый очерченный выбор в строках 5-13. – Jake

+0

'TextSelection' - это не то, что вы хотите использовать. Вы должны задать новый вопрос относительно получения текста документа. Было бы очень полезно, если бы вы могли указать нам на свой код или предоставить подробную информацию о версиях (версиях) Visual Studio, которые вы хотите поддержать, и о том, как вы планируете распространять полученное расширение. –

ответ

1

В вашем сценарии вам не нужно использовать TextSelection, поскольку это связано с ... выбором текста. Чтобы пересечь строки файла кода, с учетом EnvDTE.TextDocument, у вас есть свойство TextDocument.StartPoint для получения EnvDTE.TextPoint, а затем вы создаете EnvDTE.EditPoint с TextPoint.CreateEditPoint(). С EnvDTE.EditPoint вы можете использовать GetText (...), MoveToXXX (...) и т. Д. Редактирование точек не влияет на свернутый текст.

+0

Это сделало трюк, спасибо, что указали EditPoint, поскольку это было именно то, что мне нужно. – Jake

 Смежные вопросы

  • Нет связанных вопросов^_^