srctree

Gregory Mullen parent efa85a34 2dafd22b
move imports in tokenizer

src/completion.zig added: 35, removed: 37, total 0
@@ -686,7 +686,7 @@ const log = @import("log");
 
const HSH = @import("hsh.zig").HSH;
const fs = @import("fs.zig");
const Tokenizer = @import("tokenizer.zig").Tokenizer;
const Tokenizer = @import("tokenizer.zig");
const Token = @import("token.zig");
const Parser = @import("parse.zig").Parser;
const Draw = @import("draw.zig");
 
src/line.zig added: 35, removed: 37, total 0
@@ -217,7 +217,7 @@ fn findHistory(line: *Line, dr: enum { up, down }) void {
}
}
 
fn doComplete(hsh: *HSH, tkn: *Tokenizer, comp: *Complete.CompSet) !Mode {
fn doComplete(hsh: *HSH, tkn: *Tokenizer, comp: *Complete.CompSet) !bool {
if (comp.known()) |only| {
// original and single, complete now
try tkn.maybeReplace(only);
@@ -225,14 +225,14 @@ fn doComplete(hsh: *HSH, tkn: *Tokenizer, comp: *Complete.CompSet) !Mode {
 
if (only.kind != null and only.kind.? == .file_system and only.kind.?.file_system == .dir) {
try Complete.complete(comp, hsh, tkn);
return .COMPENDING;
return false;
} else {
comp.raze();
try Draw.drawAfter(&hsh.draw, &[_]Draw.Lexeme{.{
.char = "[ found ]",
.style = .{ .attr = .bold, .fg = .green },
}});
return .TYPING;
return true;
}
}
 
@@ -243,18 +243,18 @@ fn doComplete(hsh: *HSH, tkn: *Tokenizer, comp: *Complete.CompSet) !Mode {
if (comp.count() == 0) {
comp.raze();
}
return .TYPING;
return true;
}
 
if (comp.countFiltered() > 1) {
const target = comp.next();
try tkn.maybeReplace(target);
comp.drawAll(&hsh.draw, hsh.draw.term_size) catch |err| {
if (err == Draw.Layout.Error.ItemCount) return .COMPLETING else return err;
if (err == Draw.Layout.Error.ItemCount) return false else return err;
};
}
 
return .COMPLETING;
return false;
}
 
const CompState = union(enum) {
 
src/logic.zig added: 35, removed: 37, total 0
@@ -3,8 +3,7 @@ const log = @import("log");
const Allocator = std.mem.Allocator;
const tokens = @import("token.zig");
const Token = tokens.Token;
const tokenizer = @import("tokenizer.zig");
const Tokenizer = tokenizer.Tokenizer;
const Tokenizer = @import("tokenizer.zig");
const exec_ = @import("exec.zig");
 
const HSH = @import("hsh.zig").HSH;
@@ -47,7 +46,7 @@ fn execBody(a: Allocator, h: *HSH, body: []const u8) !void {
defer tzr.raze();
for (body) |b| {
tzr.consumec(b) catch |err| {
if (err == tokenizer.Error.Exec) {
if (err == Tokenizer.Error.Exec) {
try exec_.exec(h, tzr.raw.items);
tzr.reset();
}
 
src/parse.zig added: 35, removed: 37, total 0
@@ -3,8 +3,7 @@ const log = @import("log");
const Allocator = mem.Allocator;
const ArrayList = std.ArrayList;
const mem = std.mem;
const tokenizer = @import("tokenizer.zig");
const Tokenizer = tokenizer.Tokenizer;
const Tokenizer = @import("tokenizer.zig");
const Token = @import("token.zig");
const TokenIterator = Token.Iterator;
const Builtins = @import("builtins.zig");
 
src/tokenizer.zig added: 35, removed: 37, total 0
@@ -1,14 +1,14 @@
const std = @import("std");
const log = @import("log");
const Allocator = mem.Allocator;
const ArrayList = std.ArrayList;
const File = std.fs.File;
const io = std.io;
const mem = std.mem;
const CompOption = @import("completion.zig").CompOption;
const Token = @import("token.zig");
alloc: Allocator,
raw: ArrayList(u8),
idx: usize = 0,
raw_maybe: ?[]const u8 = null,
prev_exec: ?ArrayList(u8) = null,
c_tkn: usize = 0, // cursor is over this token
err_idx: usize = 0,
user_data: bool = false,
editor_mktmp: ?[]u8 = null,
 
pub const Tokenizer = @This();
const Tokenizer = @This();
 
pub const TokenError = Token.Error;
 
@@ -27,16 +27,6 @@ pub const CursorMotion = enum(u8) {
dec,
};
 
alloc: Allocator,
raw: ArrayList(u8),
idx: usize = 0,
raw_maybe: ?[]const u8 = null,
prev_exec: ?ArrayList(u8) = null,
c_tkn: usize = 0, // cursor is over this token
err_idx: usize = 0,
user_data: bool = false,
editor_mktmp: ?[]u8 = null,
 
pub fn init(a: Allocator) Tokenizer {
return Tokenizer{
.alloc = a,
@@ -1405,3 +1395,13 @@ test "build functions" {
}
try std.testing.expectEqual(count, 1);
}
 
const std = @import("std");
const log = @import("log");
const Allocator = mem.Allocator;
const ArrayList = std.ArrayList;
const File = std.fs.File;
const io = std.io;
const mem = std.mem;
const CompOption = @import("completion.zig").CompOption;
const Token = @import("token.zig");