Какой C # IDE предлагает наиболее широкий доступ к AST? - PullRequest
2 голосов
/ 04 января 2011

Основная часть дипломной работы бакалавра, которую я сейчас пишу, представляет собой плагин для C # IDE, который предлагает несколько рефакторингов (речь идет о чем-то большем, чем просто рефакторинг, но я хочу, чтобы это было пока просто).*

До сих пор я всегда работал с Visual Studio.Однако я слышал, что их доступ к AST довольно неудобен.Альтернативы - MonoDevelop и SharpDevelop.Еще один способ работы с Visual Studios AST - доступ к нему через пользовательский плагин ReSharper.

Есть ли у кого-нибудь из вас опыт написания плагинов для любого из этих целевых приложений?Как вы думаете?Я ценю все советы и неудобства.

Спасибо, TH

Ответы [ 4 ]

2 голосов
/ 05 января 2011

Преимущество использования MonoDevelop или SharpDevelop заключается в том, что они имеют открытый исходный код, поэтому вы можете быть уверены, что имеете полный доступ к AST - вы можете войти в ядро ​​и изменить вещи, если это необходимо. Еще одним преимуществом является то, что они на 100% управляемый код, поэтому их гораздо проще разрабатывать и отлаживать. Кроме того, у вас больше шансов завладеть основными разработчиками и задать им подробные вопросы.

Если вам интересно работать с MonoDevelop, я бы порекомендовал вам осуществить рефакторинг непосредственно в существующем аддоне Refactoring. Мы хотели бы иметь больше возможностей рефакторинга:)

Кодовая база претерпела некоторые изменения в master, потому что мы переключились на новый AST и парсер, основанный на парсере Mono C #, и рефакторинг еще не перенесен. Я бы порекомендовал вам зайти в наш список рассылки или IRC и задать там более конкретные вопросы, чтобы мы могли дать вам более конкретные указания.

1 голос
/ 31 августа 2011

Лучший доступ к AST для рефакторингов предлагает NRefactory 5 , полный переписанный вариант предыдущей версии NRefactory (которая используется как в SharpDevelop, так и в MonoDevelop). Для SharpDevelop мы планируем использовать новый NRefactory в SharpDevelop 5.0; и MonoDevelop также со временем перейдет на него (MonoDevelop уже использует новый AST, но еще не использует новый тип системы / семантический анализ).

Основной целью этого переписывания было:

  • Предоставляет расширенный AST с информацией о местоположении для каждого токена, что упрощает написание рефакторингов
  • Улучшение производительности семантического анализа
  • Устранить некоторые плохие проектные решения из предыдущей версии (IExpressionFinder и как обрабатываются ссылочные сборки)

В будущем, возможно, вы захотите взглянуть на службу компиляции от Microsoft.

1 голос
/ 04 января 2011

Я считаю, что VS 2010 имеет очень хорошую встроенную поддержку плагинов, использующих MEF. Вот руководство: http://msdn.microsoft.com/en-us/library/dd885242.aspx

Вы также можете использовать Devexpress DXCore, это бесплатно с CodeRush Express.

0 голосов
/ 06 января 2011

Также не забудьте оформить ReSharper из http://www.jetbrains.com/resharper, который является плагином для VS, который добавляет множество рефакторингов

...