improved terminal stuff
This commit is contained in:
@@ -9,7 +9,7 @@ import kernel.ui.WindowManager;
|
||||
class Terminal {
|
||||
private var context:WindowContext;
|
||||
private var input:String = "";
|
||||
private var backlog: Array<String> = [];
|
||||
private var backlog:Array<String> = [];
|
||||
|
||||
public function new() {}
|
||||
|
||||
@@ -45,7 +45,7 @@ class Terminal {
|
||||
|
||||
var start:Int = this.backlog.length - linesAvailable;
|
||||
|
||||
for (i in 0...linesAvailable){
|
||||
for (i in 0...linesAvailable) {
|
||||
var line = this.backlog[start + i];
|
||||
|
||||
this.context.setCursorPos(0, i);
|
||||
@@ -73,7 +73,7 @@ class Terminal {
|
||||
this.context.setCursorBlink(true);
|
||||
}
|
||||
|
||||
private function invokeCommand(command: String):Void{
|
||||
private function invokeCommand(command:String):Void {
|
||||
var args = this.parseArgs(command);
|
||||
|
||||
if (args.length == 0) {
|
||||
@@ -90,7 +90,7 @@ class Terminal {
|
||||
|
||||
var commandArgs:Array<String> = args.slice(1);
|
||||
var hadInput = false;
|
||||
var handle = new TermHandle(commandArgs,{
|
||||
var handle = new TermHandle(commandArgs, {
|
||||
onWrite: (s:String) -> {
|
||||
if (!hadInput) {
|
||||
this.backlog.push("");
|
||||
@@ -115,17 +115,17 @@ class Terminal {
|
||||
|
||||
this.context.setCursorBlink(false);
|
||||
|
||||
prog.invoke(handle);
|
||||
prog.invoke(handle).handle((exitCode) -> {
|
||||
// Cleanup extra newline
|
||||
if (this.backlog[this.backlog.length - 1] == "") {
|
||||
this.backlog.pop();
|
||||
}
|
||||
|
||||
// Cleanup extra newline
|
||||
if (this.backlog[this.backlog.length - 1] == "") {
|
||||
this.backlog.pop();
|
||||
}
|
||||
|
||||
this.redrawInput();
|
||||
this.redrawInput();
|
||||
});
|
||||
}
|
||||
|
||||
private function parseArgs(command: String): Array<String> {
|
||||
private function parseArgs(command:String):Array<String> {
|
||||
// TODO: tim and quote handling
|
||||
return command.split(" ");
|
||||
}
|
||||
@@ -135,7 +135,7 @@ class Terminal {
|
||||
this.redrawBacklog();
|
||||
}
|
||||
|
||||
private function getProgByName(name: String): CLIBase {
|
||||
private function getProgByName(name:String):CLIBase {
|
||||
switch (name) {
|
||||
case "hello":
|
||||
return new HelloWorld();
|
||||
|
||||
Reference in New Issue
Block a user