Interaktiver Debugger und REPL für Imba.
npm:
npm i -g imba-shell
Garn:
yarn global add imba-shell
Um mit der Verwendung von imba-shell
zu beginnen, führen Sie den folgenden Befehl aus:
imba-shell
Um TypeScript zu aktivieren, können Sie das Flag --ts
übergeben:
imba-shell --ts
Beachten Sie, dass Sie auch
imbas
anstelle vonimba-shell
verwenden können.
Um den Mehrzeilenmodus zu verwenden, verwenden Sie den Befehl .editor:
>>> .editor
Dadurch wird ein mehrzeiliger Editor geöffnet.
Im Mehrzeilenmodus können Sie die aktuelle Zeile mit der Tastenkombination Shift+Tab
einrücken.
Um einen Tabulator zu entfernen, verwenden Sie die Backspace
.
Um die imba-shell
zu löschen, verwenden Sie den clear
-Helfer:
>>> clear !
Sie können auch den Befehl
.clear
verwenden.
Um die imba-shell
zu verlassen, verwenden Sie den exit
-Helfer:
>>> exit !
Sie können auch den Befehl
.exit
verwenden.
Sie können imba-shell
als Laufzeit verwenden:
imbar file.imba
imbar
-Aliase:imba-r
,imba-runtime
,ir
.
Übergabe von Argumenten an Ihr Skript:
imbar craftsman.imba mail:send --help
Projekt kontinuierlich aufbauen und beobachten (Entwicklungszwecke):
imbar --watch server.imba
Flagge:
--watch
Alias:
-w
Erstellen eines selbstausführenden Skripts:
hello
#!/usr/bin/env imbar
const name = process . argv . slice ( 2 )[ 0 ] ?? 'stranger'
console . log "Hello {name}"
Wenn Sie Linux
, FreeBSD
oder MacOS
verwenden, können Sie Ihr Skript ausführbar machen:
chmod u+x hello
Hinweis: Wenn Sie ein Skript erstellen, das nicht mit
".imba"
endet, klont Imba Runtime Ihr Skript in eine versteckte Datei, die mit.imba
endet, und führt es anstelle Ihres ursprünglichen Skripts aus. Wenn die Ausführung abgeschlossen ist, wird die versteckte Datei entfernt.
Ausführen des Skripts:
./hello Donald # Hello Donald
./hello # Hello stranger
imba-shell
kann auch als Modul verwendet werden. Hier ist ein Beispiel:
Imba:
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 ( ) ;
Beachten Sie, dass Sie in der
run
ein Objekt mit Node.js-Repl-Optionen übergeben können.
Hier ist ein Beispiel für die Aktivierung der Verlaufsfunktion:
Imba:
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 ( ) ;
Sie können einen beliebigen gültigen Pfad als Verlaufsdatei festlegen.
Sie können Befehle mit der Funktion registerCommand
registrieren:
Imba:
repl . registerCommand 'goodbye' , do
console . log 'Goodbye!'
this . close !
JavaScript:
repl . registerCommand ( 'goodbye' , () = > {
console . log ( 'Goodbye!' );
this . close ();
});
Mit der Funktion registerCallback
können Sie Funktionen und Eigenschaften registrieren, die in der REPL verfügbar sein sollen:
Imba:
const repl = new ImbaRepl
repl . registerCallback do ( ctx )
ctx . foo = 'bar'
JavaScript:
const repl = new ImbaRepl ( ) ;
repl . registerCallback ( ( ctx ) => {
ctx . foo = 'bar'
} )
Beim Aufruf foo
in der REPL wird bar
zurückgegeben.
Abhängigkeiten installieren:
$ npm i
Aus dem Quellcode erstellen:
$ npm run build
Imba-Shell
testen:
$ npm run test
Wenn Sie sicherheitsrelevante Probleme entdecken, senden Sie bitte eine E-Mail an [email protected], anstatt den Issue-Tracker zu verwenden.
Die MIT-Lizenz (MIT). Weitere Informationen finden Sie in der Lizenzdatei.