Как добавить в представления всегда видимые кнопки «Просмотр действия»? - PullRequest
1 голос
/ 07 мая 2020

Я пишу расширение vs code, чтобы создавать всегда видимые кнопки во встроенных представлениях на боковой панели, но я не могу расположить некоторые из них в верхней части контейнера представления. Есть также некоторые представления, в которых я могу заставить их отображаться только тогда, когда представление не свернуто, а некоторые, где они не отображаются вообще! много времени во встроенных контейнерах для некоторых действий.

Вот примеры каждого (см. фрагмент кода ниже) ...

Контейнер расширения
«Расширения» на панели действий правильно отображают мою кнопку HelloWorld в представлениях «Включено» и «Рекомендовано».
Как добавить кнопки в верхней части контейнера рядом с кнопкой «Очистить ввод расширений»?

Контейнер отладки 1
В контейнере «Отладка» я могу добавить на панель отладки / инструментов, но панель инструментов появляется только при отладке.
Как добавить в «Выполнить» строка в верхней части боковой панели?
Почему кнопка HelloWorld не отображается в представлениях «Переменные» (и других) - даже когда они открыты, поэтому отображаются встроенные значки?

Контейнер отладки 2
Пользовательский вид в контейнере Debug, кажется, показывает его кнопки, только когда он открыт.
Как сделать его всегда видимым?

Контейнер проводника
Аналогично, "Нет «Папка открыта» и пользовательские представления в контейнере проводника, кажется, отображают кнопки только при открытии и наведении курсора. Как только вы открываете папку, кнопка HelloWorld вообще не появляется. «Открытые редакторы» никогда не показывают HelloWorld.

Ссылки Я в основном использовал их как справочные ...

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

"workbench.view.alwaysShowHeaderActions": true 
"scm.alwaysShowActions": true

Я тестировал, используя basi c HelloWorld как сгенерировано yo code (принимает все значения по умолчанию) и заменяет раздел «способствует» на:

    "contributes": {
    "commands": [
        {
            "command": "hello1.helloWorld",
            "title": "Hello World 1",
            "icon": "resources/HelloWorld.svg"
        },
        {
            "command": "hello1.helloWorld2",
            "title": "Hello World 2",
            "icon": "resources/HelloWorld2.svg"
        }
    ],
    "views": {
        "debug": [
            {
                "id": "HelloWorldD",
                "name": "HelloWorldD"
            }
        ],
        "explorer": [
            {
                "id": "HelloWorldE",
                "name": "HelloWorldE"
            }
        ]
    },
    "menus": {
        "view/title": [
            {
                "command": "hello1.helloWorld",
                "group": "navigation"
            },
            {
                "command": "hello1.helloWorld2"                 
            }
        ]
    }       
}

Это publi c домен svg для тестирования, если требуется.

Я экспериментировал с различными другими пунктами, но «меню - вид / заголовок» кажется правильным для этого использования, если бы я мог понять, как это работает.

Справочная информация: Я стараюсь избегать использования клавиатуры, когда я не занимаюсь программированием, поэтому я хочу иметь кнопки в разных местах для решения поставленной задачи. У меня есть различное программное и аппаратное обеспечение, чтобы помочь с этим для обычных действий P C, но я полагаюсь на кнопки в приложениях, чтобы выполнять действия, указанные c для этого приложения.

Альтернативы, которые я изучил :

В Коде нет «основной» панели инструментов.

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

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

Я думал, что Code - это приложение для java / браузера, есть способ перемещаться вверх по пользовательскому интерфейсу / дереву и вставлять элементы с помощью кода, но это заблокировано.

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

Обезьяна исправляет exe для запуска произвольного JS - это последнее средство, потому что это очень хакерское и его будет трудно получить авторизован в нашей среде (а это не 90-е!). Я даже не уверен, что js может добавить дополнительные кнопки на рабочий стол?

Могу я попробовать еще какие-нибудь идеи?

...