Является ли условный элемент CodeElement в .NET? - PullRequest
0 голосов
/ 21 ноября 2010

Может ли условный элемент CodeElement в .NET? Я почесал эту страницу: http://msdn.microsoft.com/en-us/library/envdte.vscmelement(VS.80).aspx

Ничего не нашел по этому поводу.

Я пишу макрос / надстройку для достижения следующего: Если курсор находится в начальной точке оператора if-условия, я хочу, чтобы соответствующий оператор End If был выделен. Если условные элементы (if, switch и т. Д.) Могут быть представлены как тип CodeElement, тогда задание проще.

Ответы [ 2 ]

1 голос
/ 21 ноября 2010

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

Извините.

0 голосов
/ 29 декабря 2010

Нет, как сказал Тиморес, элемент кода имеет гранулярность метода или свойства.Чтобы сделать то, что вам нужно, вам нужно фактическое дерево абстрактного синтаксиса кода, просматриваемого в редакторе.

Самый простой способ выполнить то, что вам нужно, это, вероятно, плагин DXCore - смотрите страницы сообщества DXCore и / или спрашивайте там о дополнительной помощи.После того, как вы установили DXCore, вы можете посмотреть в меню DevExpress в Visual Studio для дерева браузера, где вы увидите Узел Абстрактного Синтаксического Дерева, которое представляет вашу инструкцию «если», а затем посмотрите примеры кода того, как вы можетевзаимодействовать с ним.

Я должен отметить, что в Resharper уже есть довольно хорошая подсветка для соответствия скобкам, а также есть плагин CodeKana VS, который выделяет каждый тип оператора управления (если/ while / etc) разных цветов.

...