Отрывалка ненужных референсов
От: Юнусов Булат Россия  
Дата: 12.09.07 09:50
Оценка: +2
Она есть?
Вроде когда то сабж уже хотели
Re: Отрывалка ненужных референсов
От: nikov США http://www.linkedin.com/in/nikov
Дата: 16.09.07 17:24
Оценка:
Здравствуйте, Юнусов Булат, Вы писали:

ЮБ>Она есть?

ЮБ>Вроде когда то сабж уже хотели

Find Dependent Code + Del ?
Re[2]: Отрывалка ненужных референсов
От: Andy77 Ниоткуда  
Дата: 16.09.07 23:06
Оценка:
Здравствуйте, nikov, Вы писали:

N>Здравствуйте, Юнусов Булат, Вы писали:


ЮБ>>Она есть?

ЮБ>>Вроде когда то сабж уже хотели

N>Find Dependent Code + Del ?


Ага, именно оно. Но у меня в солюшене 50 проектов, и у каждого проекта 10-15 зависимостей
Re[3]: Отрывалка ненужных референсов
От: orangy Россия
Дата: 17.09.07 07:45
Оценка:
Здравствуйте, Andy77, Вы писали:

ЮБ>>>Она есть?

ЮБ>>>Вроде когда то сабж уже хотели
N>>Find Dependent Code + Del ?
A>Ага, именно оно. Но у меня в солюшене 50 проектов, и у каждого проекта 10-15 зависимостей
Сделать хочется, но пока рук не хватает на всякие полезные мелочи. Кто-нибудь может возьмется за плагин? Там ничего сложного нет, вобщем-то.
... << RSDN@Home 1.2.0 alpha rev. 655>>
"Develop with pleasure!"
Re[4]: Отрывалка ненужных референсов
От: achmed Удмуртия https://www.linkedin.com/in/nail-achmedzhanov-9907188/
Дата: 03.10.07 09:09
Оценка:
Здравствуйте, orangy, Вы писали:

O>Здравствуйте, Andy77, Вы писали:


ЮБ>>>>Она есть?

ЮБ>>>>Вроде когда то сабж уже хотели
N>>>Find Dependent Code + Del ?
A>>Ага, именно оно. Но у меня в солюшене 50 проектов, и у каждого проекта 10-15 зависимостей
O>Сделать хочется, но пока рук не хватает на всякие полезные мелочи. Кто-нибудь может возьмется за плагин? Там ничего сложного нет, вобщем-то.

Собираюсь начать ...
Никто еще не сделал ?
Re[5]: Отрывалка ненужных референсов
От: orangy Россия
Дата: 03.10.07 12:09
Оценка:
Здравствуйте, achmed, Вы писали:

O>>Сделать хочется, но пока рук не хватает на всякие полезные мелочи. Кто-нибудь может возьмется за плагин? Там ничего сложного нет, вобщем-то.

A>Собираюсь начать ...
Посмотри рефлектором ModuleDependentCodeSearchRequest в сборке JetBrains.ReSharper.CodeView, надо сделать нечто подобное, но только для всех сборок разом. После того, как найдёшь список неиспользованных сборок — хорошо бы показать диалог с галочками, в котором можно выбрать, что удалить. По умолчанию все галочки стоят.
... << RSDN@Home 1.2.0 alpha rev. 655>>
"Develop with pleasure!"
Re[6]: Отрывалка ненужных референсов
От: achmed Удмуртия https://www.linkedin.com/in/nail-achmedzhanov-9907188/
Дата: 03.10.07 12:51
Оценка:
Здравствуйте, orangy, Вы писали:

O>Здравствуйте, achmed, Вы писали:


O>>>Сделать хочется, но пока рук не хватает на всякие полезные мелочи. Кто-нибудь может возьмется за плагин? Там ничего сложного нет, вобщем-то.

A>>Собираюсь начать ...
O>Посмотри рефлектором ModuleDependentCodeSearchRequest в сборке JetBrains.ReSharper.CodeView, надо сделать нечто подобное, но только для всех сборок разом.
Смотрел ... придется делать аналог ModuleUsageSearchProcessor для списка сборок ?
O>После того, как найдёшь список неиспользованных сборок — хорошо бы показать диалог с галочками, в котором можно выбрать, что удалить. По умолчанию все галочки стоят.
+ сделать то же самое для всех проектов в солюшене одним действием и кандидатов показывать с группировкой по проектам.
Я ведь могу использовать Devexpress в плагине?
Re[7]: Отрывалка ненужных референсов
От: orangy Россия
Дата: 03.10.07 13:08
Оценка:
Здравствуйте, achmed, Вы писали:

O>>>>Сделать хочется, но пока рук не хватает на всякие полезные мелочи. Кто-нибудь может возьмется за плагин? Там ничего сложного нет, вобщем-то.

A>>>Собираюсь начать ...
O>>Посмотри рефлектором ModuleDependentCodeSearchRequest в сборке JetBrains.ReSharper.CodeView, надо сделать нечто подобное, но только для всех сборок разом.
A>Смотрел ... придется делать аналог ModuleUsageSearchProcessor для списка сборок ?
Боюсь что да, в текущем виде его не переиспользовать. Он же проверяет, что данная референса требует определенного модуля. Тебе нужно собрать все модули, которых требует данная референса.

O>>После того, как найдёшь список неиспользованных сборок — хорошо бы показать диалог с галочками, в котором можно выбрать, что удалить. По умолчанию все галочки стоят.

A>+ сделать то же самое для всех проектов в солюшене одним действием и кандидатов показывать с группировкой по проектам.
A>Я ведь могу использовать Devexpress в плагине?
Насколько я понимаю, впрямую не можешь. Но там есть TreeModelPresentableView и его тебе должно хватить.
... << RSDN@Home 1.2.0 alpha rev. 655>>
"Develop with pleasure!"
Re[8]: Отрывалка ненужных референсов
От: achmed Удмуртия https://www.linkedin.com/in/nail-achmedzhanov-9907188/
Дата: 03.12.07 13:44
Оценка:
Здравствуйте, orangy, Вы писали:

A>>Я ведь могу использовать Devexpress в плагине?

O>Насколько я понимаю, впрямую не можешь. Но там есть TreeModelPresentableView и его тебе должно хватить.


Наконец то добрался ...

Появились вопросы:
1) Как удалить референс у проекта?
Делаю так:

IProject project = moduleReference.GetProject();
project.RemoveModuleReference(moduleReference);


В итоге референс удаляется только в модели решарпера, в UI студии референс остается.

2) Что дает использование инфраструктыры IRefactoringWorkflow + RefactoringActionUtil.ExecuteRefactoring кроме UI?
Re[9]: Отрывалка ненужных референсов
От: achmed Удмуртия https://www.linkedin.com/in/nail-achmedzhanov-9907188/
Дата: 10.12.07 12:51
Оценка:
Здравствуйте, achmed, Вы писали:

A>Наконец то добрался ...


A>Появились вопросы:


[skiped]

up
Re[9]: Отрывалка ненужных референсов
От: dsha  
Дата: 10.12.07 19:32
Оценка: 12 (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!"
Re[10]: Отрывалка ненужных референсов
От: achmed Удмуртия https://www.linkedin.com/in/nail-achmedzhanov-9907188/
Дата: 10.12.07 20:46
Оценка:
Здравствуйте, dsha, Вы писали:

D>К сожалению, простого способа сделать это в 3.0 нет. IProject.RemoveModuleReference действительно удаляет референс только из модели Решарпера. Что можно сделать:


[skiped]

Спасибо! Попробуем.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.