В Visual Studio 2013 появилось очень много новых возможностей. С некоторыми из них вы можете ознакомиться из статей на хабре. Некоторые из этих возможностей были долго ожидаемы сообществом, и в общем то не привносят ничего нового в функциональность среды, просто делают ее немного удобнее, как например окно опций, размер которого можно менять. Но так же есть возможности, о которых, как только взглянешь на них сразу же хочется воскликнуть «Круто!».
Речь идет о CodeLens – информационных индикаторах которые отображаются в коде и могут в лаконичной форме показать прямо в тексте программы важную информацию которая затем пригодится при работе с кодом приложения.
Так что же такое CodeLens?
Как уже было сказано, CodeLens это индикаторы, которые работают прямо в коде:
![*](/user_img/140108124409/dn535859.e3190804ea12f8a1cb85175cfcce08ed(ru-ru,MSDN.10)_mini_oszone.png)
Увеличить
По умолчанию они включены в среде для проектов VB.NET и C#. Вы можете настроить отображение этих индикаторов через настройки основной среды Tools> Options>TextEditor> AllLanguages> CodeInformationIndicators.
![*](/user_img/140108124409/dn535859.bdd7496edfc2284012a6d1bf553de099(ru-ru,MSDN.10)_mini_oszone.png)
Увеличить
В комплект поставки Visual Studio 2013 Ultimate входит 8 индикаторов:
- TestStatus – отображает статус модульного теста для функции
- References – отображает количество ссылок на функцию в других участках кода. Сколько раз эту функцию вызывают.
- TestedBy – отображает конкретные модульные тесты в окне индикатора которые проверяют данную функцию
- Authors – отображает автора изменений в коде
- Changes – отображает ссылки на последние изменения в коде
- Bugs – количество багов ассоциированных с этой функцией в Team Foundation Server
- WorkItems – рабочие элементы (таски, баги) которые связаны с этой функцией
- CodeReview – отображает рецензии на функцию
Индикаторы не только показывают какую-то информацию, но так же дают возможность более детально узнать необходимую информацию связанную с типом индикатора.
Вы можете вызвать окно детальной информации для каждого индикатора просто щелкнув по нему мышкой или нажав одновременно клавиши Alt-{номер индикатора}. У некоторых из индикаторов есть немало дополнительных возможностей.
Индикатор ссылок на код
Показывает количество ссылок на функцию или тип. Если открыть окно индикатора то так же будет отображена информация о функциях которые вызывают текущий код:
![*](/user_img/140108124409/dn535859.8fdd3802261ac571260b456d4ebe84cf(ru-ru,MSDN.10)_mini_oszone.png)
Увеличить
Этот индикатор удобно использовать в паре с возможностью построения карты зависимостей кода. Просто нажмите на ссылку «ShowonCodeMap» и в дополнительном окне будет показано визуальное представление зависимостей кода:
![*](/user_img/140108124409/dn535859.1eb52ec1d0e0df467e28038c8e69faa3(ru-ru,MSDN.10)_mini_oszone.png)
Увеличить
Количество изменений которые влияют на текущий участок кода в текущем бранче могут быть отображены по нажатию на клавишу Alt+5:
![*](/user_img/140108124409/dn535859.67e5d0f5e86c52df8f9d48f091ba51ed(ru-ru,MSDN.10)_mini_oszone.png)
Увеличить
Обратите внимание на то что у индикатора присутствует знак +. Это означает что текущая версия «отстает» от той которая уже есть на сервере контроля версий, и вполне вероятно придется прибегать к процедуре слияния изменений (мерджингу).
В этом же окне индикатора можно сравнить текущую версию файла с выбранной:
![*](/user_img/140108124409/dn535859.6bcb85fd09e215935992b6df3468fcbe(ru-ru,MSDN.10)_mini_oszone.png)
Увеличить
Тем самым заранее узнать о потенциальных конфликтах.
Индикаторы связей с багами, тасками и другими рабочими элементами
Любое изменение в коде (changeset) может быть ассоциировано с рабочими элементами в Team Foundation Server. Индикаторы багов и рабочих элементов отображают количество таких связей, а при вызове окна индикатора позволяют быстро перейти к информации в рабочем элементе.
Пример связей с багами:
![*](/user_img/140108124409/dn535859.b104275a2afc6d990400e0d01a061f84(ru-ru,MSDN.10)_mini_oszone.png)
Увеличить
Пример связей с задачами:
![*](/user_img/140108124409/dn535859.36b7618cc54ba91e3b01b11777871def(ru-ru,MSDN.10)_mini_oszone.png)
Увеличить
Индикаторы тестов
Модульные тесты, которые проверяют текущую функцию отображаются в индикаторах тестов. Отображается количество успешных и неудачных тестов а так же дополнительная информация в окне индикатора с ссылками на те тесты которые проверяли данную функцию:
![*](/user_img/140108124409/dn535859.68f4842568075f36b1fc86b3c2adc48b(ru-ru,MSDN.10)_mini_oszone.png)
Увеличить
Из окна детализации вы быстро можете попасть к месту определения теста:
![*](/user_img/140108124409/dn535859.122a6c832278f77da8a8eac3635f250c(ru-ru,MSDN.10)_mini_oszone.png)
Увеличить
При этом у самого теста появляется дополнительный индикатор, который отображает детальную информацию о результатах выполнения теста:
![*](/user_img/140108124409/dn535859.cd3b157cab46c6bdaab7fd7bb9c9d25d(ru-ru,MSDN.10)_mini_oszone.png)
Увеличить
Интеграция с Lync
Если в вашей организации используется Lync, то в дополнение к вышеперечисленным функциям у вас так же появляется иконка статуса. Это позволяет оперативно связаться с автором изменений в коде или владельцем задачи для быстрого решения каких либо вопросов:
![*](/user_img/140108124409/dn535859.ca70cf14fae54c6b9333f613856670b2(ru-ru,MSDN.10)_mini_oszone.png)
Увеличить
Расширение возможностей индикаторов
Вполне вероятно, что скоро появятся дополнительные индикаторы, которые расширят текущие возможности Visual Studio 2013 Ultimate.
Первый из них уже можно установить с сайта Visual Studio Gallery. Этот дополнительный индикатор показывает «чистоту кода» подсчитывая признанные в индустрии разработки параметры кода, такие как MaintanabilityIndex, LinesofCode, CyclomaticComplexity иHalsteadVolume.
![*](/user_img/140108124409/dn535859.343a71c1d15b1269d756e67c3f4160ad(ru-ru,MSDN.10)_mini_oszone.png)
Увеличить
Заключение
Надеемся, что технология CodeLens придется по вкусу многим разработчикам, и сделает их труд еще более легким. Напоминаем, что вы можете загрузить Visual Studio 2013 Ultimate с сайта Microsoft и попробовать новые возможности прямо сегодня.