Pull to refresh

Первый взгляд на новые возможности для С++ разработчика в следующей версии Visual Studio

Reading time3 min
Views2K
Original author: Sumit Kumar
image
(Прим. переводчика: это перевод статьи из Visual C++ Team Blog)
Сегодня я расскажу о некоторых из новых возможностей следующей версии Visual Studio, которые помогут С++ разработчикам работать более продуктивно. В этой статье (а она не последняя) речь идёт о функциях, помогающих лучше понимать и быстрее редактировать код.

Улучшение понимания кода


Подсветка синтаксиса

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

image
Вы также можете настроить цвета для каждого типа токенов – например, можно изменить цвета или шрифты для отображения локальных и глобальных переменных, что поможет определять их тип без необходимости искать определение.

Подсветка ссылок

Еще одна существенная фича это подсветка ссылок. Когда Вы наводите курсор на какой-нибудь символ в тексте – все появления этого символа в коде подсвечиваются. Подсвечиваются, к стати, только правильные ссылки (например, если две переменные имеют одно имя, но разные области видимости – будет подсвечена только нужная). Вы можете пользоваться хоткеями Ctrl+Shift+Up и Ctrl+Shift+Down для перемещения между ссылками – Вы теперь можете реже пользоваться диалогом поиска. Скриншот ниже показывает все использования переменной cxExtentMax в теле функции, но переменная с тем же именем, объявленная вне тела функции не подсвечивается.
image

Новый Solution Explorer

Есть достаточное количество окон в Visual Studio, которые приходится использовать постоянно: Navigate To, Class View, Object Browser, Find All References, Call Hierarchy и т.д. Представьте, как было бы классно иметь одно окно, способное по функционалу заменить их все. Поздравляю, теперь Вы понимаете, чем является новый Solution Explorer. Конечно, все остальные окна никуда не пропали, но цель нового Solution Explorer свести их использование к минимуму. Этому окну будет посвящена целая отдельная статья, но вот коротко пару основных моментов:
image
Вы можете «раскрыть» файлы для просмотра функций и классов, которые в них содержатся.

Прямо здесь же можно воспользоваться поиском.
image
Вы можете переходить вперед и назад между разными видами Solution Explorer и создавать несколько разных его окон с различными корнями. Вы можете сузить область видимости до одного проекта, или файла, или типа.
image

Содержимое редактора кода автоматически синхронизируется с Solution Explorer. Клик на символе в Solution Explorer переносит Вас к определению этого символа в редакторе. Вы можете также видеть взаимоотношения между сущностями (кто кого вызывает, кто на кого ссылается, кто от кого наследуется).
image
image


Улучшения редактора кода


Автоматическое выпадание списка подсказок IntelliSense
В Visual Studio 2010 и предыдущих версиях, список подсказок IntelliSense выпадал либо по нажатию хоткея (Ctrl+Space или Ctrl+J), либо после определенных символов( «::», «.», «->»). В следующей версии это будет происходить автоматически, по мере набора текста.
image

Автоматические подсказки достаточно умны – они не срабатывают тогда, когда в них нет нужды. К примеру, в процессе объявления новой переменной нет необходимости в подсказках.
image

Фильтрация имен

Список членов классов теперь не только показывается автоматически, но и фильтруется по мере набора текста.
image
Обратите внимание, что “pb” – не префик и не подстрока названия нужного метода. Фильтрация использует специальную хитрую логику для отображения только релевантных методов. Если же эта логика Вам не нравится – Вы можете переключиться на префиксную, camel-фильтрацию или вообще отключить этот механизм.
Сниппеты

Сниппеты позволяют быстро написать некий стандартный блок кода всего несколькими нажатиями клавиш. Вот, например, как это работает для switch-блока: как только Вы начинаете писать, IntelliSense показывает подходящий сниппет, который может сразу быть выбран нажатием клавиши Tab.
image
image

image
Сниппетов достаточно много, не думайте, что всё заканчивается на одном лишь switch-блоке. Есть конструкции для циклов, условий, объявления классов и т.д. Каждый сниппет экономит немного времени, давая возможность потратить его на более ценные вещи. Кроме того, Вы можете создавать собственные сниппеты – это просто XML файлы.

Заключение


Большинство описанных возможностей были запрошены пользователями. Именно эта обратная связь даёт возможность сделать наш продукт лучше. Обратите внимания – представленные в статье описания и скриншоты сделаны с использованием внутренней версии продукта, они всё еще в разработке и могут немного измениться к релизу. Описанные в статье возможности – лишь малая часть всего, что ждет пользователей в новой версии IDE. Следите за новыми постами.
Tags:
Hubs:
Total votes 62: ↑51 and ↓11+40
Comments38

Articles