GitHub — майкрософт / терминал на webdesignernews.com

Этот репозиторий содержит исходный код для:

  • Windows Terminal
  • Консольный хост Windows ( conhost.exe )
  • Компоненты, общие для двух проектов
  • ColorTool
  • Примеры проектов, в которых показано, как использовать API-интерфейсы консоли Windows

Другие связанные репозитории включают в себя:

Статус сборки

Проект Статус сборки
Терминал  Статус сборки "data-canonical-src =" https://dev.azure.com/ms/Terminal/_apis/build/status/Terminal%20CI?branchName=master "style =" max-width : 100%; "/> </td>
</tr>
<tr>
<td> ColorTool </td>
<td> <img src=

Пожалуйста, уделите несколько минут просмотру приведенного ниже обзора, прежде чем углубляться в код:

Windows Terminal

Windows Terminal — это новое, современное, многофункциональное, производительное терминальное приложение для пользователей командной строки. Он включает в себя многие функции, наиболее часто запрашиваемые сообществом командной строки Windows, включая поддержку вкладок, форматированного текста, глобализации, конфигурируемости, создания тем и стилей и т. Д.

Терминал также должен будет соответствовать нашим целям и мерам, чтобы он оставался быстрым, эффективным и не потреблял огромного количества памяти или энергии.

Консольный хост Windows

Консольный хост Windows, conhost.exe представляет собой оригинальный интерфейс пользователя командной строки Windows. Он реализует инфраструктуру командной строки Windows и отвечает за размещение API консоли Windows, механизма ввода, механизма рендеринга и пользовательских настроек. Хост-код консоли в этом репозитории является фактическим источником, из которого conhost.exe собран в самой Windows.

Основная цель консоли — обеспечить обратную совместимость с существующими приложениями консольной подсистемы.

С момента вступления во владение командной строкой Windows в 2014 году команда добавила в консоль несколько новых функций, включая прозрачность окон, выбор на основе строк, поддержку последовательностей ANSI / виртуальных терминалов, 24-битный цвет, псевдоконсоль. («ConPTY») и др.

Однако, поскольку основная цель консоли — поддерживать обратную совместимость, мы не смогли добавить многие функции, о которых просило сообщество, и которые мы хотели добавить в течение последних нескольких лет — как вкладки!

Эти ограничения привели нас к созданию нового терминала Windows.

Общие компоненты

Во время капитального ремонта консоли мы значительно модернизировали ее кодовую базу. Мы четко разделили логические сущности на модули и классы, ввели некоторые ключевые точки расширения, заменили несколько старых домашних коллекций и контейнеров на более безопасные и эффективные контейнеры STL и сделали код проще и безопаснее, используя библиотеку заголовков WIL от Microsoft.

Результатом этой работы по капитальному ремонту стало создание нескольких ключевых компонентов, которые были бы полезны для любой реализации терминала в Windows, включая новый механизм разметки текста и рендеринга на основе DirectWrite, текстовый буфер, способный хранить как UTF-16, так и UTF-. 8, и анализатор / эмиттер VT.

Строительство нового терминала

Когда мы начали создавать новое терминальное приложение, мы исследовали и оценили несколько подходов и технологических стеков. В конечном итоге мы решили, что наши цели будут лучше всего достигнуты, если придерживаться C ++ и делиться вышеупомянутыми модернизированными компонентами, поместив их поверх современной платформы приложений Windows и инфраструктуры пользовательского интерфейса.

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

Где я могу загрузить Windows Terminal?

Двоих файлов для загрузки пока нет.

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

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

Я построил и запустил новый терминал, но у меня просто пустое окно приложения!

Убедитесь, что вы строите для архитектуры своего компьютера. Если на вашем компьютере установлена ​​64-разрядная версия Windows, измените свою платформу решений на x64.
Чтобы проверить архитектуру своей ОС, перейдите в «Настройки» -> «Система» -> «О программе» (или Win + X -> Система) и в разделе спецификации устройства проверка для Тип системы

Я собрал и запустил новый терминал, но он выглядит как старая консоль! Что дает?

Во-первых, убедитесь, что вы собираете и развертываете CascadiaPackage в Visual Studio, НЕ Host.EXE . OpenConsole.exe — это просто conhost.exe та же старая консоль, которую вы знаете и любите. opencon.cmd запустит openconsole.exe и, к сожалению, openterm.cmd в настоящее время не работает.

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

Я попытался запустить WindowsTerminal.exe, и он вылетел!

  • Не пытайтесь запустить его без упаковки. Обязательно соберите и разверните CascadiaPackage из Visual Studio и запустите приложение Windows Terminal (Dev Build).
  • Убедитесь, что вы используете правильную версию Windows. Вам нужно быть на сборках Insider или ждать выпуска 1903 года, поскольку Windows Terminal ТРЕБУЕТ функций из последней версии Windows.

Предпосылки

  • Вы должны использовать Windows 1903 (сборка> = 10.0.18362.0) или выше, чтобы запустить Windows Terminal

  • У вас должен быть установлен 1903 SDK (сборка 10.0.18362.0)

  • У вас должен быть установлен по крайней мере VS 2017.

  • Вы должны установить следующие рабочие нагрузки через установщик VS. Если вы используете VS 2019, при открытии решения вам будет предложено автоматически установить недостающие компоненты.

    • Разработка рабочего стола с C ++
    • Разработка универсальной платформы Windows
      • Также установите следующий отдельный компонент:
        • C ++ (v141) Универсальные инструменты для платформы Windows
  • Вы также должны включить режим разработчика в приложении «Настройки Windows», чтобы локально установить и запустить приложение «Терминал».

Отладка

  • Чтобы выполнить отладку в VS, щелкните правой кнопкой мыши CascadiaPackage (из VS Solution Explorer) и перейдите в свойства, в меню «Отладка» измените «Процесс приложения» и «Процесс фоновой задачи» на «Только собственный»

Вклад

Мы рады работать вместе с вами, нашим удивительным сообществом, над созданием и улучшением Windows Terminal!

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

👉 Помните! Ваш вклад может быть включен в будущие версии Windows! Из-за этого все запросы извлечения будут подвергаться тому же уровню контроля качества, стандартов кодирования, производительности, глобализации, доступности и совместимости, что и наши внутренние участники.

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

Документация

Вся документация находится в папке ./ doc . Если вы хотите внести свой вклад в документацию, отправьте запрос на извлечение.

Общение с командой

Самый простой способ общения с командой — через GitHub. Пожалуйста, регистрируйте новые проблемы, запросы функций и предложения, но НЕ Ищите подобные открытые / закрытые ранее существующие проблемы прежде, чем делать .

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

Если вы хотите задать вопрос, который, по вашему мнению, не является проблемой (пока), обратитесь к нам через Twitter:

Создание Кодекса

Этот репозиторий использует подмодули git для некоторых своих зависимостей. Чтобы убедиться, что подмодули восстановлены или обновлены, обязательно выполните перед сборкой следующее:

 Обновление подмодуля git --init --recursive 

OpenConsole.sln может быть собран из Visual Studio или из командной строки с использованием MSBuild. Для сборки из командной строки найдите вашу оболочку ниже.

PowerShell

  Модуль импорта .  Tools  OpenConsole.psm1
 Set-MsBuildDevEnvironment 
 Invoke-OpenConsoleBuild  

ЦМД

Мы предоставили набор удобных сценариев, а также README в каталоге / tools чтобы помочь автоматизировать процесс создания и запуска тестов.

Руководство по кодированию

Пожалуйста, ознакомьтесь с этими краткими документами ниже, касающимися наших стандартов кодирования и т. Д.

👉 Если вы обнаружите, что чего-то не хватает в этих документах, не стесняйтесь вносить вклад в любой из наших файлов документации в любом месте репозитория (или создавать новые!)

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

В этом проекте принят открытый кодекс поведения Microsoft.
Для получения дополнительной информации см. FAQ по Кодексу поведения или свяжитесь с opencode@microsoft.com с любыми дополнительными вопросами или комментариями.