GOOGLE ADS

вторник, 10 мая 2022 г.

How can I find what command a keybinding is bound too easily?

В VSCode: я хотел бы нажать комбинацию клавиш и посмотреть, какая команда тоже связана, например, «Ch k» в Emacs.


Решение проблемы

VS Code имеет пару встроенных инструментов для получения информации о привязке ключей

Таким образом, существует инструмент, который предоставляет всю информацию о сочетаниях клавиш, которая может вам когда-либо понадобиться, и предоставляет ее вам в режиме реального времени. Это называется «Устранение неполадок с сочетаниями клавиш». Это несколько продвинутый инструмент, так как он основан на тексте. Он не только предоставляет команду, которую выполняет Keybinding, но также предоставляет предложение when. Он также предоставляет источник (пользователь, встроенный модуль, расширение и т. д.).

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

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

Встроенное средство устранения неполадок с сочетаниями клавиш в VS Code

ПРИМЕЧАНИЕ. Средство устранения неполадок — это текстовый инструмент ведения журнала, поэтому некоторым может быть немного сложно его интерпретировать поначалу, особенно если вы используете графический рабочий стол, который не продвигает использование CmdL, например MacOS или Windows.

Кроме того, средство устранения неполадок распечатывает всю информацию, которая может когда-либо понадобиться кому-либо об использованной привязке клавиш; он предлагает роскошную возможность печатать информацию о «горячих клавишах» в режиме реального времени одновременно с нажатием клавиш пользователем. С одной стороны, это небольшой полезный инструмент, а с другой стороны, это небольшая электростанция, которая демонстрирует качество команды и членов сообщества открытого исходного кода, которые пишут VS Code.

ИСПОЛЬЗОВАНИЕ СОСРЕДОТОЧЕНИЯ НЕИСПРАВНОСТЕЙ КЛАВИАТУРЫ

нажмите F1, чтобы открыть быстрое меню; после открытия введите следующее:

**          "Keyboard Shortcuts Troubleshooting"**

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

**          "Developer: Toggle Keyboard Shortcuts Troubleshooting"**

After you select the option above — assuming you followed the instructions correctly — the troubleshooter should now be toggled to 'ON'.

VIEWING THE TROUBLESHOOTER'S LOGS

You toggled the "Keyboard-shortcuts Troubleshooter" on, but to see its logs you need to open the panel that your terminal lives in, but instead of term

to use the troubleshooter, navigate to the OUTPUT panel, and select Log (window) from the OUTPUT panel's drop-down menu.

The Image below should help explain things if you can't get it working.

In the image you can see that I have the F1 quick menu open that shows the correct option for toggling the troubleshooter to on. I also have already opened the OUTPUT window and logged to it, so you can see what using the troubleshooter should look like.

[![Troubleshoot, Fix, Write, "V.S. Code Keyboard Shortcuts"][1]][1]

Reading the Troubleshooter:

In a snippet, under the keybinding icons, I added the output that the troubleshooter prints when I use the Keybinding (or keyboard shortcut) that is shown below.

CTRL + SHIFT + ~

[2022-05-09 19:01:12.397] [renderer1] [info] [KeybindingService]: \ From 2 keybinding entries, matched workbench.action.tasks.toggleProblems, when: panelFocus || terminalIsOpen, source: user.
[2022-05-09 19:01:13.146] [renderer1] [info] [KeybindingService]: / Received keydown event - modifiers: [ctrl,shift], code: Backquote, keyCode: 192, key: ~
[2022-05-09 19:01:13.146] [renderer1] [info] [KeybindingService]: | Converted keydown event - modifiers: [ctrl,shift], code: Backquote, keyCode: 86 ('`')
[2022-05-09 19:01:13.147] [renderer1] [info] [KeybindingService]: | Resolving ctrl+shift+[Backquote]

Knowing a little about the keybinding is important, because we want to make sure when we read the output that it relates to the keybinding, so we need to know about the keybinding.

The keybinding is a custom keybinding that I wrote myself. It toggles* the problem panel when either the editor, or the terminal, is in focus

Now the first part of every line looks like this:

[2022-05-09 18:55:14.623] [renderer1] [info] [KeybindingService]

But none of that was created by the Troubleshooter, its part of the Window-logger mechanism. It adds that format to the beginning of every line.

It is important to note that renderer1 means "VS Code 1". If I had two instances of VS Code open, one would be [renderer 1], the other would be [renderer 2].

[KeybindingService] is a reference to the "Keyboard Shortcut Troubleshooter".

Okay so we are going to strip all that crap from the beginning of each line, then I will parse the lines by hand so you can see what we have.

1. [LOG]: / Received keydown event -
modifiers: [ctrl,shift],
code: Backquote,
keyCode: 192,
key: ~
2. [LOG]: | Converted keydown event -
modifiers: [ctrl,shift],
code: Backquote,
keyCode: 86 ('`')

3. [LOG]: | Resolving ctrl+shift+[Backquote]

4. [LOG]: \ From 2 keybinding entries,
matched workbench.action.tasks.toggleProblems,
when: panelFocus || terminalIsOpen,
source: user.
Before we cover the lines remember that the keybinding used was:

CTRL + SHIFT + ~


There are 4 Lines, lets cover each one in order:

LINE #1

  • MODIFIERS: Modifiers are the keys that are held down while another one is pressed. Modifiers include the keys CTRL, SHIFT, ALT & SUPER


  • CODE: The code is the code of the key that is pressed. Here it says "backquote", which is also sometimes known as "Back-tic".


  • The most important word is RECEIVED, which is the word line one starts with, henceforth; Line one should be interpreted as meaning:

    Received Modifiers CTRL + SHIFT and Key Code '`'

    LINE #2

    Line two explains the conversion that happens. This is how VS Code handles all the various different Layouts, formats, and even keys that different keyboards have. The keys on every keyboard is converted to what are called virtual keys. Since Virtual Keys are standardized, converting keys to the appropriate Virtual Key ensures that all keyboards work the same. You can see what was received in line one, and what VS Code converted it too on line two.

    LINE #3

    Line three takes the converted input and checks if anything matches that keybinding, then it returns how many matches it found. Here we can see that I have two Keyboard Shortcuts that use this keybinding. That's because I have the keybinding do something else when the when clause changes. It even tells us what the when clause is.

    THIS IS THE TICKET RIGHT HERE, ITS WHAT YOUR ASKED FOR:

    Наконец-то у нас есть совпавшая команда

    Информация, которую мы получаем:

    Соответствует: workbench.action.tasks.toggleProblems,

    Когда: панельFocus || терминалоткрыт,

    Это означает, что команда workbench.action.tasks.toggleProblemsвыполняется...

    Когда следующее panelFocus || terminalIsOpen, возвращает true.

    И это предложение when интерпретируется как означающее «Когда панель находится в фокусе или когда терминал открыт».

    Наконец, он сообщает вам, что источником команды является «ПОЛЬЗОВАТЕЛЬ». Источник также может быть «Расширением» и/или «Встроенным».

    Комментариев нет:

    Отправить комментарий

    Laravel Datatable addColumn returns ID of one record only

    Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...