VS Code 1.73: Решаем конфликты, пишем Markdown и ищем потерянное

VS Code 1.73: Решаем конфликты, пишем Markdown и ищем потерянное
👋
Хочешь поучаствовать в жизни сайта? Мы ищем авторов!

Октябрьское обновление редактора включает визуальные и функциональные правки в интерфейс, доработки редактора разрешения конфликтов и улучшенную поддержку языков Markdown и Razor.

Официальный список изменений и ссылки на скачивание.

Итак, пройдемся по ченджлогу.

Общие обновления

Быстрый фильтр по папкам в поиске

Если в поиске по проекту кликнуть по "Restrict Search to Folder" в меню папки, папка будет добавлена в "files to include":

Изображение code.visualstudio.com

А если кликнуть по "Exclude Folder from Search" - папка добавится в "files to exclude":

Изображение code.visualstudio.com

Подсказки в Command Center

Command Center - это поисковая строка в заголовке окна. При открытии он теперь предлагает поиск по файлами, командам, символам и так далее.

Изображение code.visualstudio.com

По-умолчанию Command Center отключен, но может быть включен настройкой window.commandCenter.

Индикатор в настройках в ограниченном режиме

У настроек, которые не применяются в текущем проекте (workspace) из-за ограниченного режима (restricted mode) или политики организации, теперь выводится индикатор.

Изображение code.visualstudio.com

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

Автоскладывание в Outline

Если задать новую настройку outline.collapseItems на true, элементы в списке Outline будут по-умолчанию складываться.

Больше скругленных углов

У полей ввода и выпадающих списков теперь такие же скругленные углы, как у кнопок.

Изображение code.visualstudio.com

Освеженный Quick Pick

Стиль списка Quick Pick обзавелся новыми отступами и скругленными углами.

Изображение code.visualstudio.com

Исправление в теме второстепенного сайдбара

Второстепенный сайдбар (Secondary Side Bar) теперь использует для цвета текста тот же ключ темы sideBar.foreground, что и главный сайдбар. Это должно исправить его отображение в некоторых темах.

Пример с официального сайта. Оба сайдбара используют один и тот же цвет текста - розовый:

Изображение code.visualstudio.com

Смена folding provider

Теперь в настройках можно сменить folding provider (провайдера складывания) для выбранного языка:

"[javascript]": {
    "editor.defaultFoldingRangeProvider": "aeschli.better-folding"
}

Название provider состоит из названия-издателя.названия-расширения.

Folding provider определяет, как код будет разбиваться на складываемые участки (классы, функции, блоки). Расширения VS Code могут предоставлять свои folding provider, чтобы улучшить эту функцию редактора. Прежде VS Code пытался сливать советы разных провайдеров (в том числе дефолтных), отбрасывая конфликты. Теперь управление над складыванием блоков кода можно будет передать исключительно конкретному расширению.

Уровни логгирования для каналов вывода

Каналы вывода - это логи компонентов и расширений VS Code. Теперь для каждого канала можно задать уровень логгирования отдельно с помощью UI командой "Developer: Set Log Level...":

Изображение code.visualstudio.com

Либо из командной строки:

code --log vscode.git:debug

Команда рекурсивного складывания элемента дерева

Новая команда list.collapseAllToFocus складывает текущий выбранный элемент в дереве и все его потомки.

Редактор разрешения конфликтов

Можно выбрать обе правки

И они будут вставлены одна после другой:

Изображение code.visualstudio.com

Авторазрешение конфликтов в пределах строки

VS Code теперь будет предлагать слить правки в одной строке автоматически, если увидит такую возможность. Например, если обе ветки добавили символы в один и тот же импорт:

Изображение code.visualstudio.com

Дифф относительно базы

Если включить отображение базы - то есть версии, на которой основы обе конфликтующие правки - то фокус на левой или правой правке будет показывать соответствующий дифф: для левой правки - дифф между базой и ею, для правой правки - дифф между базой и ею.

На демо-гифке база выводится посередине:

Изображение code.visualstudio.com

Новый алгоритм диффа

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

Изображение code.visualstudio.com

После:

Изображение code.visualstudio.com

Если новый алгоритм вызывает проблемы, его можно отключить, изменив настройку mergeEditor.diffAlgorithm с experimental (новое значение по-умолчанию) на smart.

Счетчик конфликтов кликабельный

Клик по нему прыгает к следующему конфликту.

Изображение code.visualstudio.com

Markdown

Автообновление ссылок на файлы

Когда файл переименовывается или перемещается, VS Code будет предлагать исправить ссылки на него в ваших заметках:

Изображение code.visualstudio.com

Это поведение контролируется настройкой markdown.updateLinksOnFileMove.enabled.

Команда вставки ссылки на файл или изображение

Новые команды "Markdown: Insert Link to File in Workspace" и "Markdown: Insert Image from Workspace" откроют окно выбора файла в workspace и вставят ссылку на него в текст.

0:00
/
Видео code.visualstudio.com

Предупреждение о неиспользуемых или дублированных ссылках

VS Code будет предупреждать, если ссылки, определенные через алиас, продублированы или не используются:

Изображение code.visualstudio.com

Функция включается настройкой markdown.validate.enabled.

Подсветка ссылки под курсором

Подсвечиваются все случаи использования этой ссылки в тексте. Если ссылка ведет на заголовок, заголовок тоже подсветится.

Изображение code.visualstudio.com

Функция включается настройкой markdown.occurrencesHighlight.enabled.

Razor

Подсветка синтаксиса Razor - языка шаблонов для ASP.NET Core - была переработана и теперь будет более активно поддерживаться.

Python

Автоимпорт отключен по-умолчанию

Из-за негативных отзывов свежее обновление Pylance теперь не будет автоматически импортировать символы, выбранные в авто-комплите. Это поведение можно вернуть настройкой python.analysis.autoImportCompletions.

Расширения isort, pylint, flake8

isort был вынесен из официального расширения Python в отдельное расширение, которое устанавливается автоматически.

pylint и flake8 уже существовали в виде официальных расширений, но теперь их установка будет предлагаться всплывашкой:

Изображение code.visualstudio.com

Материал подготовлен с ❤️ редакцией Кухни IT.

Олег Ямников

Олег Ямников

Главный кухонный корреспондент.