2010-09-27 2 views
21

В настоящее время я использую Visual Studio 2010, но я не думаю, что это проблема, связанная с версией (думаю, что это было точно так же, как и в 2008 году) ,Порядок сортировки результатов для «Найти все ссылки» в Visual Studio

Когда я хочу узнать, где в моем решении используется какая-либо переменная/функция/все, я нажимаю на нее правой кнопкой мыши и выбираю «Найти все ссылки». Это дает мне длинный список в Найти результаты поиска просмотреть все существующие ссылки. Однако этот список довольно грязный. Результаты, по-видимому, упорядочены по тому файлу, в котором они находятся, но он останавливается там. Они не сортируются по номеру строки, ни что-либо еще немного логично (по крайней мере, я вижу ...).

Если я выполняю такую ​​же операцию, например, Eclipse, я получаю хороший список, где результаты поиска красиво упорядочены по файлу, а затем номер функции и строки в файле. Есть ли способ, которым я могу добиться такого же результата в Visual Studio (возможно, предпочтение указать)? Или это просто одна из тех глупых вещей, где Visual Studio совершенно безнадежно? Или просто какая-то блестящая логика упорядочения сортировки, которую я пропускаю?

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

Update :
Просто уточнить: Я знаю, что есть другие надстройки и инструменты, такие как ReSharper и т. Д., Которые делают такие вещи намного лучше, чем Visual Studio. Мне интересно, можно ли «дезинфицировать» поиск-вывод из существующей «Найти все ссылки» Visual Studio. И если нет - то, что на самом деле является логикой их текущего порядка сортировки (должна быть логика, потому что я, похоже, получаю тот же порядок в результатах при поиске той же переменной).

+0

+1 ... Я всегда удивлялся. – SLaks

ответ

23

Я свистел команду VS на этом, и оказывается, что причина в том, что wierdness Найти все ссылки на основе строк вместо чисел. Вот почему вы видите 1,2, 25, 3, 35, 4 и т. Д. Они отслеживают его как ошибку, и предполагается, что она будет исправлена, но временная шкала неизвестна.

+4

Doh, я даже не заметил ... Теперь, когда я присматриваюсь, я, конечно, вижу, что результаты поиска упорядочены по номеру строки, но отсортированы с использованием сравнения строк вместо целочисленного сравнения. Довольно смехотворная ошибка со стороны Microsoft, если бы я мог добавить;) – Nailuj

+0

Да, это некоторые устаревшие вещи, которые команда продуктов имеет на своей тарелке, чтобы исправить их тоже не очень нравится :) – zainnab

+10

OMG.Есть ли запись в Microsoft Connect, где мы можем проголосовать за это? – MarkJ

0

Для некоторых вещей вы можете попробовать использовать «Просмотреть иерархию вызовов» (Ctrl-K + Ctrl-T (VS2010)). Он сортируется в алфавитном порядке по внешнему виду вещей. Или такие инструменты, как CodeRush Express или ReSharper (не бесплатно), обычно имеют более качественные средства поиска, чем те, которые предлагают визуальная студия.

http://www.devexpress.com/Products/Visual_Studio_Add-in/CodeRushX/

+1

«Иерархия просмотра вызовов» является жизнеспособной опцией для функций и свойств, но она не работает, если вы хотите найти ссылки на простую переменную или класс в этом отношении. – Nailuj

+0

ReSharper's 'Search Usages', вероятно, лучший вариант, который я когда-либо встречал для замены «Найти все ссылки». – kjn

2

Обходной путь, который я использую, состоит в том, чтобы создать свернутую область из 10 000 пустых строк сверху, чтобы заставить 6000 строк кода в этой функции (которые я не записывал) правильно сортировать по номеру строки, используя " Найти все ссылки ". Я сохраняю эту область пустых строк в отдельном текстовом файле и временно копирую и вставляю их в начало исходного кода, когда я расстроен тем, как сортируются результаты поиска.

Смежные вопросы