VSCode генерирует задачу. json запись при выборе задачи - PullRequest
7 голосов
/ 24 марта 2020

Я хочу создать расширение VSCode, которое генерирует задачу оболочки, например задачу оболочки с дополнительными универсальными c свойствами.

Пример:

  1. Когда пользователь выбирает задачу (моя заданная задача c, которую предоставляет расширение)

  2. A task.json генерируется автоматически как


   "tasks": [
       {
         "label": "mytask",
         "type": "shell",
         "group": {
           "kind": "build", 
           "isDefault": true
         },
         "command": "Invoke-Build -Task . -File './test'"
    },


Я пытаюсь сделать репозиторий VSCode, однако мне не удалось это сделать, файл создается просто , если вы нажмете ctrl+shift+p и нажмете на задачу настройки Кнопка, которая создает для вас задачи json. Я хочу, чтобы это было автоматически с моей записью json выше. как я могу это сделать?

В следующей ссылке есть несколько опций, которые вы можете предоставить для задачи (вручную ... мне нужно, чтобы она генерировалась из расширения) https://code.visualstudio.com/docs/editor/tasks

Я в принципе нужен код, который генерирует новое задание в task.json файле

Если есть ссылка, где код создания нового задания. json файл может дать идею

https://github.com/microsoft/vscode/search?p=2&q=tasks.json&unscoped_q=tasks.json

Существует еще одна опция, которая заключается в проверке наличия файла tasks.json, если не создается новый, и добавлении новой записи в массив задач (используя мой код не vscode api), но это хорошее решение?

1 Ответ

0 голосов
/ 04 апреля 2020

если ваши задачи - это команды оболочки или что-то еще. Вы можете запускать на терминале, вам не нужно создавать задачи. json вы можете просто отправить команду на терминал, выполнив

vscode.commands.executeCommand('workbench.action.terminal.new');
setTimeout(function () {
    const terminal = vscode.window.activeTerminal;
    terminal.sendText('you command here')
}, 1200);

, если вы действительно Если вы хотите создать какой-нибудь файл для выполнения ваших задач, вы можете создать собственный json файл mySuperTasks. json в каталоге root в пользовательском проекте и сообщить va коду, что он должен автоматически выполнить для вас функцию автоматического определения задач. таким образом, вам не нужно беспокоиться о задаче. json file

в вашем пакете. json у вас будет что-то вроде

"contributes"
  "commands": [
        {
            "command": "extension.yourExtensionName.makeTaksFile",
            "title": "create mySuperTasks.json",
            "category": "your extention name"
        }
    ],
    "keybindings": [
        {
            "command": "extension.yourExtensionName.makeTaksFile",
            "key": "alt+L alt+C",
            "mac": "cmd+L cmd+C"
        }]

в вас // extension-main-script ex: extinsion. js у вас будет

    let makeTaksFile = vscode.commands.registerCommand('extension.yourExtensionName.createTasksFile', function () {
    const rootFolder = vscode.workspace.getWorkspaceFolder();
    fs.writeFile(rootFolder.uri + '/mystasks.json', 'file content your json', (callback) => { });
    //then you create taskProvider via vs code api 
    // doc https://code.visualstudio.com/api/extension-guides/task-provider
});
context.subscriptions.push('makeTaksFile');

, если это очень важно для создания задач. json file опция, которую вы упомянули, очень полезна в этом случае. Хоп, который поможет вам счастливого кодирования. Я добавлю код

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