Несколько дней назад мы объявили об общей доступности Visual Studio 2019. Лично я использую Visual Studio 2019 с момента первой внутренней сборки — задолго до выпуска Preview 1 в декабре 2018 года. За это время обнаружилось много маленьких особенностей, которые заставили меня улыбнуться и сделали мою работу более продуктивной.

Я хочу поделиться некоторыми из них с вами, поскольку они не все очевидны, а некоторые требуют изменения некоторых настроек. Подробности под катом!



За перевод спасибо нашему MSP, Льву Буланову.

Загрузка Clean Solution


Когда решение закрыто, его состояние сохраняется, и в следующий раз, когда вы откроете его, Visual Studio сможет восстановить свернутое/развернутое состояние проектов и папок в обозревателе решений (Solution Explorer) и снова открыть оставленные открытыми документы. Это замечательно, но я предпочитаю чистый лист, когда открываю решения — файлы не открываются, а все узлы дерева в обозревателе решений сворачиваются.


Я создал расширение Clean Solution, чтобы обеспечить такое поведение в предыдущей версии Visual Studio. Эта функция теперь встроена в Visual Studio 2019 и может быть включена двумя отдельными галочками. Перейдите в поиск (Ctrl+Q) и введите load, чтобы найти страницу Projects and Solutions > General options.

Снимите галочки Reopen documents on solution load и Restore Solution Explorer project hierarchy on solution load.


Дополнительным преимуществом снятия этих двух галочек является то, что решения будут загружаться быстрее из-за устранения накладных расходов при восстановлении состояния. Win-win.


Git pull сочетанием клавиш


Я много работаю с репозиториями GitHub и часто принимаю запросы от людей. Это означает, что я должен сделать git pull перед тем, как делать последующие коммиты. Но, как оказывалось неоднократно, это можно легко забыть. В результате я сталкивался с конфликтами слияний и другими неприятностями.

В прошлом единственным способом сделать git pull было использование Team Explorer, командной строки или внешнего инструмента. Что я действительно хотел получить, так это сочетание клавиш в Visual Studio, которое бы делало это для меня.

Раньше команда pull в Team Explorer не была командой, которой можно назначать сочетания клавиш, но теперь это так. Перейдите к поиску (Ctrl+Q) и введите «keyboard», чтобы найти страницу Environment > Keyboard. В ней найдите команду Team.Git.Pull в списке. Затем присвойте ей любое сочетание и нажмите кнопку ОК. Я решил использовать Ctrl+Shift+P.


Чтобы автоматически выполнить git pull при загрузке решения, попробуйте открытое расширение Git Pull.


Code Cleanup для C#


Ведение аккуратно-отформатированного исходного кода и обеспечение согласованности стилей кодинга — это то, в чем я никогда не был хорош. Новая функция Code Cleanup очень помогает поддерживать мой код в чистоте и порядке, поскольку я настроил его для запуска всех фиксеров по умолчанию.

Для этого перейдите в меню Code Cleanup, расположенное в нижней части окна редактора, и нажмите Configure Code Cleanup.


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


Теперь все фиксеры будут запускаться каждый раз, когда вы выполняете очистку кода. Просто нажмите Ctrl+K, Ctrl+E для выполнения. В результате получается хорошо отформатированный документ, в котором применяется набор правил стиля кодирования, таких как добавление недостающих скобок и модификаторов. Вуаля!

IntelliCode


IntelliCode — это новая функция, которая расширяет возможности IntelliSense в зависимости от контекста, в котором вы используете продвинутые алгоритмы машинного обучения. Это полезно для многих сценариев, в том числе при изучении новых интерфейсов или API. Я пишу много расширений Visual Studio, и разнообразность API настолько велика, что есть части, которые я никогда не использовал. Когда я изучаю новую часть API Visual Studio, я нахожу очень полезным, что IntelliCode подсказывает мне, как ее использовать.


Чтобы включить эту мощную функцию, вы можете скачать IntelliCode из Visual Studio Marketplace и установить расширение.

IntelliCode работает с C#, C++ и XAML.

Просмотр содержимого Clipboard Ring


Каждый раз, когда вы копируете (Ctrl+C) что-то в Visual Studio, оно сохраняется в Clipboard Ring. Сочетание клавиш Ctrl+Shift+V позволяет циклически перемещаться по элементам в Clipboard Ring и вставлять выбранный элемент. Я считаю очень полезным хранить несколько вещей в буфере обмена одновременно, а затем вставлять различные элементы в определенные места.

В Visual Studio 2019 Clipboard Ring теперь показывает визуальное превью своего содержимого при нажатии Ctrl+Shift+V. Это облегчает навигацию по истории копий и выбор нужного элемента для вставки.


Новые рефакторинги C#


В C# есть много новых и очень полезных рефакторингов, которыми я пользовался каждый день. Они отображаются как подсказки в виде лампочки.


Чтобы узнать больше о новых рефакторингах и других функциях C # в Visual Studio 2019, ознакомьтесь с с этой статьей в блоге .NET.


Git Stash


Возможность отложить какую-то работу на будущее может быть очень полезна. Git Stash — это то, что дает мне эту возможность без необходимости создавать новую ветку. Если вы знакомы с TFS, то Git Stash очень похож на shelveset.



Самое приятное, что я могу управлять всеми своими заметками в окне Team Explorer. Их легко создавать и применять, и я стал их использовать гораздо больше, после того как Visual Studio начал их поддерживать по умолчанию.


Попробуйте Visual Studio 2019


Это были лишь некоторые из множества улучшений, добавленных в Visual Studio 2019, которые я считаю особенно полезными. Пожалуйста, делитесь своими лайфхаками или улучшениями, которые вы считаете полезными, в комментариях ниже!


Скачать Visual Studio 2019
 
Mads Kristensen
Mads Kristensen

Senior Program Manager, Visual Studio Extensibility

Комментарии (18)


  1. DreamChild
    08.04.2019 10:49

    Запустил на днях VS 2017 Community без Resharper и с удивлением обнаружил, что она теперь имеет целый ряд возможностей, которые раньше были фичами Решарпера, даже сочетания клавиш те же самые. Судя по появлению циклической вставки, курс на заимствование идей у Решарпера продолжается. Впрочем, я не говорю, что это плохо


    1. Kobalt_x
      08.04.2019 11:06

      Это да, но вроде бы на каком то из BUILDов говорили что супер-продвинутых прямо рефакторингов не будет, чтобы не отгрызать нишу у расширений типа VA/Resharper.


    1. isxaker
      08.04.2019 11:22

      это очень даже хорошо
      Студия с включенным решарпером последнее время очень дико тормозит. Приходится либо перезагружаться либо саспендить решарпер =(


    1. PashaPash
      08.04.2019 16:14
      +1

      Clipboard Ring по Ctrl+Shift+V/Ins был еще Visual Studio 2003, а первый Resharper вышел в 2004, так что еще непонятно, кто у кого эту фичу позаимствовал. В Win 10, кстати, есть системный Clipboard Ring, по Win+V.


      1. VioletGiraffe
        09.04.2019 12:32

        Ух ты, про Win + V не знал, спасибо!


  1. Playa
    08.04.2019 11:03

    Для C++ опять ничего не завезли? Печально...


    1. Kobalt_x
      08.04.2019 11:05

      Clean solution и IntelliCode не зависят от языка


      1. DreamChild
        08.04.2019 11:44

        Clipboard и stash скорее всего тоже


  1. isxaker
    08.04.2019 11:18

    не знал про Clipboard. Спасибо


  1. Skykharkov
    08.04.2019 11:35

    IntelliCode — реально умная штука. Очень помогает.


    1. CoolCmd
      08.04.2019 14:32

      вот только для JavaScript до сих пор недоступна. а в VS Code уже давно есть. как так?


  1. yurec_bond
    08.04.2019 12:41

    Чем больше они добавляют «умных» фич.
    Тем больше времени нужно тратить на их отключение, что бы они не мешали решарперу.

    До сих пор не нашел как отключить «Live code analysis» в VS 2017


    1. Carbonade
      08.04.2019 13:20

      Откройте вкладку настроек решарпера Environment — Performance Guide, оттуда можно выключить.


  1. windrider
    08.04.2019 15:25
    +1

    Вообще-то, clipboard ring в таком виде существовала ещё в VS2008 (или 2012, не помню). Но в 2015 её зачем-то выпили из GUI (то есть фича работала, но GUI-подсказка с превьюшками не показывалась). Теперь вернули. Паттерн «сделать хорошо, поломать, вернуть как было».


  1. questor
    08.04.2019 19:58

    Часто приходится работать как с TFS, так и с Git, так что неплохо, что появился хоткей и для git, эквивалентный TfsGetLatestVersion.

    А Cleanup — это тоже самое, что и CTRL + K, D (формат документа), только теперь поддерживает профили. Профили — это пожалуй хорошо, если вдруг придётся переключаться между проектами с разными настройками. По логике тогда надо, чтобы эти профили можно было сохранить на уровне проекта в настройки в какой-то файл, и чтобы этот файл был виден как отдельный профиль а-ля vs-cleanup-profile-rc.json


  1. slcoleg
    08.04.2019 23:48

    Только 2 профиля для Cleanup?

    Можно ли создать новый?


    1. sahsAGU
      09.04.2019 14:48

      Пока только 2, как я понимаю


  1. ksbes
    09.04.2019 20:01

    Так получается, что много пишу и на VS (2008 и 2017) и AndroidStudio (IntelliJ IDEA)… Короче, что я хочу сказать: я рад, что VS становится нормальной полнофункциональной IDE, интегрированной со множеством современных инструментов!

    (Вот только бы обратной совместимости бы побольше подвезли...)