Как создать пользовательские задачи. json или запустить. json в VS Code, который просто запускает исполняемый файл и не имеет вывода? - PullRequest
1 голос
/ 23 марта 2020

Пожалуйста, прости меня, если это кажется глупым или глупым, но я новичок в vscode и возвращаюсь к программированию в целом, и я столкнулся с этой «проблемой» и наткнулся на стену ..

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

Я создал эту задачу:

{
   "version": "2.0.0",
   "tasks": [
      {
         "label": "Run AutoHotKey Script",
         "type": "shell",
         "group": "none",
         "command": "autohotkeyu64.exe",
         "args": [
            "/r",
            "${file}"
         ],
         "detail": "Load script into AutoHotKeyU64.exe and run"
      }
   ]
}

Я добавил папку authotkey в качестве системного пути, и когда Я запускаю задачу, она прекрасно работает.

Но терминал сидит и думает, что все еще выполняет задачу - задача никогда не заканчивается. Когда я хочу перезагрузить скрипт, я получаю уведомление внизу в нижнем углу о том, что задача все еще выполняется; хочу ли я прекратить или перезапустить.

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

Есть ли способ, которым я могу сделать это? Я имею в виду, конечно, это всего лишь небольшое уведомление и дополнительный шаг, который я должен сделать ... но должен быть способ, верно? Что именно VS Code ищет для завершения задачи? Как я могу выдумать это?

Любая помощь с благодарностью

Спасибо

1 Ответ

0 голосов
/ 23 марта 2020

Ну, я нашел способ, но я все еще хотел бы знать, если это возможно с задачами или запуском ..

Я обнаружил команду "workbench.action.terminal.sendSequence" и смог установить текст args в "autohotkeyu64 / r \" $ {file} \ "" и применяет привязку клавиш, и он отправляет на терминал, но затем я должен сосредоточиться на этом и фактически отправить команду ..

Так Я попробовал workbench.action.terminal.runActiveFile, и, поскольку у меня есть autohotkey в моем системном пути и сопоставлении файлов, он фактически запускает скрипт, просто передавая его в терминал, довольно круто. Но по какой-то причине заданные мною аргументы, в данном случае «/ r» (что вызывает перезагрузку скрипта, а не нового экземпляра и избегает уведомления msgbox), не сработали. У VSCode нет проблем с аргументом, но он фактически не использует их.

Короче говоря, я понял, что мне просто нужно добавить опцию "#SingleInstance Force" в начало моих скриптов autohotkey и это выполняет перезагрузку автоматически ..

И все хорошо ...

Хотелось бы услышать любые предложения о других способах выполнения sh это - кроме написания скрипта autohotkey, чтобы сделать этот ХАХ.

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

...