Visual Studio Code – популярное приложение для разработчиков. Это редактор кода, переработанный и оптимизированный для создания и отладки современных веб-приложений и облачных приложений. VS Code поставляется с множеством расширений и помощников, которые действительно экономят время. Он доступен для всех основных платформ, включая Windows, MacOS и Linux. Сегодня Microsoft выпустила новую версию приложения, в которой улучшены различные функции приложения, включая закрепленные вкладки, интеграцию с GitHub и многое другое.
Код VS 1.51 отличается следующими изменениями.
- Что нового в VS Code 1.51
- Workbench
- Более заметные закрепленные вкладки
- Деревья расширений используют настраиваемое наведение
- Установить расширение без синхронизации
- Установить расширение из проводника
- Ввести команду размытия
- Встроенный терминал
- Local Echo
- IntelliSense
- Предложения по изменению размера
- Строка состояния для предложений
- Переместите курсор для выбора предложений
- Emmet
- Source Control
- Поле ввода Source Control сохраняет историю сообщений фиксации
- Git: теги команд в подменю
- Git: Rebase command
- Git: Recursive clone command
- Временная шкала: рендеринг шорткода эмодзи
- Языки
- Markdown smart select
- Параметр форматирования пустых скобок для JavaScript и TypeScript
- Поддержка браузера
- Загрузочные папки (Edge, Chrome)
- Уведомление об открытии рабочей области
- Предотвратить случайное закрытие
- Вклад в расширения
- GitHub Pull Requests and Issues
- Удаленная разработка
- Preview features
- Синхронизация настроек
- Запомните учетные данные прокси
- Поддержка бета-версии TypeScript 4.1
- Разработка расширений
- Обновленные образцы расширений
- Цвета кодиконов в деревьях
- Синхронизировать глобальное состояние
- Отображение кнопки ответа в цепочке комментариев
- Предлагаемые API расширения
- Событие изменения поставщиков диапазона складывания
- API паролей
- Engineering
- Обеспечение совместимости доверенных типов кода VS
Что нового в VS Code 1.51
Примечание. Вы можете загрузить приложение с официального веб-сайта.
Загрузить VS Code
Workbench
Более заметные закрепленные вкладки
Закрепленные вкладки теперь всегда будут отображать значок булавки, даже когда они неактивны, чтобы сделать их легче идентифицировать. Если редактор закреплен и содержит несохраненные изменения, значок отражает оба состояния.
![]()
Деревья расширений используют настраиваемое наведение
Вместо использования встроенной всплывающей подсказки в представлениях дерева расширений теперь мы используем настраиваемое наведение, которое является согласованным между платформами и лучше подходит для общего UX. .
![]()
Установить расширение без синхронизации
Теперь вы можете установить расширение без его синхронизации, пока синхронизация настроек включена.
![]()
Тема: GitHub Light
Установить расширение из проводника
VS Code теперь поддерживает установку файла расширения VSIX из проводника, щелкнув правой кнопкой мыши файл VSIX и выбрав Установить расширение VSIX элемент контекстного меню.
Ввести команду размытия
Новый внутренний
workbench.action.blu Теперь доступна команда r
, которая убирает фокус с любого ввода, на который можно сфокусироваться. Вы можете назначить сочетание клавиш для этой команды в Настройки сочетаний клавиш .Встроенный терминал
Local Echo
Для внесения изменений в терминал традиционно требуется, чтобы информация была отправлена в процесс терминала, обработана и возвращена в VS Code, чтобы на нее повлиять. Это может быть медленным при работе с плохим или удаленным подключением к SSH-серверу или Codespace .
Этот выпуск добавляет к терминалу режим “локального эха”, который пытается предсказать изменения и перемещения курсора, сделанные локально, и отобразить их в пользовательском интерфейсе без требуется обратный путь к серверу. По умолчанию предсказанные символы отображаются как “затемненные”:
![]()
Для этого можно использовать два параметра:
terminal.integrated. localEchoLatencyThreshold
настраивает обнаруженный порог задержки в миллисекундах, при котором активируется локальное эхо. Для него можно установить значение0
, чтобы включать функцию постоянно, или-1
, чтобы отключить ее. По умолчанию30
.terminal.integrated.localEchoStyle
настраивает стиль или цвет локального символа, по умолчанию –dim
.IntelliSense
Предложения по изменению размера
На этом этапе мы сделали несколько улучшения в интерфейсе предложений. Прежде всего, теперь его размер можно изменить. Перетащите стороны или углы, чтобы изменить размер элемента управления.
![]()
Тема: GitHub Light , шрифт: FiraCode
Размер Список предложений будет сохраняться и восстанавливаться между сеансами. Размер панели сведений сохраняется только для каждого сеанса, поскольку этот размер имеет тенденцию быть более изменчивым. Кроме того, параметр
editor.suggest.maxVisibleSuggestions
устарел.Строка состояния для предложений
Элемент управления предложениями теперь также может показать собственную строку состояния внизу окна. Включите его с помощью параметра
editor.suggest.showStatusBar
. Это упрощает переключение деталей и показывает, поддерживает ли завершение вставку, замену или и то, и другое.
![]()
Тема: GitHub Light , шрифт: FiraCode
В приведенном выше примере выбор «Вставить» приводит к
Math.floorceil
, а выбор «Заменить» приводит кMath.floor
.Новый параметр
editor.suggest.insertMode
позволяет вам указать, предпочитаете ли вы вставку или замену. Если предложение поддерживает оба варианта, ваше предпочтение будет использоваться по умолчанию.Переместите курсор для выбора предложений
И последнее, но не менее важное: теперь вы можете перемещать курсор, пока есть предложения. показ. Например, вы можете запускать предложения в конце слова, перемещаться влево, чтобы увидеть больше предложений, а затем использовать замену для перезаписи слова.
![]()
Тема: GitHub Light
Emmet
Пользовательские фрагменты в Emmet вернулись. Кроме того, фрагменты теперь автоматически обновляются при сохранении файла фрагментов или обновлении параметра
emmet.extensionsPath
.
Source Control
Поле ввода Source Control сохраняет историю сообщений фиксации
Это касается запрос функции для навигации по истории фиксации SCM. Нажмите ↑ (Windows, Linux Up) и ↓ (Windows, Linux Down), чтобы отобразить предыдущие и следующие коммиты соответственно. Чтобы перейти непосредственно к первой и последней позиции поля ввода, нажмите Alt вместе с соответствующей клавишей со стрелкой..
![]()
Git: теги команд в подменю
Команды Git, связанные с тегами, были добавлены в меню … Git.
![]()
Git: Rebase command
Новая команда Git: Rebase branch … имеет был добавлен, который позволяет перебазировать ветку с помощью пользовательского интерфейса.
Git: Recursive clone command
С помощью Git: Clone (Recursive) теперь вы можете рекурсивно клонировать репозитории Git, включая их вложенные подмодули Git.
Временная шкала: рендеринг шорткода эмодзи
Теперь мы рендерим шорткоды эмодзи, такие как
: smile:
в режиме просмотра временной шкалы.
![]()
Языки
Markdown smart select
Расширяйте и сжимайте выделение в документах Markdown с помощью следующих новых команд:
- Развернуть: ⌃⇧⌘ → (Windows, Linux Shift + Alt + Right)
- Уменьшить: ⌃⇧⌘ ← (Windows, Linux Shift + Alt + Left)
Выбор применяется к следующему и следует традиционному иерархическому шаблону:
- Заголовки
- Списки
- Блочные кавычки
- Изолированные блоки кода
- Блоки кода HTML
- Параграфы
![]()
Параметр форматирования пустых скобок для JavaScript и TypeScript
Новый
javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces
иtypescript.format.insertSpaceAfterOpeningAndBeforeClosingEmp > Параметр конфигурации форматирования определяет, вставлены ли пробелы между пустыми фигурными скобками. Значение по умолчанию для этих настроек - истина. Например, для JavaScript:
class Foo {doFoo () {}}
Настройка
" javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces ": false
и форматирование кода приводит к:class Foo {doFoo () {}//Обратите внимание, что пространство было удалено }
Поддержка браузера
Загрузочные папки (Edge, Chrome)
Использование нового Доступ к файловой системе API, VS Code, запущенный в браузере, теперь может предлагать действие загрузки для папок из проводника, чтобы загрузить все файлы и папки на диск.
![]()
Примечание. Для этого требуется последняя версия Microsoft Edge или Google Chrome.
Уведомление об открытии рабочей области
Если вы открываете папку, содержащую
.code-workspace
файлы на верхнем уровне, вы увидите уведомление с просьбой открыть его. Так было всегда в VS Code для настольных ПК и теперь будет работать и в браузере.
![]()
Предотвратить случайное закрытие
Новое окно настроек
. confirmBeforeClose
был добавлен для отображения диалогового окна подтверждения перед закрытием или выходом из рабочей среды.Возможные значения:
keyboardOnly
Подтверждение будет отображаться только при использовании привязки клавиш для закрытия (например, ⌘W (Windows, Linux Ctrl + W)). (по умолчанию)always
: диалоговое окно подтверждения будет отображаться всегда, даже если вы закрылись с помощью жеста мыши.never
: подтверждение никогда не будет отображаться.
![]()
Примечание : этот параметр может не охватывать все случаи. Браузеры по-прежнему могут решить закрыть вкладку или окно без подтверждения.
Вклад в расширения
GitHub Pull Requests and Issues
Работа продолжается в расширении GitHub Pull Requests and Issues , которое позволяет вам работать, создавать и управлять запросами на вытягивание и проблемами.
Чтобы узнать обо всех новых функциях и обновлениях, вы можете просмотреть полный журнал изменений для выпуска 0.22.0 расширение.
Удаленная разработка
Продолжается работа над расширениями Удаленная разработка , которые позволяют использовать контейнер, удаленный компьютер или подсистему Windows для Linux (WSL) в качестве полнофункциональной среды разработки.
Основные функции версии 1.51 включают:
- Возможность сохранения/повторного подключения к терминальным сеансам.
- Улучшенная переадресация портов опыта.
Вы можете узнать о новой функции расширения s и исправления ошибок в примечаниях к выпуску Remote Development .
Preview features
Функции предварительного просмотра не готовы к выпуску, но достаточно функциональны для использования. Мы приветствуем ваши ранние отзывы, пока они находятся в стадии разработки.
Синхронизация настроек
Теперь синхронизация настроек синхронизирует глобальное состояние расширений. Расширения должны будут предоставлять состояние для синхронизации с использованием недавно представленного setKeysForSync API.
Запомните учетные данные прокси
Мы пересматриваем диалоговое окно входа в систему, которое показывает, когда сетевое соединение требует аутентификации с помощью прокси. Новый параметр
window.enableExperimentalProxyLoginDialog: true
включит этот новый интерфейс, который мы планируем сделать по умолчанию в следующем выпуске.
![]()
Тема: GitHub Light
Диалоговое окно появится внутри окна VS Code и предложит способ запомнить учетные данные, чтобы вам не приходилось предоставлять их каждый раз при запуске VS Code. . Учетные данные будут храниться в стандартном хранилище учетных данных ОС (связка ключей в macOS, диспетчер учетных данных Windows в Windows и связка ключей gnome в Linux)..
Мы по-прежнему показываем это диалоговое окно только один раз за сеанс, но мы можем пересмотреть это решение в будущем. Вы увидите, что диалоговое окно появится снова, если учетные данные, которые вы выбрали для запоминания, недействительны. Если вы предоставите их снова, вы сможете их изменить.
Пожалуйста, включите эту опцию и сообщите нам, если что-то не работает должным образом, через наш средство отслеживания проблем .
Поддержка бета-версии TypeScript 4.1
VS Code поддерживает TypeScript 4.1 beta и ночные сборки. Обновление 4.1 содержит некоторые новые функции языка TypeScript, такие как поддержка рекурсивных условных типов , а также улучшения инструментов. Одна из основных областей – добавление начальной поддержки для тегов
@see
в комментариях JSDoc.Чтобы начать использовать ночные сборки TypeScript 4.1, просто установите расширение TypeScript Nightly . Поделитесь своим мнением и сообщите нам, если вы столкнетесь с какими-либо ошибками в TypeScript 4.1.
Разработка расширений
Обновленные образцы расширений
Мы Мы обновили некоторые из наших примеров расширения , чтобы включить стили VS Code по умолчанию, которые подключены к нашим токенам цветовой темы. Это означает, что общие элементы (текст, кнопки, поля ввода) будут тематическими и будут соответствовать стилям по умолчанию в продукте. Ниже приведены расширения, которые включают это:
- custom-editor-sample
- webview-sample
- webview-view-sample
![]()
Цвета кодиконов в деревьях
После завершения работы над
ThemeIcon
API цвета , авторы расширений могут использовать цвета темы для кодиконов в пользовательских представлениях дерева.
![]()
Синхронизировать глобальное состояние
Теперь расширения могут синхронизировать свое глобальное состояние, предоставляя ключи, значения которых должны синхронизироваться, когда включена синхронизация настроек, с помощью недавно представленный
setKeysForSync
API вglobalState
memento./** * Установите ключи, значения которых должны синхронизироваться между устройствами при синхронизации пользовательских данных *, таких как конфигурация, расширения и сувениры. * * Обратите внимание, что эта функция определяет весь набор ключей, значения которых синхронизированы: * - вызов его с пустым массивом останавливает синхронизацию для этого памятного предмета * - вызов его с непустым массивом заменяет все ключи, значения которых синхронизированы * * Для при любом заданном наборе клавиш эту функцию нужно вызывать только один раз, но многократный вызов * не причинит вреда. * * @param keys Набор ключей, значения которых синхронизируются.. */setKeysForSync (keys: string []): void;
Отображение кнопки ответа в цепочке комментариев
Расширения комментариев теперь могут управлять видимостью кнопки ответа в цепочке комментариев с помощью нового свойства
CommentThread # canReply
. Если для него установлено значениеfalse
, пользователи не будут видеть кнопку ответа или поле комментария в цепочке комментариев.Предлагаемые API расширения
Каждый этап сопровождается новыми предлагаемыми API, и авторы расширений могут их опробовать. Как всегда, мы ждем ваших отзывов. Вот что вам нужно сделать, чтобы опробовать предлагаемый API:
- Вы должны использовать инсайдеров, потому что предлагаемые API часто меняются.
- У вас должен быть эта строка в файле
package.json
вашего расширения:"enableProposedApi": true
.- Скопируйте последнюю версию файл
vscode.proposed.d.ts
в исходное расположение вашего проекта.Вы не можете опубликовать расширение, использующее предлагаемый API. В следующем выпуске могут быть критические изменения, и мы никогда не хотим нарушать существующие расширения.
Событие изменения поставщиков диапазона складывания
Поставщики диапазона складывания могут сигнализировать редактору, что диапазоны сворачивания необходимо обновить с помощью события
onDidChangeFoldingRanges
.Для получения дополнительных сведений и обратной связи используйте issue # 108929 .
API паролей
В рамках продолжающейся работы над Провайдеры аутентификации , мы представили API для хранения и извлечения конфиденциальной информации. Внутри он действует как оболочка библиотеки keytar , которую VS Code использует для хранения секретов.
/** * Получить пароль, который был сохранен с ключом. Возвращает undefined, если * не существует пароля, соответствующего этому ключу. * @param key Ключ, под которым хранился пароль. */экспортная функция getPassword (ключ: строка): Thenable ;/** * Хранить пароль под заданным ключом. * @param key Ключ для хранения пароля под * значением @param Пароль */функция экспорта setPassword (key: string, value: string): Thenable ;/** * Удалить пароль из хранилища. * @param key Ключ, под которым хранился пароль. */export function deletePassword (key: string): Thenable ;/** * Срабатывает при установке или удалении пароля. */export const onDidChangePassword: Event ;
Engineering
Обеспечение совместимости доверенных типов кода VS
Мы продолжили работу по обеспечению соответствия VS Code “надежным типам”. Цель состоит в том, чтобы предотвратить уязвимости межсайтового скриптинга на основе DOM. Вы можете узнать больше о доверенных типах на сайте web.dev Trusted Types и следить за нашим прогрессом в проблема # 103699 .
Источник: Microsoft