Октябрь 2017 (Версия 1.18)

Обновление 1.18.1: обновление устраняет эти проблемы.

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

 

Если вы хотите прочитать эти заметки о выпуске в Интернете, перейдите в «Обновления» на code.visualstudio.com.

Вы также можете ознакомиться с этим выпуском 1.18 в видео, из Cloud Developer Advocate Brian Clark.

Примечания к выпуску размещены в следующих разделах, относящихся к областям фокусировки VS Code. Вот некоторые дополнительные обновления:

  • Workbench - Синий логотип, поддержка переполнения панелей, подтверждение перемещения файла.
  • Integrated Terminal - Улучшенная поддержка Windows, отображение слабых текстовых и неактивных ключей среды.
  • Source Control - Встроенное ожидание изменений, индикаторы File Explorer.
  • Languages - TypeScript 2.6.1, локализованные сообщения JS / TS, IntelliSense внутри строк и комментарии.
  • Debugging - Конфигурация отладки в строке состояния, команды фокуса обзора отладки, окраска консоли.
  • Extension Authoring - Событие с изменением конфигурации, асинхронная проверка входных полей, открывание / закрытие папок.

Инсайдеры: хотите как можно скорее увидеть новые функции? Вы можете скачать ночную сборку и попробовать последние обновления, как только они будут доступны.

Рабочие ветки

Поддержка многоуровневых рабочих пространств

Поддержка многоуровневых рабочих областей теперь включена по умолчанию в версии Stable. Это наш номер # 1 - это время уже сейчас.

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

ПРИМЕЧАНИЕ. Авторы внутренних ссылок должны ссылаться на нашу вики, в которой объясняются новые API расширений, чтобы ваше расширение полностью использовало многоуровневые рабочие области.

Статус Git в файлах проводника

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

Декорации Git можно настроить разными способами. Вы можете полностью скрыть декорации с помощью параметра git.decorations.enabled и настроить только отображение цветов explorer.decorations.colors или значков explorer.decorations.badges. Есть новые цвета для авторов тем, которые имеют префикс gitDecoration.

 

Существует также предлагаемый API, позволяющий авторам расширений добавлять цветные украшения к произвольным ресурсам. Мы еще ничего не доработали, но хотим узнать, как вы будете использовать украшения.

Вертикальные панели

По популярному запросу пользователя мы теперь поддерживаем вертикальную компоновку панели. Используя действия Move to Right и Move to Bottom в панели заголовка панели, панели могут переключаться между отображаемыми внизу или справа.

Улучшение заголовка панели

Мы улучшили панель заголовков панелей, чтобы теперь можно было перегруппировать и скрыть панели, а также добавить поддержку переполнения. Переполнение с выпадающим меню «Дополнительные виды» особенно полезно, когда панели стыкуются вертикально и имеют ограниченное горизонтальное пространство.

Синий логотип для Stable выпуска

Логотип VS Code для версий Stable теперь снова синий. Вы можете прочитать все о нашем путешествии по иконкам в этом сообщении в блоге.

Примечание. В зависимости от вашей платформы вы все равно можете увидеть более ранний логотип из-за кэширования операционной системы значка приложения.

Подтверждения в Проводнике

Теперь мы приводим диалог подтверждения при перемещении файлов или папок в Проводнике путем перетаскивания. Это должно предотвращать случайное выполнение движения, когда это нежелательно. Если вы не хотите видеть диалоговое окно подтверждения, вы можете настроить explorer.confirmDragAndDrop на false.

Мы также добавили новый параметр explorer.confirmDelete, чтобы скрыть наш существующий диалог подтверждения удаления.

 

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

Быстрое открытие применяет исключения .gitignore

Быстрое открытие (CTRL + P) применяет исключения из файлов .gitignore при включенном параметре «search.useIgnoreFiles».

Редактор

Усовершенствованные Ctrl + D / Cmd + D

Из-за популярного запроса действие Add Selection to Next Find Match (CTRL + SHIFT + RightArrow) было изменено, чтобы вести себя по-другому, когда вы начинаете добавлять несколько курсоров без выделенного текста. В этом случае действие будет временно игнорировать параметры поиска виджета и всегда будет искать совпадения целых слов и случаев.

Переход к следующей / предыдущей символической подсветке

Благодаря PR # 35740 от Krzysztof Cieślak, теперь можно перемещаться между выделенными символами с помощью F7 или SHIFT + F7 на языках, где есть поставщик семантической подсветки. Когда вы выбрали символ, вы можете быстро перейти к другим экземплярам этого символа в вашем файле.

Интегрированный терминал

Поддержка тусклого текста

Терминал теперь поддерживает escape-последовательность для тусклого текста:

Отмена ключей среды

Вы уже можете установить пользовательские переменные среды для сеансов встроенного терминала, но теперь вы также можете очистить существующие переменные, назначив null в настройках terminal.integrated.env. <Platform> параметр:

"terminal.integrated.env.linux": {

  "HOME": null

}

Улучшенная поддержка Windows

Улучшена поддержка Windows в интегрированном терминале:

 

  • Глубоко вложенные процессы теперь корректно очищаются после выхода из сеанса терминала. Это произошло чаще всего с серверов, запущенных с Node.js.
  • В Windows терминал получил уже завернутые строки, поэтому мы не знаем, какие строки завернуты и которые разделены новыми строками. Теперь определяется, где строки завертываются, проверяя последний символ предыдущей строки и отмечая их. Это устраняет проблему с задачами, в которых проблемы со сбоями разбиваются на Windows, а также является одним из предварительных условий для получения многострочных ссылок, работающих в Windows.

Языки

TypeScript 2.6.1

VS Code 1.18 поставляется с TypeScript 2.6.1. Это обновление предоставляет VS Code несколько улучшений инструментальных средств, а также исправляет несколько ошибок. Подробнее о TypeScript 2.6 читайте здесь.

Автоматический импорт для JavaScript и TypeScript

Ускорьте свое кодирование с помощью автоматического импорта для JavaScript и TypeScript. Список предложений теперь включает все экспортированные символы в текущем проекте. Просто начните печатать:

Если вы выберете одно из предложений из другого файла или модуля, VS Code автоматически добавит для него импорт. В этом примере VS Code добавляет импорт для Hercules в начало файла:

Для автоматического импорта требуется TypeScript 2.6+. Вы можете отключить автоматический импорт, установив "typescript.autoImportSuggestions.enabled": false.

Локализованные сообщения об ошибках и описания быстрого исправления для JavaScript и TypeScript

Сообщения об ошибках JavaScript и TypeScript и описания быстрого исправления теперь отображаются на вашем текущем языке отображения:

Параметр "typescript.locale" позволяет настроить, какой язык используется отдельно от языка отображения вашего редактора. Чтобы вернуться к сообщениям об ошибках VS Code 1.17 на английском языке, установите "typescript.locale": "en".

Извлечение локального рефакторинга для JavaScript и TypeScript

VS Code 1.18 добавляет несколько новых рефакторингов JavaScript и TypeScript в дополнение к рефакторингу метода извлечения, добавленному в VS Code 1.16. Рефакторинг константы извлечения создает новую локальную переменную для текущего выбранного выражения:

При работе с классами вы также можете извлечь значение для нового свойства.

Установка @types Quick Fix для TypeScript

TypeScript теперь предлагает быстрое исправление для npm установки отсутствующих определений @types для данного модуля:

Это быстрое исправление будет устанавливать определение @types локально и добавит его в devDependencies в package.json.

Добавление typescript.tsc.autoDetect параметра

VS Code автоматически генерирует задачи сборки и сборки + просмотр для всех файлов tsconfig.json в вашей рабочей области. В VS Code 1.18 параметр typescript.tsc.autoDetect теперь позволяет вам контролировать, какие типы задач генерируются:

"typescript.tsc.autoDetect": "build"   // only generate build tasks

"typescript.tsc.autoDetect": "watch" // only generate build+watch tasks

"typescript.tsc.autoDetect": "on"      // Generate both (default)

"typescript.tsc.autoDetect": "off"      // Don't generate tsconfig build tasks

Поддержка выборочного включения быстрых предложений внутри строк и комментариев

Быстрые предложения отключены внутри строк и комментариев по умолчанию. В некоторых случаях, например, в строках шаблонов JavaScript, строка или комментарий могут содержать блоки кода, в которых должны быть включены быстрые предложения. Grammars теперь может намекнуть, что VS Code должен повторно включить быстрые предложения, добавив meta.embedded исключение на токенах внутри строки или комментария:

JSON

JSON теперь поддерживает проект JSON Schema Draft 06. Наиболее заметными дополнениями являются свойства const, contains и propertyNames. Читайте здесь, чтобы получить более подробный обзор изменений, внесенных в проект 04.

Управления источником

Обзор встроенных изменений

Теперь вы можете просматривать изменения исходного кода прямо в стандартном редакторе. Эта функция зависит от того, поддерживается ли она поставщиком исходного кода, но она уже включена для репозиториев Git из коробки.

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

Git: обнаружение маркера конфликта

При создании файла, который помечен как имеющий конфликты из-за слияния или переадресации, VS Code проверяет стандартные маркеры слияния (например, <<<<<<<) и предупреждает вас, если вы забудете удалить их, когда вы находитесь для постановки файла.

Git: улучшенная интеграция

Недавно был добавлен патч для Git, который позволяет использовать такие инструменты, как VS Code, для использования git-статуса без вмешательства в другие параллельные команды Git. VS Code теперь готов к этой предстоящей смене Git, используя правильный контекст среды (GIT_OPTIONAL_LOCKS) при spawning Git.

Расширения

Рекомендуемый значок расширения

Рекомендуемые расширения теперь отображают значок, чтобы легко отличить их от других расширений в списке. Наведите указатель мыши на значок или щелкните элемент списка, чтобы узнать, почему вам было рекомендовано расширение.

Единое представление, объединяющее рабочее пространство и общие рекомендации

Два представления для рекомендуемых расширений рабочего пространства и общие рекомендуемые расширения теперь объединены в одно представление с двумя видами рекомендаций, отображаемыми с разделителем. Используйте команду «Расширения: Показать рекомендуемые расширения», чтобы просмотреть это представление.

 

Также есть удобная команда «Установить все рекомендованные рабочие области» в строке заголовка WORKSPACE RECOMMENDATIONS, чтобы установить все расширения, рекомендованные другими пользователями вашего рабочего пространства.

 

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

Отладка

Отладка в строке состояния

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

Фокусные действия

Мы внедрили новые действия для легкого перемещения фокуса клавиатуры в различные разделы Debug. Это должно облегчить навигацию, ориентированную на клавиатуру, во время отладки.

 

Эти действия:

 

  • Focus Variables: workbench.debug.action.focusVariablesView
  • Focus Watch: workbench.debug.action.focusWatchView
  • Focus CallStack: workbench.debug.action.focusCallStackView
  • Focus Breakpoints: workbench.debug.action.focusBreakpointsView

Начать без ярлыка отладки

Ярлык по умолчанию для macOS для Debug: Start Without Debugging изменен на CTRL + F5, чтобы избежать столкновения с существующей комбинацией клавиш macOS.

Раскраска результатов оценки консоли отладки на основе типа

Отладочные выражения отладки теперь окрашены на основе свойства типа, возвращаемого из расширения отладки. В настоящее время поддерживается расширение отладки Node.js.

Больше поддержки WSL для Node.js

Первый взгляд на поддержку отладки Node.js в подсистеме Windows для Linux (WSL) уже был доступен в предыдущей версии (но только для более старых версий Node.js, которые по-прежнему поддерживают «устаревший» протокол). В этой версии был интегрирован еще один запрос от Bartosz Sosnowski (@bzoz), который добавляет поддержку протокола «инспектор», который используется более поздними версиями Node.js. С помощью этого обновления теперь можно запустить Node.js v8 в WSL.

Задачи

Улучшение схемы

Обновлена схема для файла tasks.json версии 2.0.0. Свойство taskName устарело в пользу свойства label, чтобы сделать его более согласованным с внесенными задачами. Кроме того, теперь есть фрагмент для новых задач. По умолчанию он создает задачу оболочки типа для выполнения команд в встроенный терминал.

 

workspaceFolder заменяет workspaceRoot

 

В последнем выпуске мы изменили переменную ${workspaceRoot} в пользу ${workspaceFolder}, чтобы сделать это совместимым с поддержкой многопользовательского рабочего пространства. По той же причине мы осуждаем ${workspaceRootFolderName}. Вместо этого используйте ${workspaceFolderBasename}. Это отклонение применяется также к конфигурациям запуска отладки.

Повышение производительности

Быстрое редактирование декорация

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

PR # 36410 переопределяет декорации редактора в виде дерева треугольников (увеличенное дерево Red-Black). Помимо сокращения времени, затраченного на все операции, связанные с оформлением (создание, обновление, удаление или запрос), это изменение также приносит некоторую впечатляющую экономию памяти. В качестве непосредственного результата этих оптимизаций мы увеличили количество файлов в типе поиска по типу от 1000 до 20 000 совпадений.

Открытие окон

Мы всегда находимся в поиске способов улучшить время запуска VS Code. В течение последнего месяца мы внесли ряд улучшений, которые значительно сократили время первоначального (холодного) запуска VS Code.

Расширение авторинга

Конфигурация: Прослушайте конкретные изменения

Теперь событие изменения конфигурации предоставляет объект ConfigurationChangeEvent, который имеет метод  affectsConfiguration, влияет на конфигурацию, чтобы проверить изменения конфигурации. Вы также можете проверить, изменилась ли конфигурация ресурса.

/**

 * An event describing the change in Configuration

 */

export interface ConfigurationChangeEvent {

 

    /**

     * Returns `true` if the given section for the given resource (if provided) is affected.

     *

     * @param section Configuration name, supports _dotted_ names.

     * @param resource A resource Uri.

     * @return `true` if the given section for the given resource (if provided) is affected.

     */

    affectsConfiguration(section: string, resource?: Uri): boolean;

}

Проверка асинхронного ввода

Функция showInputBox теперь поддерживает асинхронную проверку. Вызовите showInputBox так:

vscode.window.showInputBox({

  async validateInput(value) {

    return await someLongRunningOperation(value);

  }

});

Значки папок в файлах с иконками файлов

Темы значков файлов теперь могут отключать значок папки по умолчанию (вращающийся треугольник) в виде дерева и использовать значки папок для указания состояния расширения:

Для этого в разделе «Значки файлов» необходимо указать "hidesExplorerArrows": true в файле определения темы «Файл». Благодаря Ари для PR.

Новый контекст: resourceExtname

Существует новый контекстный ключ для управления привязками клавиш и пунктами меню. Его имя resourceExtname и его значение будет расширением файла.

Новое свойство workspace.name

Добавлено новое свойство workspace.name, которое обеспечивает (только для чтения) доступ к имени рабочей области. Имя должно быть undefined, если рабочее пространство не открыто.

SCM: новое меню: scm / change / title

Наряду с новым обзором изменений в SCM теперь доступен новый контекст контекста: scm / change / title. Он позволяет вам вносить команды в заголовок встроенного обзора изменений.

Терминал: настройка среды

Теперь вы можете настроить среду экземпляров терминалов, запущенных с помощью API расширения:

window.createTerminal({

  name: 'My session',

  shell: 'zsh',

  env: {

    JAVA_HOME: '<path>'

  }

});

Debug API обновления

Команда debug.logToDebugConsole устарела

 

С введением надлежащего vscode.debug.console.append (...) API в октябрьском выпуске больше не нужно использовать команду debug.logToDebugConsole для добавления текста в консоль отладки. В связи с этим мы осуждаем команду debug.logToDebugConsole и планируем отказаться от нее в будущем. Если вам сложно отказаться от этой функции, пожалуйста, сообщите здесь.

Примечание. В настоящее время этот API предлагается, поэтому для его использования вы должны выбрать его, добавив "enableProposedApi": true для package.json, и вам придется скопировать vscode.proposed.d.ts в ваш проект расширения , Также имейте в виду, что вы не можете публиковать расширение для Marketplace, которое использует атрибут enableProposedApi.

Команда vscode.startDebug удалена

 

Как было объявлено в предыдущем выпуске, мы, наконец, удалили поддержку команды vscode.startDebug.

 

Команда vscode.workbench.customDebugRequest была удалена

 

Как было объявлено в предыдущем выпуске, мы, наконец, удалили поддержку команды vscode.workbench.customDebugRequest.

Отладочные вклады в package.json

Событие активации onDebug: type удалено

 

Как было объявлено в предыдущем выпуске, мы, наконец, удалили поддержку события активации onDebug: type.

 

Исправлено использование debuggers.startSessionCommand в package.json

 

Как было объявлено в предыдущем выпуске, мы, наконец, удалили поддержку команды startSessionCommand.

 

Использование команды с debuggers.initialConfigurations в package.json устарело

 

Как было объявлено в предыдущем выпуске, мы, наконец, удалили поддержку команды initialConfigurations.

 

Обновлена документация и пример макета-отладки

 

В этом выпуске большая часть командного отладочного API была заменена соответствующим API, доступным через vscode.d.ts. Следовательно, мы обновили как документацию для расширений отладки, так и основной пример отладки для новых API.

Новые команды