Как обнаружить в сочетаниях клавиш, если боковая панель открыта? - PullRequest
0 голосов
/ 12 мая 2018

Я бы хотел, чтобы cmd+1 чередовался между раскрытием на боковой панели (если оно закрыто) и, если боковая панель открыта, закройте его.

, если закрыто: { "keys": ["super+1"], "command": "reveal_in_side_bar"}

, если открыто:{ "keys": ["super+1"], "command": "toggle_side_bar" }

Я не знаю, как сделать if часть.Спасибо

1 Ответ

0 голосов
/ 12 мая 2018

Насколько я знаю, нет встроенного контекста привязки клавиш, который можно использовать, чтобы определить, открыта ли боковая панель или закрыта.Но это легко сделать с помощью Python API , в частности с window.is_sidebar_visible(), а также можно создавать собственные контексты привязки клавиш.

В меню Сервис перейдите к Разработчику> Новый плагин.Затем замените содержимое представления на:

import sublime, sublime_plugin

class SidebarContextListener(sublime_plugin.EventListener):
    def on_query_context(self, view, key, operator, operand, match_all):
        if key != 'sidebar_visible' or not (operand in ('reveal', 'toggle')):
            return None
        visible = view.window().is_sidebar_visible()
        if operand == 'toggle' and visible:
            return True
        if operand == 'reveal' and not visible:
            return True
        return None

и сохраните его в папке ST, предлагающей (Packages/User) что-то вроде sidebar_context.py - расширение важно, имя не является.

Теперь мы можем использовать его в ваших сочетаниях клавиш, например:

{ "keys": ["super+1"], "command": "toggle_side_bar", "context":
    [
        { "key": "sidebar_visible", "operand": "toggle" },
    ],
},

{ "keys": ["super+1"], "command": "reveal_in_side_bar", "context":
    [
        { "key": "sidebar_visible", "operand": "reveal" },
    ],
},
...