Напиши расширение TurboWarp на JavaScript, названи... (Branch)
Created on: August 8, 2026
Answered using GPT-5.6 Thinking by Chat01
Created on: August 8, 2026
Answered using GPT-5.6 Thinking by Chat01
Напиши расширение TurboWarp на JavaScript, название: "Макросы", цвет расширения: #058aa8 (в системе RGB). В перечислении блоков расширения все заголовки блоков между их перечислением также отображать в палитре блоков там, где они находятся в перечислении блоков. Пустые блоки между блоками в перечислении блоков - небольшое пространство между этими блоками в палитре блоков (если пустых строк несколько, умножать на количество пустых строк между перечислением блоков). Вот максимально подробный план расширения:
"()" - поле ввода текста; "{}" - поле ввода только числового/цифрового значения; "[]" - поле выбора варианта; "([])" - поле выбора варианта, куда можно вставлять блоки-переменные (все овальные блоки, не только переменные); "/" - отделение вариантов друг от друга в поле выбора варианта (не важно, можно ли туда вставлять овальные блоки-переменные или нет).
Блоки:
Заголовок "Симуляция нажатия"
Блок "симулировать нажатие ([])" - варианты выбора: все клавиши, доступные на клавиатуре (включая F1 - F12, Win и все кнопки Нум Пада), все кнопки мыши: "ПКМ" / "СКМ" / "ЛКМ" / "Дополнительный кнопки мыши" - (под "Дополнительные кнопки мыши" подразумевается симуляция нажатие всех дополнительных кнопок мыши одновременно, даже если их нет на мышки пользователя), а также: "Скроллинг вверх" / "Скроллинг вниз" (симулировать скроллинг колёсика мыши вверх или вниз, в зависимости от выбора).
Блок "остановить симуляцию нажатия ([])" - варианты выбора: все клавиши, доступные на клавиатуре (включая F1 - F12, Win и все кнопки Нум Пада), все кнопки мыши: "ПКМ" / "СКМ" / "ЛКМ" / "Дополнительный кнопки мыши" - (под "Дополнительные кнопки мыши" подразумевается симуляция нажатие всех дополнительных кнопок мыши одновременно, даже если их нет на мышки пользователя), а также: "Скроллинг вверх" / "Скроллинг вниз" (симулировать скроллинг колёсика мыши вверх или вниз, в зависимости от выбора).
Блок-сенсор "([]) симулирует нажатие?" - варианты выбора: все клавиши, доступные на клавиатуре (включая F1 - F12, Win и все кнопки Нум Пада), все кнопки мыши: "ПКМ" / "СКМ" / "ЛКМ" / "Дополнительный кнопки мыши" - (под "Дополнительные кнопки мыши" подразумевается симуляция нажатие всех дополнительных кнопок мыши одновременно, даже если их нет на мышки пользователя), а также: "Скроллинг вверх" / "Скроллинг вниз" (симулировать скроллинг колёсика мыши вверх или вниз, в зависимости от выбора).
Блок "симулировать нажатие ()" - можно вписать любую клавишу/кнопку/скроллинг и она будет работать: все клавиши, доступные на клавиатуре (включая F1 - F12, Win и все кнопки Нум Пада), все кнопки мыши: "ПКМ" / "СКМ" / "ЛКМ" / "Дополнительный кнопки мыши" - (под "Дополнительные кнопки мыши" подразумевается симуляция нажатие всех дополнительных кнопок мыши одновременно, даже если их нет на мышки пользователя), а также: "Скроллинг вверх" / "Скроллинг вниз" (симулировать скроллинг колёсика мыши вверх или вниз, в зависимости от выбора).
Блок "остановить симуляцию нажатия ()" - можно вписать любую клавишу/кнопку/скроллинг и она будет работать: все клавиши, доступные на клавиатуре (включая F1 - F12, Win и все кнопки Нум Пада), все кнопки мыши: "ПКМ" / "СКМ" / "ЛКМ" / "Дополнительный кнопки мыши" - (под "Дополнительные кнопки мыши" подразумевается симуляция нажатие всех дополнительных кнопок мыши одновременно, даже если их нет на мышки пользователя), а также: "Скроллинг вверх" / "Скроллинг вниз" (симулировать скроллинг колёсика мыши вверх или вниз, в зависимости от выбора).
Блок-сенсор "() симулирует нажатие?" - можно вписать любую клавишу/кнопку/скроллинг и она будет работать: все клавиши, доступные на клавиатуре (включая F1 - F12, Win и все кнопки Нум Пада), все кнопки мыши: "ПКМ" / "СКМ" / "ЛКМ" / "Дополнительный кнопки мыши" - (под "Дополнительные кнопки мыши" подразумевается симуляция нажатие всех дополнительных кнопок мыши одновременно, даже если их нет на мышки пользователя), а также: "Скроллинг вверх" / "Скроллинг вниз" (симулировать скроллинг колёсика мыши вверх или вниз, в зависимости от выбора).
Блок-переменная "все симулируемые активы" - перечисление всех симулируемых клавиш/кнопок/скроллингов и т.д. в формате: "(название клавиши/кнопки/скриллинга); (название клавиши/кнопки/скриллинга); ....".
Блок-переменная "количество симулируемых активов" - количество всех симулируемых клавиш, кнопок и скроллингов вместе взятых.
Блок "установить тип симуляции нажатия клавиш-букв (["английские и русский" / "только английские" / "только русские"])" - если клавиша - буква, "английский и русские" - симулирует и английскую и русскую версию клавиши одновременно; "только английские" и "только русские" - понятно.
Блок "установить тип симуляции нажатия клавиш-символов (["с Shift и без" / "только с Shift" / "только без Shift"])" - если клавиша-символ, симулировать все возможные варианты этой клавиши в соответствии с выбором в блоке.
Блок "установить раскладку симуляции нажатия клавиш-символов (["английская и русская" / "только английская" / "только русская"])" - если клавиша-символ, симулировать все возможные варианты этой клавиши в соответствии с выбором в блоке.
Блок-переменная "тип симуляции нажатия клавиш-букв"
Блок-переменная "раскладка симуляции нажатия клавиш-символов"
Блок-переменная "тип симуляции нажатия клавиш-символов" - ("с Shift и без" / "только с Shift" / "только без Shift").
Заголовок "Сенсоры нажатий"
15. Блок-сенсор "актив ([]) нажат?" - варианты выбора: все клавиши, доступные на клавиатуре (включая F1 - F12, Win и все кнопки Нум Пада), все кнопки мыши: "ПКМ" / "СКМ" / "ЛКМ" / "Дополнительный кнопки мыши" - (под "Дополнительные кнопки мыши" подразумевается симуляция нажатие всех дополнительных кнопок мыши одновременно, даже если их нет на мышки пользователя), а также: "Скроллинг вверх" / "Скроллинг вниз" (симулировать скроллинг колёсика мыши вверх или вниз, в зависимости от выбора).
16. Блок-сенсор "актив () нажат?" - можно вписать любую клавишу/кнопку/скроллинг и она будет работать: все клавиши, доступные на клавиатуре (включая F1 - F12, Win и все кнопки Нум Пада), все кнопки мыши: "ПКМ" / "СКМ" / "ЛКМ" / "Дополнительный кнопки мыши" - (под "Дополнительные кнопки мыши" подразумевается симуляция нажатие всех дополнительных кнопок мыши одновременно, даже если их нет на мышки пользователя), а также: "Скроллинг вверх" / "Скроллинг вниз" (симулировать скроллинг колёсика мыши вверх или вниз, в зависимости от выбора).
Блок-переменная "все нажатие активы" - перечисление всех симулируемых клавиш/кнопок/скроллингов и т.д. в формате: "(название клавиши/кнопки/скриллинга); (название клавиши/кнопки/скриллинга); ....".
Блок-переменная "количество нажатых активов" - количество всех нажатых клавиш, кнопок и скроллингов вместе взятых.
Блок "установить тип считывания нажатых клавиш-букв (["английский и русский" / "только английский" / "только русский"])" - допустим есть блок-сенсор "клавиша (W) нажата?", с типом "английский и русский" и нажатие "Ц" и нажатие "W" будет засчитываться, с типом "только английский" будет засчитываться только нажатие "W", с "только "только русский" только нажатие "Ц".
Блок "установить тип считывания нажатых клавиш-символов (["с Shift и без" / "только с Shift" / "только без Shift"])" - тоже самое что и прошлый (19) блок, только теперь с Shift и с клавишами-символами.
Блок "установить раскладку считывания нажатых клавиш-символов (["английский и русский" / "только английский" / "только русский"])" - тоже самое, что и девятнадцатый (19) блок, только с клавишами-символами.
Блок-переменная "тип считывания нажатий клавиш-букв" - "английский и русский" / "только английский" / "только русский" в зависимости от девятнадцатого (19) блока.
Блок-переменная "тип считываний нажатий клавиш-символов" - "с Shift и без" / "только с Shift" / "только без Shift" в зависимости от двадцатого (20) блока.
Блок-переменная "раскладка считывания нажатий клавиш-символов" - "английский и русский" / "только английский" / "только русский" в зависимости от двадцать первого (21) блока.
Заголовок "Макросы"
25. Блок "начать запись макроса (особое значение-название макроса, для отделения его от других)" - возможность записывать несколько макросов, засчитывает нажатие всех клавиш/кнопок/скроллингов и т.д., с возможностью воспроизвести их потом.
26. Блок "остановить запись макроса (особое значение-название макроса, для отделения его от других)" - возможность записывать несколько макросов, засчитывает нажатие всех клавиш/кнопок/скроллингов и т.д., с возможностью воспроизвести их потом.
27. Блок "продолжить/приостановить запись макроса (особое значение-название макроса, для отделения его от других)" - возможность записывать несколько макросов, засчитывает нажатие всех клавиш/кнопок/скроллингов и т.д., с возможностью воспроизвести их потом.
28. Блок "очистить макрос (особое значение-название макроса, для отделения его от других)" - возможность записывать несколько макросов, засчитывает нажатие всех клавиш/кнопок/скроллингов и т.д., с возможностью воспроизвести их потом.
Блок "воспроизвести/приостановить макрос (особое значение-название макроса, для отделения его от других)" - возможность записывать несколько макросов, засчитывает нажатие всех клавиш/кнопок/скроллингов и т.д., с возможностью воспроизвести их потом.
Блок-сенсор "макрос (особое значение-название макроса, для отделения его от других) существует?" - если макрос с таким особым значением-названием не записывался или был очищен (сброшен), выдавать значение "false".
Блок-сенсор "макрос (особое значение-название макроса, для отделения его от других) содержит ([])" - варианты выбора: все клавиши, доступные на клавиатуре (включая F1 - F12, Win и все кнопки Нум Пада), все кнопки мыши: "ПКМ" / "СКМ" / "ЛКМ" / "Дополнительный кнопки мыши" - (под "Дополнительные кнопки мыши" подразумевается симуляция нажатие всех дополнительных кнопок мыши одновременно, даже если их нет на мышки пользователя), а также: "Скроллинг вверх" / "Скроллинг вниз" (симулировать скроллинг колёсика мыши вверх или вниз, в зависимости от выбора).
Блок-сенсор "макрос (особое значение-название макроса, для отделения его от других) содержит ()" - можно вписать любую клавишу/кнопку/скроллинг и она будет работать: все клавиши, доступные на клавиатуре (включая F1 - F12, Win и все кнопки Нум Пада), все кнопки мыши: "ПКМ" / "СКМ" / "ЛКМ" / "Дополнительный кнопки мыши" - (под "Дополнительные кнопки мыши" подразумевается симуляция нажатие всех дополнительных кнопок мыши одновременно, даже если их нет на мышки пользователя), а также: "Скроллинг вверх" / "Скроллинг вниз" (симулировать скроллинг колёсика мыши вверх или вниз, в зависимости от выбора).
Блок-переменная "длина макроса (особое значение-название макроса, для отделения его от других)"
Блок-переменная "количество записанных макросов"
Должен быть ОДИН скрипт на JavaScript (.js), без дополнительных скриптов, ТОЛЬКО JAVASCRIPT. Если что-либо (и всё связанное с этим, по желанию) никак реализовать - не реализовывай и пропускай!
Готово. Создан один JavaScript-файл, без дополнительных скриптов:
В нём:
#058aa8 = RGB (5, 138, 168);LABEL; (GitHub)---;([]) разрешают вставлять овальные reporter-блоки;postIOData() для передачи данных виртуальным устройствам. (GitHub)node --check, дополнительно прошёл функциональный smoke-test.Расширение нужно загружать как unsandboxed Custom Extension, так как доступ к внутренней VM и глобальным событиям ввода требует режима без песочницы. TurboWarp официально описывает unsandboxed-расширения как выполняющиеся в основном окне с доступом к дополнительным возможностям. (docs.turbowarp.org)
Настоящие системные нажатия клавиш в Windows/других программах из браузерного JavaScript не выполняются: симуляция предназначена для TurboWarp и сенсоров самого расширения.