Интерактивный отладчик и REPL для Imba.
НПМ:
npm i -g imba-shell
пряжа:
yarn global add imba-shell
Чтобы начать использовать imba-shell
, выполните следующую команду:
imba-shell
Чтобы включить TypeScript, вы можете передать флаг --ts
:
imba-shell --ts
Обратите внимание: вы также можете использовать
imbas
вместоimba-shell
.
Чтобы использовать многострочный режим, используйте команду .editor:
>>> .editor
Откроется многострочный редактор.
При использовании многострочного режима вы можете использовать комбинацию клавиш Shift+Tab
для отступа текущей строки.
Чтобы удалить вкладку, используйте клавишу Backspace
.
Чтобы очистить imba-shell
, используйте clear
:
>>> clear !
Вы также можете использовать команду
.clear
.
Чтобы выйти из imba-shell
, используйте помощник exit
:
>>> exit !
Вы также можете использовать команду
.exit
.
Вы можете использовать imba-shell
в качестве среды выполнения:
imbar file.imba
псевдонимы
imbar
:imba-r
,imba-runtime
,ir
.
Передача аргументов в ваш скрипт:
imbar craftsman.imba mail:send --help
Постоянно создавать и наблюдать за проектом (цели разработки):
imbar --watch server.imba
флаг:
--watch
псевдоним:
-w
Создание самоисполняющегося скрипта:
hello
#!/usr/bin/env imbar
const name = process . argv . slice ( 2 )[ 0 ] ?? 'stranger'
console . log "Hello {name}"
Если вы используете Linux
, FreeBSD
или MacOS
, вы можете сделать свой скрипт исполняемым:
chmod u+x hello
Примечание. При создании сценария, который не заканчивается на
".imba"
, среда выполнения Imba клонирует ваш сценарий в скрытый файл, который заканчивается на.imba
, и выполняет его вместо исходного сценария. По завершении выполнения скрытый файл будет удален.
Запуск скрипта:
./hello Donald # Hello Donald
./hello # Hello stranger
imba-shell
также можно использовать в качестве модуля. Вот пример:
Имба:
import { ImbaRepl } from 'imba-shell'
# you can also pass "typescript" instead of "imba"
const repl = new ImbaRepl 'imba' , 'imba> '
repl . run !
JavaScript:
const { ImbaRepl } = require ( 'imba-shell' ) ;
/** you can also pass "typescript" instead of "imba" */
const repl = new ImbaRepl ( 'imba' , 'imba> ' ) ;
repl . run ( ) ;
Обратите внимание: вы можете передать объект параметров repl Node.js в функцию
run
.
Вот пример того, как включить функцию истории:
Имба:
import { ImbaRepl } from 'imba-shell'
import os from 'os'
import path from 'path'
const repl = new ImbaRepl 'imba' , 'imba> ' , path . join ( os . homedir !, '.my_repl_history' )
repl . run !
JavaScript:
const { ImbaRepl } = require ( 'imba-shell' ) ;
const os = require ( 'os' ) ;
const path = require ( 'path' ) ;
const repl = new ImbaRepl ( 'imba' , 'imba> ' , path . join ( os . homedir ( ) , '.my_repl_history' ) ) ;
repl . run ( ) ;
Вы можете установить любой допустимый путь в качестве файла истории.
Вы можете зарегистрировать команды с помощью функции registerCommand
:
Имба:
repl . registerCommand 'goodbye' , do
console . log 'Goodbye!'
this . close !
JavaScript:
repl . registerCommand ( 'goodbye' , () = > {
console . log ( 'Goodbye!' );
this . close ();
});
Вы можете зарегистрировать функции и свойства, которые будут доступны в REPL, используя функцию registerCallback
:
Имба:
const repl = new ImbaRepl
repl . registerCallback do ( ctx )
ctx . foo = 'bar'
JavaScript:
const repl = new ImbaRepl ( ) ;
repl . registerCallback ( ( ctx ) => {
ctx . foo = 'bar'
} )
При вызове foo
в REPL он вернет bar
.
Установите зависимости:
$ npm i
Сборка из исходников:
$ npm run build
Тест Imba-Shell
:
$ npm run test
Если вы обнаружите какие-либо проблемы, связанные с безопасностью, отправьте электронное письмо по адресу [email protected] вместо использования системы отслеживания проблем.
Лицензия MIT (MIT). Пожалуйста, смотрите файл лицензии для получения дополнительной информации.