Здравствуйте, nikov, Вы писали:
N>Здравствуйте, Юнусов Булат, Вы писали:
ЮБ>>Она есть? ЮБ>>Вроде когда то сабж уже хотели
N>Find Dependent Code + Del ?
Ага, именно оно. Но у меня в солюшене 50 проектов, и у каждого проекта 10-15 зависимостей
Здравствуйте, Andy77, Вы писали:
ЮБ>>>Она есть? ЮБ>>>Вроде когда то сабж уже хотели N>>Find Dependent Code + Del ? A>Ага, именно оно. Но у меня в солюшене 50 проектов, и у каждого проекта 10-15 зависимостей
Сделать хочется, но пока рук не хватает на всякие полезные мелочи. Кто-нибудь может возьмется за плагин? Там ничего сложного нет, вобщем-то.
Здравствуйте, orangy, Вы писали:
O>Здравствуйте, Andy77, Вы писали:
ЮБ>>>>Она есть? ЮБ>>>>Вроде когда то сабж уже хотели N>>>Find Dependent Code + Del ? A>>Ага, именно оно. Но у меня в солюшене 50 проектов, и у каждого проекта 10-15 зависимостей O>Сделать хочется, но пока рук не хватает на всякие полезные мелочи. Кто-нибудь может возьмется за плагин? Там ничего сложного нет, вобщем-то.
Здравствуйте, achmed, Вы писали:
O>>Сделать хочется, но пока рук не хватает на всякие полезные мелочи. Кто-нибудь может возьмется за плагин? Там ничего сложного нет, вобщем-то. A>Собираюсь начать ...
Посмотри рефлектором ModuleDependentCodeSearchRequest в сборке JetBrains.ReSharper.CodeView, надо сделать нечто подобное, но только для всех сборок разом. После того, как найдёшь список неиспользованных сборок — хорошо бы показать диалог с галочками, в котором можно выбрать, что удалить. По умолчанию все галочки стоят.
Здравствуйте, orangy, Вы писали:
O>Здравствуйте, achmed, Вы писали:
O>>>Сделать хочется, но пока рук не хватает на всякие полезные мелочи. Кто-нибудь может возьмется за плагин? Там ничего сложного нет, вобщем-то. A>>Собираюсь начать ... O>Посмотри рефлектором ModuleDependentCodeSearchRequest в сборке JetBrains.ReSharper.CodeView, надо сделать нечто подобное, но только для всех сборок разом.
Смотрел ... придется делать аналог ModuleUsageSearchProcessor для списка сборок ? O>После того, как найдёшь список неиспользованных сборок — хорошо бы показать диалог с галочками, в котором можно выбрать, что удалить. По умолчанию все галочки стоят.
+ сделать то же самое для всех проектов в солюшене одним действием и кандидатов показывать с группировкой по проектам.
Я ведь могу использовать Devexpress в плагине?
Здравствуйте, achmed, Вы писали:
O>>>>Сделать хочется, но пока рук не хватает на всякие полезные мелочи. Кто-нибудь может возьмется за плагин? Там ничего сложного нет, вобщем-то. A>>>Собираюсь начать ... O>>Посмотри рефлектором ModuleDependentCodeSearchRequest в сборке JetBrains.ReSharper.CodeView, надо сделать нечто подобное, но только для всех сборок разом. A>Смотрел ... придется делать аналог ModuleUsageSearchProcessor для списка сборок ?
Боюсь что да, в текущем виде его не переиспользовать. Он же проверяет, что данная референса требует определенного модуля. Тебе нужно собрать все модули, которых требует данная референса.
O>>После того, как найдёшь список неиспользованных сборок — хорошо бы показать диалог с галочками, в котором можно выбрать, что удалить. По умолчанию все галочки стоят. A>+ сделать то же самое для всех проектов в солюшене одним действием и кандидатов показывать с группировкой по проектам. A>Я ведь могу использовать Devexpress в плагине?
Насколько я понимаю, впрямую не можешь. Но там есть TreeModelPresentableView и его тебе должно хватить.
Здравствуйте, orangy, Вы писали:
A>>Я ведь могу использовать Devexpress в плагине? O>Насколько я понимаю, впрямую не можешь. Но там есть TreeModelPresentableView и его тебе должно хватить.
Наконец то добрался ...
Появились вопросы:
1) Как удалить референс у проекта?
Делаю так:
Здравствуйте, achmed, Вы писали:
A>Здравствуйте, orangy, Вы писали:
A>>>Я ведь могу использовать Devexpress в плагине? O>>Насколько я понимаю, впрямую не можешь. Но там есть TreeModelPresentableView и его тебе должно хватить.
A>Наконец то добрался ...
A>Появились вопросы: A>1) Как удалить референс у проекта? A>Делаю так:
A>
A>IProject project = moduleReference.GetProject();
A>project.RemoveModuleReference(moduleReference);
A>
A>В итоге референс удаляется только в модели решарпера, в UI студии референс остается.
К сожалению, простого способа сделать это в 3.0 нет. IProject.RemoveModuleReference действительно удаляет референс только из модели Решарпера. Что можно сделать:
1) Получить EnvDTE.Project через ProjectModelSynchronizer.GetProjectInfoByProject и далее GetExtProject() у VSProjectInfo.
2) Взять Project.Object, привести его к VSLangProj.VSProject
3) Из коллекции VSProject.References получить VSLangProj.Reference, имя (Name) которого совпадает с IModuleReference.Name
4) Сделать VSLangProj.Reference.Remove
Скорее всего, "настоящий" RemoveModuleReference появится в 4.0 (он работал бы так же, как описанный алгоритм, за исключением пункта 3).
Regards,
Dmitry
JetBrains, Inc.
"Develop with pleasure!"
Здравствуйте, dsha, Вы писали:
D>К сожалению, простого способа сделать это в 3.0 нет. IProject.RemoveModuleReference действительно удаляет референс только из модели Решарпера. Что можно сделать: