VS Code 1.51 выпущен с улучшениями закрепленных вкладок и многим другим
Visual Studio Code - популярное приложение для разработчиков. Это редактор кода, переработанный и оптимизированный для создания и отладки современных веб-приложений и облачных приложений. VS Code поставляется с множеством расширений и помощников, которые действительно экономят время. Он доступен для всех основных платформ, включая Windows, MacOS и Linux. Сегодня Microsoft выпустила новую версию приложения, в которой улучшены различные функции приложения, включая закрепленные вкладки, интеграцию с GitHub и многое другое.
VS Code 1.51 отличается следующими изменениями.
Примечание: вы можете скачать приложение с официального сайта.
Верстак
Более заметные закрепленные вкладки
На закрепленных вкладках теперь всегда отображается значок булавки, даже когда они неактивны, чтобы их было легче идентифицировать. Если редактор закреплен и содержит несохраненные изменения, значок отражает оба состояния.
Деревья расширений используют настраиваемое наведение
Вместо того, чтобы использовать встроенную всплывающую подсказку в представлениях дерева расширений, теперь мы используем настраиваемое наведение, которое является согласованным для разных платформ и лучше соответствует общему UX.
Установить расширение без синхронизации
Теперь вы можете установить расширение без его синхронизации, пока включена синхронизация настроек.
Тема: GitHub Light
Установите расширение из проводника
VS Code теперь поддерживает установку файла расширения VSIX из проводника, щелкнув файл VSIX правой кнопкой мыши и выбрав Установить расширение VSIX пункт контекстного меню.
Введите команду размытия
Новый внутренний workbench.action.blur
Теперь доступна команда, которая убирает фокус с любого ввода, на который можно сфокусироваться. Вы можете назначить сочетание клавиш для этой команды в Настройки сочетаний клавиш.
Интегрированный Терминал
Местное эхо
Для внесения изменений в терминал традиционно требуется, чтобы информация была отправлена в процесс терминала, обработана и возвращена в VS Code, чтобы на нее повлиять. Это может быть медленным при работе с плохим или удаленным подключением к SSH сервер или Кодовое пространство.
В этом выпуске к терминалу добавлен режим «локального эха», который пытается прогнозировать изменения и перемещения курсора, сделанные локально, и отображать их в пользовательском интерфейсе без необходимости обращения к серверу и обратно. По умолчанию предсказанные символы отображаются как «затемненные»:
Для этого можно использовать два параметра:
-
terminal.integrated.localEchoLatencyThreshold
настраивает обнаруженный порог задержки в миллисекундах, при котором активируется локальное эхо. Это может быть установлено на0
чтобы включить эту функцию постоянно, или-1
чтобы отключить его. По умолчанию30
. -
terminal.integrated.localEchoStyle
настраивает стиль или цвет локального символа, по умолчаниютусклый
.
IntelliSense
Предложения с изменяемым размером
На этом этапе мы внесли несколько улучшений в интерфейс предложений. Прежде всего, теперь его размер можно изменить. Перетащите стороны или углы, чтобы изменить размер элемента управления.
Тема: GitHub Light, Шрифт: FiraCode
Размер списка предложений будет сохраняться и восстанавливаться между сеансами. Размер панели сведений сохраняется только для каждого сеанса, поскольку этот размер имеет тенденцию быть более изменчивым. Так же editor.suggest.maxVisibleSuggestions
настройка устарела.
Строка состояния для предложений
Элемент управления предложениями теперь может также отображать собственную строку состояния в нижней части окна. Включите его с помощью editor.suggest.showStatusBar
параметр. Это упрощает переключение деталей и показывает, поддерживает ли завершение вставку, замену или и то, и другое.
Тема: GitHub Light, Шрифт: FiraCode
В приведенном выше примере выбор «Вставить» приводит к Math.floorceil
и выбор "Заменить" приводит к Math.floor
.
Новый editor.suggest.insertMode
Параметр позволяет указать, предпочитаете ли вы вставку или замену. Если предложение поддерживает и то, и другое, ваше предпочтение будет по умолчанию.
Переместите курсор, чтобы выбрать предложения
И последнее, но не менее важное: теперь вы можете перемещать курсор, пока отображаются предложения. Например, вы можете запускать предложения в конце слова, перемещаться влево, чтобы увидеть больше предложений, а затем использовать замену, чтобы перезаписать слово.
Тема: GitHub Light
Эммет
Пользовательские сниппеты в Emmet вернулись. Кроме того, сниппеты теперь автоматически обновляются при сохранении файла сниппетов или обновлении файла emmet.extensionsPath
параметр.
Управления источником
Поле ввода Source Control сохраняет историю сообщений фиксации
Это касается запрос функции для навигации по истории коммитов SCM. Нажмите ↑ (Windows, Linux Вверх) а также ↓ (Windows, Linux Вниз) для отображения предыдущей и следующей фиксации соответственно. Чтобы перейти непосредственно к первой и последней позиции поля ввода, нажмите Alt вместе с соответствующей клавишей со стрелкой.
Git: команды тегов в подменю
Команды Git, связанные с тегами, были добавлены в ... Git-меню.
Git: команда Rebase
Новый Git: Rebase ветка ... была добавлена команда, которая позволяет перебазировать ветку с помощью пользовательского интерфейса.
Git: команда рекурсивного клонирования
С Git: Clone (рекурсивный), теперь вы можете рекурсивно клонировать репозитории Git, включая вложенные подмодули Git.
Временная шкала: рендеринг шорткода Emoji
Теперь мы отображаем шорткоды эмодзи, например :улыбка:
на временной шкале.
Языки
Markdown smart select
Расширяйте и сжимайте выделение в документах Markdown с помощью следующих новых команд:
- Расширять: ⌃⇧⌘→ (Windows, Linux Shift + Alt + Right)
- Сокращаться: ⌃⇧⌘← (Windows, Linux Shift + Alt + Left)
Выбор применяется к следующему и следует традиционному иерархическому шаблону:
- Заголовки
- Списки
- Блочные цитаты
- Огороженные блоки кода
- Блоки кода HTML
- Абзацы
Параметр форматирования пустых скобок для JavaScript и TypeScript
Новый javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces
а также typescript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces
Параметр конфигурации форматирования определяет, вставлены ли пробелы между пустыми фигурными скобками. Значение по умолчанию для этих настроек - истина. Например, для JavaScript:
класс Foo {doFoo () {} }
Параметр "javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces": false
и форматирование кода приводит к:
class Foo {doFoo () {} // Обратите внимание, что пространство было удалено. }
Поддержка браузера
Папки для скачивания (Edge, Chrome)
Использование новых Доступ к файловой системе API, VS Code, запущенный в браузере, теперь может предлагать действие загрузки для папок из проводника, чтобы загрузить все файлы и папки на диск.
Примечание: Для этого требуется последняя версия Microsoft Edge или Google Chrome.
Уведомление об открытии рабочей области
Если вы откроете папку, содержащую .code-рабочая область
файлы на верхнем уровне, вы увидите уведомление с просьбой открыть его. Так было всегда в VS Code для настольных ПК, а теперь будет работать и в браузере.
Предотвратить случайное закрытие
Новый сеттинг window.confirmBeforeClose
был добавлен для отображения диалогового окна подтверждения перед закрытием или выходом из рабочей среды.
Возможные значения:
-
keyboardOnly
Подтверждение будет отображаться только при использовании привязки клавиш для закрытия (например, ⌘W (Windows, Linux Ctrl + W)). (дефолт) -
всегда
: Диалоговое окно подтверждения будет отображаться всегда, даже если вы закрылись жестом мыши. -
никогда
: Подтверждение никогда не будет отображаться.
Примечание: Этот параметр может не охватывать все случаи. Браузеры могут решить закрыть вкладку или окно без подтверждения.
Взносы в расширения
Запросы на извлечение GitHub и проблемы
Продолжаются работы по Запросы на извлечение GitHub и проблемы extension, которое позволяет вам работать, создавать и управлять запросами на вытягивание и проблемами.
Чтобы узнать обо всех новых функциях и обновлениях, вы можете просмотреть полную журнал изменений для 0.22.0 выпуск расширения.
Удаленная разработка
Продолжаются работы по Расширения удаленной разработки, которые позволяют использовать контейнер, удаленную машину или Подсистема Windows для Linux (WSL) как полнофункциональная среда разработки.
Основные функции версии 1.51 включают:
- Возможность сохранения / повторного подключения к терминальным сессиям.
- Улучшен опыт переадресации портов.
Вы можете узнать о новых функциях расширения и исправлениях ошибок в Примечания к выпуску удаленной разработки.
Возможности предварительного просмотра
Функции предварительного просмотра не готовы к выпуску, но достаточно функциональны для использования. Мы приветствуем ваши ранние отзывы, пока они находятся в стадии разработки.
Синхронизация настроек
Синхронизация настроек теперь синхронизирует глобальное состояние расширений. Расширения должны будут предоставлять состояние для синхронизации с использованием недавно представленных setKeysForSync API.
Запомните учетные данные прокси
Мы пересматриваем диалоговое окно входа в систему, которое показывает, когда сетевое соединение требует аутентификации с помощью прокси. Новый сеттинг, window.enableExperimentalProxyLoginDialog: true
, позволит использовать этот новый опыт, который мы планируем сделать по умолчанию в следующем выпуске.
Тема: GitHub Light
Диалог появится внутри окна VS Code и предложит способ запомнить учетные данные, чтобы вам не приходилось вводить их каждый раз при запуске VS Code. Учетные данные будут храниться в стандартном хранилище учетных данных ОС (связка ключей в macOS, диспетчер учетных данных Windows в Windows и связка ключей gnome в Linux).
Мы по-прежнему показываем этот диалог только один раз за сеанс, но в будущем мы можем пересмотреть это решение. Вы увидите, что диалоговое окно появится снова, если учетные данные, которые вы выбрали для запоминания, недействительны. Если вы предоставите их снова, вы сможете их изменить.
Пожалуйста, включите эту опцию и дайте нам знать, если что-то не работает должным образом, через нашу трекер проблем.
Поддержка бета-версии TypeScript 4.1
VS Code поддерживает Бета-версия TypeScript 4.1 и ночные сборки. Обновление 4.1 содержит некоторые новые функции языка TypeScript, такие как поддержка рекурсивные условные типы, а также улучшения инструментов. Одна область внимания была добавление начальной поддержки для @видеть
теги в комментариях JSDoc.
Чтобы начать использовать ночные сборки TypeScript 4.1, просто установите Расширение TypeScript Nightly. Пожалуйста, поделитесь отзывами и сообщите нам, если у вас возникнут какие-либо ошибки в TypeScript 4.1.
Разработка расширений
Обновленные образцы расширений
Мы обновили некоторые из наших образцы расширений чтобы включить стили VS Code по умолчанию, которые подключены к нашим токенам цветовой темы. Это означает, что общие элементы (текст, кнопки, поля ввода) будут тематическими и будут соответствовать стилям продукта по умолчанию. Ниже приведены расширения, которые включают это:
- пользовательский-редактор-образец
- webview-образец
- веб-просмотр-образец
Цвета кодикона на деревьях
С доработкой ThemeIcon
цвет API, авторы расширений могут использовать цвета темы для кодиконов в пользовательских представлениях дерева.
Синхронизировать глобальное состояние
Расширения теперь могут синхронизировать свое глобальное состояние, предоставляя ключи, значения которых должны синхронизироваться, когда включена синхронизация настроек, с использованием недавно представленной setKeysForSync
API в globalState
сувенир.
/ ** * Устанавливает ключи, значения которых должны синхронизироваться между устройствами при синхронизации пользовательских данных *, таких как конфигурация, расширения и сувениры. * * Обратите внимание, что эта функция определяет весь набор ключей, значения которых синхронизируются: * - вызов его с пустым массивом останавливает синхронизацию для этого памятного предмета * - вызов его с непустой массив заменяет все ключи, значения которых синхронизированы. * * Для любого заданного набора ключей эту функцию нужно вызывать только один раз, но повторный вызов * не причинит вреда. * * @param keys Набор ключей, значения которых синхронизируются. */ setKeysForSync (ключи: строка []): void;
Комментарий расширения теперь могут управлять видимостью кнопки ответа в цепочке комментариев с новым свойством, CommentThread # canReply
. Когда он установлен на ложный
, пользователи не увидят кнопку ответа или поле для комментариев в цепочке комментариев.
Предлагаемые API расширения
Каждая веха сопровождается новыми предлагаемыми API, и авторы расширений могут их опробовать. Как всегда, мы ждем ваших отзывов. Вот что вам нужно сделать, чтобы опробовать предлагаемый API:
- Вы должны использовать инсайдеров, потому что предлагаемые API часто меняются.
- У вас должна быть эта строка в
package.json
файл вашего расширения:"enableProposedApi": true
. - Скопируйте последнюю версию
vscode.proposed.d.ts
в исходное расположение вашего проекта.
Вы не можете опубликовать расширение, использующее предлагаемый API. В следующем выпуске могут быть критические изменения, и мы никогда не хотим ломать существующие расширения.
Событие изменения поставщиков диапазона складывания
Поставщики диапазонов сворачивания могут сигнализировать редактору, что диапазоны сворачивания необходимо обновить, используя onDidChangeFoldingRanges
мероприятие.
Чтобы получить более подробную информацию и оставить отзыв, используйте Выпуск # 108929.
API паролей
В рамках продолжающейся работы над Провайдеры аутентификации, мы представили API для хранения и извлечения конфиденциальной информации. Внутри это действует как оболочка Keytar библиотека, которую VS Code использует для хранения секретов.
/ ** * Получить пароль, который был сохранен с ключом. Возвращает undefined, если * не существует пароля, соответствующего этому ключу. * @param key Ключ, под которым хранился пароль. */ функция экспорта getPassword (ключ: строка): Thenable; / ** * Хранить пароль под заданным ключом. * @param key Ключ для хранения пароля под * @param value Пароль * / функция экспорта setPassword (ключ: строка, значение: строка): Thenable; / ** * Удалить пароль из хранилища. * @param key Ключ, под которым хранился пароль. */ функция экспорта deletePassword (ключ: строка): Thenable; / ** * Срабатывает при установке или удалении пароля. */ export const onDidChangePassword: Событие;
Инженерное дело
Обеспечение совместимости доверенных типов VS Code
Мы продолжаем работу по обеспечению соответствия VS Code "надежным типам". Цель состоит в том, чтобы предотвратить уязвимости межсайтового скриптинга на основе DOM. Вы можете узнать больше о доверенных типах на сайте web.dev Сайт надежных типов и следите за нашим прогрессом в Выпуск # 103699.