Как увеличить переменную, например, номер строки, во фрагменте vscode - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть многострочный фрагмент кода VScode.Проблема в том, что TM_LINE_NUMBER дает номер строки, где был запущен фрагмент, мне нужно увеличить это число на 1, чтобы оно равнялось номеру строки, на которой он фактически находится.

"Console_Log_Test": {
  "prefix": "clg",
  "body": [
    "//Debugging (remove)",
    "console.log('Line #${TM_LINE_NUMBER}');"
  ]
},

Как я могу это сделатьчто?

1 Ответ

0 голосов
/ 15 ноября 2018

Есть как минимум эти две опции:

"Console_Log_Test": {
      "prefix": "clg",
      "body": [
          "//Debugging (remove)",
          "console.log('Line #${1:${TM_LINE_NUMBER}}');"
          // "console.log('Line #${TM_LINE_NUMBER}');"
      ]
}

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

Более интересно сделать этов " макрос ", который будет выполнять именно то, что вы хотите.

  1. Вам понадобится что-то вроде мультикомандного расширения .

  2. Измените приведенный выше фрагмент на:

    "Console_Log_Test": {
    
      "prefix": "clg",
      "body": [
          "console.log('Line #${TM_LINE_NUMBER}');"
      ]
    }
    

, поэтому теперь фрагмент печатает только строку с TM_LINE_NUMBER.

В ваших пользовательских настройках:

"multiCommand.commands": [

{
  "command": "multiCommand.lineNumber",
  "sequence": [
    {
      "command": "type",
      "args": {
        "text": "//Debugging (remove)\n"
      }
    },
    {
      "command": "editor.action.insertSnippet",
      "args": {
        // "langId": "csharp",
        "name": "Console_Log_Test"
      }
    }
  ]
}

Теперь фрагмент фактически запускается на нужном номере строки.

В вашем keybindings.json:

{
  "key": "ctrl+alt+l",
  "command": "multiCommand.lineNumber"
},

Сейчас Ctrl - Alt - L делает именно то, что вы хотите сделать.Это небольшая работа по настройке, но довольно мощный метод обучения.

[EDIT]

Мне было интересно, есть ли способ получить некоторые emmet математика для работы и, что удивительно, это делает.

Использование этого фрагмента:

 "log line number on second line": {
      "prefix": "clg",
      "body": [
          "//Debugging (remove)",
          "console.log('Line #${TM_LINE_NUMBER}"
      ]
  },

Этот фрагмент содержит все, кроме окончательного ');

Теперь этот макрос:

{
    "command": "multiCommand.lineNumber",
    "sequence": [
      {
        "command": "editor.action.insertSnippet",
        "args": {
          "name": "log line number on second line"
        }
      },
      "editor.emmet.action.incrementNumberByOne",
      {
        "command": "type",
        "args": {
          "text": "');\n"
        }
      }
    ]
  },

будет работать !!Номер строки будет увеличен на единицу, а затем ');\n будет добавлено в конец этой строки.

И вы можете сделать более интересную математику, используя "editor.emmet.action.evaluateMathExpression" вместо команды incrementNumberByOne.

Чтобы добавить 10 к номерам строк, используйте

"console.log('Line #${TM_LINE_NUMBER}+11"

вфрагмент и "editor.emmet.action.evaluateMathExpression" вместо "editor.emmet.action.incrementNumberByOne" в макросе с несколькими командами.

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