Как вставить фрагмент в новую строку с помощью vscode? - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь сделать фрагмент кода vscode для python.Предположим, у меня есть строка кода, подобная этой:

my_var = call_some_function()

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

my_var = call_some_function()
LOGGER.debug("my_var: %s", my_var)
<cursor is here>

Также это должно работать и для выражения, например, если я выберу «x + y + z» в этой строке и нажму клавишу:

call_function(x + y + z)

Это должно выдать:

call_function(x + y + z)
LOGGER.debug("x + y + z: %s", x + y + z)
<cursor is here>

Очевидно, что лучше использовать отладчик.Но иногда вы не можете использовать отладчик.

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Как подсказывает @ Alex ссылка, я думаю, вам нужно будет использовать расширение макроса, чтобы это заработало.Я предпочитаю multi-command , потому что он имеет задержку интервала (которая абсолютно необходима для некоторых макросов, но не для ваших).

В ваших настройках:

"multiCommand.commands": [

    {
      "command": "multiCommand.debug",

      "sequence": [
        "editor.action.clipboardCopyAction",
        "editor.action.insertLineAfter",
        {
          "command": "editor.action.insertSnippet",
          "args": {
            "snippet": "LOGGER.debug(\"$CLIPBOARD: %s\", $CLIPBOARD)\n$0"
          }
        },
      ]
    }
]

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

Инициируйте это с помощью привязки клавиш:

{
    "key": "ctrl+alt+d",
    "command": "multiCommand.debug",
}

Это работает для обоихваши примеры.

0 голосов
/ 04 декабря 2018

Это не совсем то, что было запрошено, но близко, используя переменную $ CLIPBOARD:

"log-clipboard": {
    "prefix": "log-clipboard",
    "body": [
        "LOGGER.debug('$CLIPBOARD: %s', $CLIPBOARD)",
        "$0"
    ],
    "description": "Log an expression from the clipboard"
}

Для использования:

  1. Выберите, что вы хотите войтии нажмите «Копировать»
  2. . Перейдите туда, куда вы хотите записать его.
  3. Введите log-clipboard и нажмите Enter

Довольно близко.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...