Использование Visual Studio DTE для анализа исходного кода - PullRequest
1 голос
/ 26 августа 2010

В моем магазине есть интересный стандарт кодирования, который говорит, что мы не сокращаем имена типов с помощью оператора using, они должны быть полностью квалифицированы (поэтому каждый раз, когда вы ссылаетесь на тип, вы используете MyRootNamespace.ANamespace.MaybeAnotherNamespace.MyClassName , а не просто " MyClassName ").

Любите это или ненавидите, вот как мы катимся, и я ничего не могу с этим поделать.

Конечно, вы попадаете вверх по течению с Visual Studio, потому что все инструменты редактирования, которые генерируют код для вас (завершение члена, завершение события и т. Д.), Используют короткие имена типов везде, где это возможно.

Я хотел бы создать какое-то расширение или макрос для Visual Studio, который исправит частичное объявление и заменит его полностью определенным именем типа.

Я начал пытаться создать макрос, которыйбудет работать для символа, на котором находится ваш курсор (хотя я хотел бы иметь возможность сканировать весь файл, или, возможно, просто перехватить кодs вы печатаете).

Я обнаружил, что могу получить члены класса с помощью FileCodeModel2.GetElementFromPoint (), но этот метод будет работать только на членах класса - он не подберет объявление переменной внутриметод, например.

Есть ли какой-то другой способ, которым я могу добраться до этого?В настоящее время я использую макросы, но будет ли более подходящей новая модель VS Extension?Я использую Visual Studio 2010 Ultimate, и мне нужно только нацелиться на код C #.

1 Ответ

1 голос
/ 26 августа 2010

Объектная модель позволяет вам делать много вещей, которые доступны в IDE. Но так как такая функция недоступна в IDE, вам здесь не повезло, я боюсь.

Единственное, что вы можете сделать автоматически с помощью директив using, это отсортировать их и удалить те, которые не используются.

Обновление

Как представляется, можно получить полностью определенное имя типа из макроса . Однако в особых случаях, таких как генерики, это кажется проблематичным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...