Skip to content

Запуск скриптов .os .bsl с помощью OneScript

bambr1975 edited this page Aug 12, 2018 · 12 revisions

Примечание: Поддержка запуска и обработки скриптов с помощью задач vs code доступна только при работе в папке рабочего пространства и недоступна при редактировании отдельных файлов.

Автоматическое обнаружение задачи

В релизе 1.10.0 была реализована поддержка TasksApi VSCode. Это позволило избавиться от необходимости создания tasks.json для запуска простейших задач.

Теперь, находясь в открытом os-файле достаточно просто нажать F1, выбрать команду Tasks: Run task (или Задачи: Выполнить задачу) и будет выведен выпадающий список, где доступны все основные команды запуска и обработки os-файлов. Последними в списке будут перечислены несколько стандартных вариантов запуска скрипта: Check, Compile Make и Run.

Подробную информацию о каждом режиме запуска можно найти в разделе документации OneScript.

Если нужно выполнить задачу простого запуска без параметров открытого в редакторе os-файла, достаточно выбрать команду OneScript: run.

Сообщения скрипта будут отображаться в стандартном окне вывода информации.

Пример:
default

Примечание. В каталоге .vscode открытой папки не должно содержаться файла task.json, где в качестве версии указана версия 0.1.0 - в этом случае новое API не срабатывает и отрабатывают задачи, указанные в файле task.json.

Глобальное назначение задаче запуска os-скрипта комбинации клавиш

Для задачи запуска можно определить комбинацию клавиш. Например, чтобы связать задачу OneScript: run с комбинацией клавиш Ctrl+Shift+J, добавьте в свой keybindings.json файл следующие строки:

{
    "key": "ctrl+shift+j",
    "command": "workbench.action.tasks.runTask",
    "args": "oscript: OneScript: run",
    "when": "editorTextFocus && editorLangId == 'bsl'"
}

Конфигурирование задач - Запуск скриптов с параметрами

Иногда возможностей предлагаемых по умолчанию задач недостаточно. Например, если необходимо запускать скрипт с параметрами, нужно определить свою собственную задачу.

Для этого достаточно в глобальном меню Задачи нажать для выбранной задачи значок шестеренки.

При этом будет создан файл task.json

Измените название задачи (например, myScript) и в свойство args добавьте необходимые параметры через запятую.

Пример:

{
   "version": "2.0.0",
   "tasks": [
      {
         "type": "process",
         "label": "myScript",
         "problemMatcher": [
            "$OneScript Linter"
         ],
         "command": "oscript",
         "args": [
            "${file}",
            "Аргумент1",
            "Аргумент2"
         ],
         "group": "build"
      }
   ]
}

Вместо Аргумент1 и Аргумент2 вы можете использовать любые параметры, количество параметров так же не ограничено.
Теперь при нажатии Ctrl-Shift-B скрипт будет выполняться с указанными параметрами.

Параметры интерпретатору oscript так же можно передать с помощью файла tasks.json. Укажите нужные параметры перед параметром ${file}.

Вы можете добавить любое количество дополнительных команд запуска.
Полное описание формата файла tasks.json можно найти в соответствующем разделе документации VS Code.

Дополнительные возможности

В списке автоматически обнаруженных задач для os-скриптов кроме стандартных команд работы со скриптами добавлен набор задач для разработчика скриптов:

  • 2 вида тестирования через 1testrunner (полное + текущий файл теста)
  • несколько видов тестирования через 1bdd + генерирование шагов через 1bdd
  • сборка пакета для opm
  • а также автоопределение задач opm (если в текущем каталоге существует папка tasks, то для каждого os-скрипта папки tasks будет создана отдельная задача). Стандартно в папке tasks лежит файл test.os, запускающий opm-тестирование проекта.

Особенности запуска под linux

В текущем варианте установки oscript на linux необходимо дополнительно создать командный файл для запуска oscript, присвоить ему признак исполнения и расположить по одному из путей в переменной PATH.

Например, если oscript установлен (точнее, архив с oscript распакован) в каталог /opt, тогда по пути /usr/local/bin/необходимо создать файл oscript (sudo nano /usr/local/bin/oscript) с таким содержимым:

#!/bin/sh
/usr/bin/mono /opt/oscript/bin/oscript.exe "$@"

и выполнить команду sudo chmod +x /usr/local/bin/oscript