Re[4]: Обсуждение dotPeek
От: AK107  
Дата: 14.05.11 16:47
Оценка:
Здравствуйте, qxWork, Вы писали:

W>Чему мешает размер дистрибутива? Понятно, что из соображений общей эстетики лучше меньше, но все-таки?

ну вот скачивал я его со скроростью 60 КБ/сек с вашего сайта учитывая что инет мой 15 Мбит/сек.
ну и кроме того, чем больше вес, тем долше будет грузится независимо от ваших оптимизаций

W>Над этим работаем, скоро будет фикс.

сразу отвечу про "else" здесь — да действительно мешает — лишние блоки всегда заслоняют собой суть.

W>Goto symbol (Ctrl+Alt+Shift+N), казалось, покрывает с запасом, особенно с учетом сложносочиненных конструкций.

кстати да! клавиатурные комбинации — это просто жесть. вы правда можете нажать выдленное? особенно если учесть, что это самое главное (после пробела) в рефлеткоророподобных программах.

кстати с шорткатом декомпиляции неразобрался как следует с этими GotoImplementation/Declaration — в рефлекторе всегда пользовался пробелом — ну фиг знает имхо мегаудобно (может привык).

W>Интересная мысль, сделаем. Какие именно хотелось бы видеть на тулбаре?

ну наиболее часто используемые команды с точки зрения пользователя: открыть, поиск — первые кандидаты.

W>Почему?

пожалейте мое зрение, я вас очень прошу. и так косею от работы за компом. в любом случае эта опция в идеале должна быть наследована из настроек ОС, в крайнем же случае — настраиваемой. очень прошу прислушаеться к моей мааалеьнкой просьбе.
Re[4]: Обсуждение dotPeek
От: adontz Грузия http://adontz.wordpress.com/
Дата: 14.05.11 16:50
Оценка:
Здравствуйте, qxWork, Вы писали:

A>>Есть только одно допустимое время старта — меньше секунды. dotPeek запускается 15 секунд. ПЯТНАДЦАТЬ секунд. Я за это время успеваю запустить Рефлектор, найти то что мне нужно и закрыть его.

W>Согласен, что 15 секунд — это много, но за 15 секунд найти в рефлекторе что-то? Научи.

Ну я опытный пользователь рефлектора

A>>1) Не сортирует члены класса по виду.

W>Какая именно сортировка нужна? И как вы ее используете?

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

A>>2) Не показывает отдельные модули сборки.

W>Имеются ввиду различные netmodul'и?

Имеются ввиу DLL файлы.

A>>3) Не показывает ресурсы.

W>Уже показывает.

Скачал dotPeek час назад. Можно сохранить ресурс, посмотреть нельзя.

A>>4) Окна поиска нет. О ЧЁМ ВЫ ДУМАЛИ?!

W>Какого поиска нет? Есть Goto type, goto symbol. Есть поиск использований символов и все пачка навигации как в решарпере.

Такого как в рефлекторе. Мне не нужен диалог, мне нужно постоянно видимое окно, которое не нужно каждый раз открывать и в которое можно вписать часть названия. Как в решарпере вообще не волнует, use case разные.

A>>5) Навигация по дереву не обновляет окно декомпиляции.

W>Обновляет по enter/ space. Хочется синхронно менять текущий открытый класс или открывать еще одну вкладку или как-то еще?

Класс вообще всего один — текущий. Это не редактор, тут не надо сразу много файлов открывать. Если так хочется ввернуть эту фичу, пусть можно будет делать несинхронизируемую копию текущего окна. Текущее окно должно синхронно меняться с выделением в дереве. Ну и скорость декомпиляции это ужас. Уберите диалог и пустите в фон, если не можете сделать быстрее.

Методы бывают большие, надо уметь показывать конкретный метод, вообще конкретный член, а не весь класс.

A>>6) Истории навигации нет.

W>Какой именно истории нет? Между сессиями или в пределах одной?
W>В пределах сессии есть recent list, доступный по Ctrl+E.

Я не знаю что такое сессия, но мне нужны кнопки Back и Forward.

A>>7) В окне декомиляции идентификаторы не ссылки.

W>Ctrl+click по не работает, но клавиатурные шорткаты для навигации во все стороны есть. см мануал

Даже Ctrl лишнее. Просто подвёркивание при наведении и клик для перехода.

A>>8) Всё медленее. Даже декомпиляции медленее, а тут уже WPF не получится обвинить.

W>Работаем над скоростью. Точность декомпиляции, правда, у нас лучше, но это нюансы

Ну вот народ на else жалуется.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[5]: Обсуждение dotPeek
От: qxWork Голландия http://www.jetbrains.com/company/people/Coox_Sergey.html
Дата: 14.05.11 20:10
Оценка: -1 :)
Здравствуйте, adontz, Вы писали:

A>>>1) Не сортирует члены класса по виду.

W>>Какая именно сортировка нужна? И как вы ее используете?

A>Вы такие вопросы задаёте, как будто рефлектор никогда не видели. Нет, ну честно, разница бросается в глаза на любом классе, в течение минуты использования. Типы, методы, поля, свойства, события у вас не сгруппированы. Это же сразу видно, даже делать ничего не надо, в статике видно.


Я пользовался рефлектором долгое время, просто не понимаю, зачем нужна группировка.

A>>>2) Не показывает отдельные модули сборки.

W>>Имеются ввиду различные netmodul'и?

A>Имеются ввиу DLL файлы.

tool-окошко Assembly Explorer?

A>>>3) Не показывает ресурсы.

W>>Уже показывает.

A>Скачал dotPeek час назад. Можно сохранить ресурс, посмотреть нельзя.

Скоро будет открывать тоже.

A>>>4) Окна поиска нет. О ЧЁМ ВЫ ДУМАЛИ?!

W>>Какого поиска нет? Есть Goto type, goto symbol. Есть поиск использований символов и все пачка навигации как в решарпере.

A>Такого как в рефлекторе. Мне не нужен диалог, мне нужно постоянно видимое окно, которое не нужно каждый раз открывать и в которое можно вписать часть названия. Как в решарпере вообще не волнует, use case разные.

Зачем нужно постоянно видимое окно? Кто мешает вписать часть названия в дотпиковские goto? Причем в отличие от рефлектра в дотпик не надо угадывать точное написание кусков слов.
Как Вы вообще используете поиск?

A>>>5) Навигация по дереву не обновляет окно декомпиляции.

W>>Обновляет по enter/ space. Хочется синхронно менять текущий открытый класс или открывать еще одну вкладку или как-то еще?

A>Класс вообще всего один — текущий. Это не редактор, тут не надо сразу много файлов открывать. Если так хочется ввернуть эту фичу, пусть можно будет делать несинхронизируемую копию текущего окна. Текущее окно должно синхронно меняться с выделением в дереве. Ну и скорость декомпиляции это ужас. Уберите диалог и пустите в фон, если не можете сделать быстрее.

Зачем нужен только один текущий класс?

A>Методы бывают большие, надо уметь показывать конкретный метод, вообще конкретный член, а не весь класс.

А чем плохо показать весь класс? Быстрая навигация на метод есть (ctrl+alt+shift+N на произвольный, Ctrl+f12 на метод в текущем классе или его базовых)

A>>>6) Истории навигации нет.

W>>Какой именно истории нет? Между сессиями или в пределах одной?
W>>В пределах сессии есть recent list, доступный по Ctrl+E.

A>Я не знаю что такое сессия, но мне нужны кнопки Back и Forward.

Navigate|Previous location (ctrl+-), Navigate| Next Location (ctrl+shift+-) подойдут?

A>>>7) В окне декомиляции идентификаторы не ссылки.

W>>Ctrl+click по не работает, но клавиатурные шорткаты для навигации во все стороны есть. см мануал

A>Даже Ctrl лишнее. Просто подвёркивание при наведении и клик для перехода.

А установить каретку и скажем, выделить кусок текста не хочется?

A>>>8) Всё медленее. Даже декомпиляции медленее, а тут уже WPF не получится обвинить.

W>>Работаем над скоростью. Точность декомпиляции, правда, у нас лучше, но это нюансы

A>Ну вот народ на else жалуется.

Заметим, код при этом правильный, а вот что творит рефлектор с yield'ами — это фантастика ))
Re[5]: Обсуждение dotPeek
От: qxWork Голландия http://www.jetbrains.com/company/people/Coox_Sergey.html
Дата: 14.05.11 20:17
Оценка:
Здравствуйте, AK107, Вы писали:

W>>Чему мешает размер дистрибутива? Понятно, что из соображений общей эстетики лучше меньше, но все-таки?

AK>ну вот скачивал я его со скроростью 60 КБ/сек с вашего сайта учитывая что инет мой 15 Мбит/сек.
Хм, странно, разберемся нет ли проблем у хостера. При 15Мбит/ сек должно быть без разницы 5 или 60М качать.

W>>Над этим работаем, скоро будет фикс.

AK>сразу отвечу про "else" здесь — да действительно мешает — лишние блоки всегда заслоняют собой суть.
Починим.

W>>Goto symbol (Ctrl+Alt+Shift+N), казалось, покрывает с запасом, особенно с учетом сложносочиненных конструкций.

AK>кстати да! клавиатурные комбинации — это просто жесть. вы правда можете нажать выдленное? особенно если учесть, что это самое главное (после пробела) в рефлеткоророподобных программах.
Да, регулярно. Шорткаты полностью совпадают с решарперными.
Можно в опциях переключить раскладку на VS-compatible.

AK>кстати с шорткатом декомпиляции неразобрался как следует с этими GotoImplementation/Declaration — в рефлекторе всегда пользовался пробелом — ну фиг знает имхо мегаудобно (может привык).

А что не понятно? На самом деле достаточно одного шортката navigate from here.

W>>Интересная мысль, сделаем. Какие именно хотелось бы видеть на тулбаре?

AK>ну наиболее часто используемые команды с точки зрения пользователя: открыть, поиск — первые кандидаты.
Открыть есть в тулбаре Assembly explorer'а, зачем он все время? Да Ctrl+O быстрее, чем мышку тащить.
Поиск чего?

W>>Почему?

AK>пожалейте мое зрение, я вас очень прошу. и так косею от работы за компом. в любом случае эта опция в идеале должна быть наследована из настроек ОС, в крайнем же случае — настраиваемой. очень прошу прислушаеться к моей мааалеьнкой просьбе.
Понял, в планах есть Fonts & colors диалог, постараемся соорудить по-быстрее.
Re[6]: Обсуждение dotPeek
От: adontz Грузия http://adontz.wordpress.com/
Дата: 14.05.11 20:34
Оценка: +3
Здравствуйте, qxWork, Вы писали:

W>Я пользовался рефлектором долгое время, просто не понимаю, зачем нужна группировка.


Я не знаю, может вы так пишете код, что у вас типы, методы, свойства, события, всё в перемешку, я не такой и видеть такое мне неприятно везде. Решарпер, кстати, в автодополнении тоже не позволяет отфильтровать список по типу члена. Я давно просил этот поправить, так и не исправили. То ли у вас такая политика партии, всё в кучу валить, то ли плевать просто.

A>>Имеются ввиу DLL файлы.

W>tool-окошко Assembly Explorer?

Да, в нём.

A>>Такого как в рефлекторе. Мне не нужен диалог, мне нужно постоянно видимое окно, которое не нужно каждый раз открывать и в которое можно вписать часть названия. Как в решарпере вообще не волнует, use case разные.

W>Зачем нужно постоянно видимое окно? Кто мешает вписать часть названия в дотпиковские goto? Причем в отличие от рефлектра в дотпик не надо угадывать точное написание кусков слов.
W>Как Вы вообще используете поиск?

ОМГ, не надо спрашивать зачем надо делать. Инструмент для пользователя, не пользователь для инструмента. Мы общаемся чтобы улучшить dotPeek или перевоспитать меня? Я с вами делюсь конкретными сценариями использования, а вы мне сообщаете что я не правило работаю

Как пользуюсь поиском? Набираю ключевое слово и ищу. Бывает я ищу что-то конкретное, бывает ищу класс по ключевому слову (а нет ли стандартного), бывает я помню название метода, но не помню в каком он классе. Чаще всего ищу стандартные перечисления. Диалог который надо каждый раз открывать не катит, микроскопическое автодополнение в котором только имена не катит. В рефлекторе я могу ввести .IO. И получить всё внутри вложенного пространства IO, например класс Stream. У вас я ввожу .IO. и получаю пустой список. Причём у рефлектора результаты показываются в гриде, видна сборка. Приватные члены серые, у вас всё черное.
Как мне найти метод по имени? Как найти все перечисления с членом Disabled? С dotPeek это задача становится трудоёмкой.

W>Зачем нужен только один текущий класс?


Зачем нужно много классов, вот в чём вопрос.

A>>Методы бывают большие, надо уметь показывать конкретный метод, вообще конкретный член, а не весь класс.

W>А чем плохо показать весь класс? Быстрая навигация на метод есть (ctrl+alt+shift+N на произвольный, Ctrl+f12 на метод в текущем классе или его базовых)

Тем что это неудобно. Скроллинг становится бесполезным.

A>>Я не знаю что такое сессия, но мне нужны кнопки Back и Forward.

W>Navigate|Previous location (ctrl+-), Navigate| Next Location (ctrl+shift+-) подойдут?

Почему вы на все важный функции настроили трёхэтажные клавиатурные сокращения? У меня на клавиатуре есть клавиши BACK и FORWARD, аппаратные клавиши. В рефлекторе Alt+Left и Alt+Right. Вы не повторили рефлектор, вы не использовали стандартные клавиши. Поиск это F3 или Ctrl+F, а у вас аж три сокращения и все странные.

Понимаете ли, Рефлектор совершенно отдельный самостоятельный инстумент. Мне там нафиг не нужна клавиатурная схема Intellij IDEA, мне нужно работать быстро. А вы сделали недружественного неповоротливого монстра. Это ужасно, мне откровенно неприятно работать с dotPeek.

A>>Даже Ctrl лишнее. Просто подвёркивание при наведении и клик для перехода.

W>А установить каретку и скажем, выделить кусок текста не хочется?

Нет, мне нужно быстро навигироваться. Смотрю метод, вызывается другйо метод. Щёлкнул на нём, попал сразу в нужную прегрузку. Нажал Back попал обратно. Впрочем с вашей скоростью декомпиляции это будет мучительно, даже если вы сделаете ссылки и клавишу Back.

A>>Ну вот народ на else жалуется.

W>Заметим, код при этом правильный, а вот что творит рефлектор с yield'ами — это фантастика ))

Это маленький минус, а скорость большой. Не надо забывать про приоритеты.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[6]: Обсуждение dotPeek
От: adontz Грузия http://adontz.wordpress.com/
Дата: 14.05.11 20:39
Оценка: +1
Здравствуйте, qxWork, Вы писали:

W>Шорткаты полностью совпадают с решарперными.


ИМХО это ужачное ошибочное решение. Я в состоянии нажать F3, а Сtrl+Alt+Shift+N не в сосстоянии. Тем более, не хочу это запоминать.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[6]: Обсуждение dotPeek
От: _FRED_ Черногория
Дата: 15.05.11 06:05
Оценка: +2
Здравствуйте, qxWork, Вы писали:

A>>>>1) Не сортирует члены класса по виду.

W>>>Какая именно сортировка нужна? И как вы ее используете?
A>>Вы такие вопросы задаёте, как будто рефлектор никогда не видели. Нет, ну честно, разница бросается в глаза на любом классе, в течение минуты использования. Типы, методы, поля, свойства, события у вас не сгруппированы. Это же сразу видно, даже делать ничего не надо, в статике видно.

W>Я пользовался рефлектором долгое время, просто не понимаю, зачем нужна группировка.


И _никто_ в джетбрайенсе не в курсе? Вы это серьёздно или просто не догадались с коллегами хоть посоветоваться?

Блин, вот сколько ре-шарпер ругаю за то что его делали "без оглядки" на студию, на то, что, как и почему там сделано, так и не перестану видимо никогда

Пытаясь улучшить что-то неужели вы не знаете, что требуется для начала подробно, досканально изучить улучшаемое, понять что же там есть, почему есть и почему именно в этом виде? Попробовать выяснить, кто, как и для чего использует этот функционал, и тогда уже принимать решение о том, нужно оно или нет. Для чего было изобретать что-то с нуля, когда уже есть стандарт "де-факто"? Ну да не мне конечно вам советовать. Остаётся надеяться, что найдётся кто-нибудь поавторитетнее.

Отговорка "просто не понимаю" оправдывается лишь бесплатностью продукта (не собираетесь же вы его делать платным после ЕАПа?).
Help will always be given at Hogwarts to those who ask for it.
Re[4]: Обсуждение dotPeek
От: _FRED_ Черногория
Дата: 15.05.11 06:11
Оценка: +1
Здравствуйте, qxWork, Вы писали:

A>>Есть только одно допустимое время старта — меньше секунды. dotPeek запускается 15 секунд. ПЯТНАДЦАТЬ секунд. Я за это время успеваю запустить Рефлектор, найти то что мне нужно и закрыть его.

W>Согласен, что 15 секунд — это много, но за 15 секунд найти в рефлекторе что-то? Научи.

Это просто. У меня ссылка на рефлектор в меню "External Tools". Помимо прочего там сказано Arguments: $(TargetPath), Initial Directory: $(SolutionDir). Соответственно, когда я вызываю рефлектор он подгружает и выделяет текущую сборку. Посмотреть, что же там получилось в интересующем меня методе — действительно не очень долго.
Help will always be given at Hogwarts to those who ask for it.
Re[7]: Обсуждение dotPeek
От: qxWork Голландия http://www.jetbrains.com/company/people/Coox_Sergey.html
Дата: 15.05.11 09:54
Оценка:
Здравствуйте, adontz, Вы писали:

A>>>Имеются ввиу DLL файлы.

W>>tool-окошко Assembly Explorer?
A>Да, в нём.
В нем группировка по dll-кам.

A>>>Такого как в рефлекторе. Мне не нужен диалог, мне нужно постоянно видимое окно, которое не нужно каждый раз открывать и в которое можно вписать часть названия. Как в решарпере вообще не волнует, use case разные.

W>>Зачем нужно постоянно видимое окно? Кто мешает вписать часть названия в дотпиковские goto? Причем в отличие от рефлектра в дотпик не надо угадывать точное написание кусков слов.
W>>Как Вы вообще используете поиск?

A>ОМГ, не надо спрашивать зачем надо делать. Инструмент для пользователя, не пользователь для инструмента. Мы общаемся чтобы улучшить dotPeek или перевоспитать меня? Я с вами делюсь конкретными сценариями использования, а вы мне сообщаете что я не правило работаю

Дык я и спрашиваю, как Вы им пользуетесь, чтобы понять, что Вам нужно. Я искренне не понимаю, зачем нужно постоянно открытое окно поиска — как в него попасть? мышкой? Чем это удобнее шортката?
Или Вы хотите видеть результаты прошлого поиска? Тогда просто нажмите +, и то, что Вам показали в goto* откроется в отдельном окошке, после чего по этим результатам можно будет ходить с помощью шорткатов, группировать различным образом и т.д.

A>Как пользуюсь поиском? Набираю ключевое слово и ищу. Бывает я ищу что-то конкретное, бывает ищу класс по ключевому слову (а нет ли стандартного), бывает я помню название метода, но не помню в каком он классе. Чаще всего ищу стандартные перечисления. Диалог который надо каждый раз открывать не катит, микроскопическое автодополнение в котором только имена не катит. В рефлекторе я могу ввести .IO. И получить всё внутри вложенного пространства IO, например класс Stream. У вас я ввожу .IO. и получаю пустой список. Причём у рефлектора результаты показываются в гриде, видна сборка. Приватные члены серые, у вас всё черное.

Navigate| Goto symbol там ввести .IO. пробовали? Думаю, нет. Будете приятно удивлены.

A>Как мне найти метод по имени? Как найти все перечисления с членом Disabled? С dotPeek это задача становится трудоёмкой.

Navigate|Goto symbol там ввести Disabled

W>>Зачем нужен только один текущий класс?

A>Зачем нужно много классов, вот в чём вопрос.
Вы в IDE тоже пользуетесь одним окном или кучей вкладок? А некоторые вообще любят смотреть на несколько классов одновременно, располагая их рядом или друг под другом.

A>>>Методы бывают большие, надо уметь показывать конкретный метод, вообще конкретный член, а не весь класс.

W>>А чем плохо показать весь класс? Быстрая навигация на метод есть (ctrl+alt+shift+N на произвольный, Ctrl+f12 на метод в текущем классе или его базовых)

A>Тем что это неудобно. Скроллинг становится бесполезным.

Можно подробнее? В чем бесполезность скроллинга? (Я не троллю, я правда пытаюсь понять)

A>>>Я не знаю что такое сессия, но мне нужны кнопки Back и Forward.

W>>Navigate|Previous location (ctrl+-), Navigate| Next Location (ctrl+shift+-) подойдут?

A>Почему вы на все важный функции настроили трёхэтажные клавиатурные сокращения? У меня на клавиатуре есть клавиши BACK и FORWARD, аппаратные клавиши. В рефлекторе Alt+Left и Alt+Right. Вы не повторили рефлектор, вы не использовали стандартные клавиши. Поиск это F3 или Ctrl+F, а у вас аж три сокращения и все странные.

Дело в том, что поиски даже в простом случае бывают разные — просто по тексту, использования символа, или например любого из его overload'ов. И нам видится правильным не смешивать эо все в кучу.
Что же касается "стандартности" клавиш, то они взяты из Visual Studio (предположительно, код-то Вы пишете в ней), соответственно есть 2 раскладки ориентированных на пользователей студии либо тех, кто пришел в нее после опыта IntelliJ IDEA.

A>Понимаете ли, Рефлектор совершенно отдельный самостоятельный инстумент. Мне там нафиг не нужна клавиатурная схема Intellij IDEA, мне нужно работать быстро. А вы сделали недружественного неповоротливого монстра. Это ужасно, мне откровенно неприятно работать с dotPeek.


A>>>Даже Ctrl лишнее. Просто подвёркивание при наведении и клик для перехода.

W>>А установить каретку и скажем, выделить кусок текста не хочется?

A>Нет, мне нужно быстро навигироваться. Смотрю метод, вызывается другйо метод. Щёлкнул на нём, попал сразу в нужную прегрузку. Нажал Back попал обратно. Впрочем с вашей скоростью декомпиляции это будет мучительно, даже если вы сделаете ссылки и клавишу Back


Видимо, я совсем не умею пользоваться рефлектором. Представьте себе такой декомпилированный код:
void callFoo(IFoo f)  {
  f.Foo();
}

Кликнув в Foo(), что именно должно открыться? Скорее всего, IFoo.Foo, но мне почему-то в такой ситуации более интересно сходить в реализации метода Foo(), но вот я не знаю как этого достичь.
А в dotPeek на Foo можно вызвать навигацию в любую удобную сторону. Разве это плохо?

A>>>Ну вот народ на else жалуется.

W>>Заметим, код при этом правильный, а вот что творит рефлектор с yield'ами — это фантастика ))

A>Это маленький минус, а скорость большой. Не надо забывать про приоритеты.

Быстро, но кое-как. Как скажете
Re[5]: Обсуждение dotPeek
От: qxWork Голландия http://www.jetbrains.com/company/people/Coox_Sergey.html
Дата: 15.05.11 09:56
Оценка:
Здравствуйте, _FRED_, Вы писали:

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


A>>>Есть только одно допустимое время старта — меньше секунды. dotPeek запускается 15 секунд. ПЯТНАДЦАТЬ секунд. Я за это время успеваю запустить Рефлектор, найти то что мне нужно и закрыть его.

W>>Согласен, что 15 секунд — это много, но за 15 секунд найти в рефлекторе что-то? Научи.

_FR>Это просто. У меня ссылка на рефлектор в меню "External Tools". Помимо прочего там сказано Arguments: $(TargetPath), Initial Directory: $(SolutionDir). Соответственно, когда я вызываю рефлектор он подгружает и выделяет текущую сборку. Посмотреть, что же там получилось в интересующем меня методе — действительно не очень долго.

У меня то же самое настроено на dotPeek.
Я не верю в найти нужно и изучить за 15 секунд.
Re[8]: Обсуждение dotPeek
От: adontz Грузия http://adontz.wordpress.com/
Дата: 15.05.11 10:09
Оценка:
Здравствуйте, qxWork, Вы писали:

W>В нем группировка по dll-кам.


Вы понимаете что сборка может состоять из нескольких DLL имена файлов которых могут не совпадать с именем сборки?

W>Дык я и спрашиваю, как Вы им пользуетесь, чтобы понять, что Вам нужно. Я искренне не понимаю, зачем нужно постоянно открытое окно поиска — как в него попасть? мышкой? Чем это удобнее шортката?


Попасть можно и мышкой, и F3. F3 — одна клавиша.

W>Или Вы хотите видеть результаты прошлого поиска?


В том числе. И не просто видеть старые результаты, но и отредактировать строку поиска.

A>>Как пользуюсь поиском? Набираю ключевое слово и ищу. Бывает я ищу что-то конкретное, бывает ищу класс по ключевому слову (а нет ли стандартного), бывает я помню название метода, но не помню в каком он классе. Чаще всего ищу стандартные перечисления. Диалог который надо каждый раз открывать не катит, микроскопическое автодополнение в котором только имена не катит. В рефлекторе я могу ввести .IO. И получить всё внутри вложенного пространства IO, например класс Stream. У вас я ввожу .IO. и получаю пустой список. Причём у рефлектора результаты показываются в гриде, видна сборка. Приватные члены серые, у вас всё черное.

W>Navigate| Goto symbol там ввести .IO. пробовали? Думаю, нет. Будете приятно удивлены.

Буду неприятно удивлён, потому что мне вывалится куча разнородных обхектов. Я ищу только методы, мне надо искать "метод или класс", "метод или событие". Даже "метод или свойство" не надо.

A>>Как мне найти метод по имени? Как найти все перечисления с членом Disabled? С dotPeek это задача становится трудоёмкой.

W>Navigate|Goto symbol там ввести Disabled

Это неудобно! Вы вообще рефлектором пользовались? То как у вас реализовано — неудобно.

A>>Зачем нужно много классов, вот в чём вопрос.

W>Вы в IDE тоже пользуетесь одним окном или кучей вкладок? А некоторые вообще любят смотреть на несколько классов одновременно, располагая их рядом или друг под другом.

IDE редактор, Рефлектор — просмотрщик. Windows Picture and Fax Viewer показывает вам одну картинку за раз и позволяет листать туда-сюда. Почему вы так упорно не хотите изучать поведение существующего продукта и так же упорно навязываете неудобные альтернативы?

A>>Тем что это неудобно. Скроллинг становится бесполезным.

W>Можно подробнее? В чем бесполезность скроллинга? (Я не троллю, я правда пытаюсь понять)

Как отскроллить в конец или середину метода если показан весь класс? Никак.

W>Дело в том, что поиски даже в простом случае бывают разные — просто по тексту, использования символа, или например любого из его overload'ов. И нам видится правильным не смешивать эо все в кучу.


Вам видиться неправильно. Нужно одно окно, одна комбинация клавиш и возможность выбирать уже в этом окне что ищешь. Можете на выбор добавить локальные шорткаты. Но это должно быть одно окно, а не три.

W>Что же касается "стандартности" клавиш, то они взяты из Visual Studio (предположительно, код-то Вы пишете в ней), соответственно есть 2 раскладки ориентированных на пользователей студии либо тех, кто пришел в нее после опыта IntelliJ IDEA.


Я работаю в Visual Studio с решарпером. Мне не нужны такие же клавиатурные сочетания. VS — Редактор, рефлетор — просмотрщик. У этих программ общего только я — потребитель.

W>Видимо, я совсем не умею пользоваться рефлектором. Представьте себе такой декомпилированный код:

W>
W>void callFoo(IFoo f)  {
W>  f.Foo();
W>}
W>

W>Кликнув в Foo(), что именно должно открыться? Скорее всего, IFoo.Foo, но мне почему-то в такой ситуации более интересно сходить в реализации метода Foo(), но вот я не знаю как этого достичь.

Это частный случай, работа через интерфейсы относительно редка.

W>А в dotPeek на Foo можно вызвать навигацию в любую удобную сторону. Разве это плохо?


Плохо то что ради более частного случая усложнился более общий. То что вы можете проанализировать код и предлодить мне реализацию наследников IFoo это хорошо. Плохо что мне это нужно значительно реже, чем перейти в конкретную реализацию известную без анализа, и этот более частный случай замедлен.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[5]: Обсуждение dotPeek
От: Lloyd Россия  
Дата: 15.05.11 10:10
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Это просто. У меня ссылка на рефлектор в меню "External Tools". Помимо прочего там сказано Arguments: $(TargetPath), Initial Directory: $(SolutionDir). Соответственно, когда я вызываю рефлектор он подгружает и выделяет текущую сборку. Посмотреть, что же там получилось в интересующем меня методе — действительно не очень долго.


А зачем декомпилировать код, у которого уже есть исходник?
Re[6]: Обсуждение dotPeek
От: adontz Грузия http://adontz.wordpress.com/
Дата: 15.05.11 10:11
Оценка:
Здравствуйте, qxWork, Вы писали:

W>У меня то же самое настроено на dotPeek.

W>Я не верю в найти нужно и изучить за 15 секунд.

Ну с dotPeek нет ничего удивительного, что вы не верите. Кстати вы зря зациклились на клавиатуре. Мышью можно работать быстро, если требуется попадать неточно. То есть перейти в окно поиска мышью в общем-то не проблема.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[7]: Обсуждение dotPeek
От: Lloyd Россия  
Дата: 15.05.11 10:14
Оценка:
Здравствуйте, _FRED_, Вы писали:

W>>Я пользовался рефлектором долгое время, просто не понимаю, зачем нужна группировка.


_FR>И _никто_ в джетбрайенсе не в курсе? Вы это серьёздно или просто не догадались с коллегами хоть посоветоваться?


_FR>Блин, вот сколько ре-шарпер ругаю за то что его делали "без оглядки" на студию, на то, что, как и почему там сделано, так и не перестану видимо никогда


_FR>Пытаясь улучшить что-то неужели вы не знаете, что требуется для начала подробно, досканально изучить улучшаемое, понять что же там есть, почему есть и почему именно в этом виде? Попробовать выяснить, кто, как и для чего использует этот функционал, и тогда уже принимать решение о том, нужно оно или нет. Для чего было изобретать что-то с нуля, когда уже есть стандарт "де-факто"? Ну да не мне конечно вам советовать. Остаётся надеяться, что найдётся кто-нибудь поавторитетнее.


А можно подробнее, на что именно в студии им стоило обратить внимание? А то одни эмоции и никакой конкретики.

_FR>Отговорка "просто не понимаю" оправдывается лишь бесплатностью продукта (не собираетесь же вы его делать платным после ЕАПа?).
Re[6]: Обсуждение dotPeek
От: adontz Грузия http://adontz.wordpress.com/
Дата: 15.05.11 10:44
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>А зачем декомпилировать код, у которого уже есть исходник?


Я, например, смотрю какие классы public (нет ли лишних), какие имена unmanaged dll в зависимостях.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[6]: Обсуждение dotPeek
От: _FRED_ Черногория
Дата: 15.05.11 11:13
Оценка:
Здравствуйте, qxWork, Вы писали:

_FR>>Это просто. У меня ссылка на рефлектор в меню "External Tools". Помимо прочего там сказано Arguments: $(TargetPath), Initial Directory: $(SolutionDir). Соответственно, когда я вызываю рефлектор он подгружает и выделяет текущую сборку. Посмотреть, что же там получилось в интересующем меня методе — действительно не очень долго.

W>У меня то же самое настроено на dotPeek.
W>Я не верю в найти нужно и изучить за 15 секунд.

Зачем сводить разговор в сторону 15 или семнадцати секунд? Обсуждается, кажется, более важная проблема, впрочем желание сменить тему тоже можно считать за ответ.
Help will always be given at Hogwarts to those who ask for it.
Re[6]: Обсуждение dotPeek
От: _FRED_ Черногория
Дата: 15.05.11 11:13
Оценка:
Здравствуйте, Lloyd, Вы писали:

_FR>>Это просто. У меня ссылка на рефлектор в меню "External Tools". Помимо прочего там сказано Arguments: $(TargetPath), Initial Directory: $(SolutionDir). Соответственно, когда я вызываю рефлектор он подгружает и выделяет текущую сборку. Посмотреть, что же там получилось в интересующем меня методе — действительно не очень долго.


L>А зачем декомпилировать код, у которого уже есть исходник?


Есть причины.
Help will always be given at Hogwarts to those who ask for it.
Re[7]: Обсуждение dotPeek
От: Lloyd Россия  
Дата: 15.05.11 11:16
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>>>Это просто. У меня ссылка на рефлектор в меню "External Tools". Помимо прочего там сказано Arguments: $(TargetPath), Initial Directory: $(SolutionDir). Соответственно, когда я вызываю рефлектор он подгружает и выделяет текущую сборку. Посмотреть, что же там получилось в интересующем меня методе — действительно не очень долго.


L>>А зачем декомпилировать код, у которого уже есть исходник?


_FR>Есть причины.


И какие же?
Re[9]: Обсуждение dotPeek
От: qxWork Голландия http://www.jetbrains.com/company/people/Coox_Sergey.html
Дата: 15.05.11 11:19
Оценка:
Здравствуйте, adontz, Вы писали:

W>>В нем группировка по dll-кам.

A>Вы понимаете что сборка может состоять из нескольких DLL имена файлов которых могут не совпадать с именем сборки?
Ура, наконец-то я добился ответа на несложный вопрос, в чем же проблема.
Спасибо, починим.

A>Попасть можно и мышкой, и F3. F3 — одна клавиша.

Это принципиально нажать одну кнопку или две одной рукой?

W>>Или Вы хотите видеть результаты прошлого поиска?

A>В том числе. И не просто видеть старые результаты, но и отредактировать строку поиска.
О, интересно.

A>Буду неприятно удивлён, потому что мне вывалится куча разнородных обхектов. Я ищу только методы, мне надо искать "метод или класс", "метод или событие". Даже "метод или свойство" не надо.

Тоже интересно. Можно поподробнее, почему "метод или класс" надо, а "метод или свойство" или "свойство или класс" нет?

A>>>Как мне найти метод по имени? Как найти все перечисления с членом Disabled? С dotPeek это задача становится трудоёмкой.

W>>Navigate|Goto symbol там ввести Disabled
A>Это неудобно! Вы вообще рефлектором пользовались? То как у вас реализовано — неудобно.
Да пользовался. Объясните, что именно не удобно. Когда Вы перестаете просто возмущаться и объясняете, что именно Вы делаете и хотите получить, становится понятно и появляется пища для размышлений. Просто "неудобно" — неконструктивно.

A>IDE редактор, Рефлектор — просмотрщик. Windows Picture and Fax Viewer показывает вам одну картинку за раз и позволяет листать туда-сюда. Почему вы так упорно не хотите изучать поведение существующего продукта и так же упорно навязываете неудобные альтернативы?

Потому что просмотр и изучение кода — на наш взгляд разные вещи. Мне, например, категорически неудобно единственное окно.
Но даже если отвлечься от этого, разница лишь в наличии строки с табиками.

A>>>Тем что это неудобно. Скроллинг становится бесполезным.

W>>Можно подробнее? В чем бесполезность скроллинга? (Я не троллю, я правда пытаюсь понять)
A>Как отскроллить в конец или середину метода если показан весь класс? Никак.
Кнопками вверх/ вниз или колесиком мышки. Вы это делаете чем-то другим?

W>>Дело в том, что поиски даже в простом случае бывают разные — просто по тексту, использования символа, или например любого из его overload'ов. И нам видится правильным не смешивать эо все в кучу.


A>Вам видиться неправильно. Нужно одно окно, одна комбинация клавиш и возможность выбирать уже в этом окне что ищешь. Можете на выбор добавить локальные шорткаты. Но это должно быть одно окно, а не три.

Это интересная мысль, было бы прекрасно, если бы Вы ее сформулировали сразу, но я рад, что удалось это выяснить.
Подумаем.

W>>Что же касается "стандартности" клавиш, то они взяты из Visual Studio (предположительно, код-то Вы пишете в ней), соответственно есть 2 раскладки ориентированных на пользователей студии либо тех, кто пришел в нее после опыта IntelliJ IDEA.

A>Я работаю в Visual Studio с решарпером. Мне не нужны такие же клавиатурные сочетания. VS — Редактор, рефлетор — просмотрщик. У этих программ общего только я — потребитель.
Вот этого я не понимаю. Разве неудобно иметь один и тот же набор клавиш в разных продуктах?

W>>Видимо, я совсем не умею пользоваться рефлектором. Представьте себе такой декомпилированный код:

W>>
W>>void callFoo(IFoo f)  {
W>>  f.Foo();
W>>}
W>>

W>>Кликнув в Foo(), что именно должно открыться? Скорее всего, IFoo.Foo, но мне почему-то в такой ситуации более интересно сходить в реализации метода Foo(), но вот я не знаю как этого достичь.

A>Это частный случай, работа через интерфейсы относительно редка.

А виртуальные методы тоже нет? Dependency injection — зло от лукавого?

A>Плохо то что ради более частного случая усложнился более общий. То что вы можете проанализировать код и предлодить мне реализацию наследников IFoo это хорошо. Плохо что мне это нужно значительно реже, чем перейти в конкретную реализацию известную без анализа, и этот более частный случай замедлен.

Ctrl+B (он же сломанный Ctrl+Click) в Вашем случае будет делать ровно то, что Вам хочется, но при этом еще множество сценариев останутся доступными.
Я понимаю, что ломать привычки совершенно не хочется, но если попробовать, результат может понравиться.
Re[7]: Обсуждение dotPeek
От: qxWork Голландия http://www.jetbrains.com/company/people/Coox_Sergey.html
Дата: 15.05.11 11:21
Оценка:
Здравствуйте, adontz, Вы писали:

A>Ну с dotPeek нет ничего удивительного, что вы не верите.

Можно пример 15-секундного изучения кода в любом удобном вам инструменте.

A>Кстати вы зря зациклились на клавиатуре. Мышью можно работать быстро, если требуется попадать неточно. То есть перейти в окно поиска мышью в общем-то не проблема.

Ctrl+click починим обязательно.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.