From bd3101517b7b2d0d81f2014eb3c2613e82b25def Mon Sep 17 00:00:00 2001 From: Uko Kokņevičs Date: Sun, 2 Jan 2022 00:17:47 +0200 Subject: hierarchy changes --- src/Buffer.zig | 17 ++++++++--------- src/Config.zig | 10 +++++----- src/Editor.zig | 23 ++++++++++------------- src/RawMode.zig | 19 +++++++++---------- src/Row.zig | 9 +++++---- src/Syntax/makefile.zig | 4 +++- src/Syntax/zig.zig | 3 ++- src/key_state.zig | 10 +++++----- src/main.zig | 16 ++++++++++++++-- src/search.zig | 9 +++++---- 10 files changed, 66 insertions(+), 54 deletions(-) (limited to 'src') diff --git a/src/Buffer.zig b/src/Buffer.zig index 0c95e6e..7f6e7d7 100644 --- a/src/Buffer.zig +++ b/src/Buffer.zig @@ -1,16 +1,15 @@ -const conf = @import("es-config"); +const es = @import("root"); const std = @import("std"); const Allocator = std.mem.Allocator; const ArrayList = std.ArrayList; const Buffer = @This(); -const Config = @import("Config.zig"); +const Config = es.Config; const File = std.fs.File; -const files = @import("files.zig"); -const Editor = @import("Editor.zig"); -const Highlight = @import("highlight.zig").Highlight; -const Row = @import("Row.zig"); -const Syntax = @import("Syntax.zig"); +const Editor = es.Editor; +const Highlight = es.Highlight; +const Row = es.Row; +const Syntax = es.Syntax; allocator: Allocator, @@ -200,7 +199,7 @@ pub fn drawRows(self: Buffer, writer: anytype, screenrows: usize, screencols: us const welcome_data = try std.fmt.allocPrint( self.allocator, "ES -- version {}", - .{conf.es_version}, + .{es.conf.es_version}, ); defer self.allocator.free(welcome_data); var welcome = welcome_data; @@ -435,7 +434,7 @@ pub fn save(self: *Buffer, editor: *Editor) !void { const fname = (try editor.prompt("Save as")) orelse { return; }; defer self.allocator.free(fname); - const file_path = try files.resolvePath(self.allocator, fname); + const file_path = try es.files.resolvePath(self.allocator, fname); errdefer self.allocator.free(file_path); const file_name = std.fs.path.basename(file_path); diff --git a/src/Config.zig b/src/Config.zig index 071c31b..2e6c388 100644 --- a/src/Config.zig +++ b/src/Config.zig @@ -1,6 +1,6 @@ // TODO: Change this to proper TOML in the future :) -const conf = @import("es-config"); +const es = @import("root"); const std = @import("std"); const Allocator = std.mem.Allocator; @@ -9,10 +9,10 @@ const Config = @This(); const config_path = "arkta/es/es.ini"; -hard_tabs: bool = conf.default_hard_tabs, -line_limit: usize = conf.default_line_limit, -page_overlap: usize = conf.default_page_overlap, -tab_stop: usize = conf.default_tab_stop, +hard_tabs: bool = es.conf.default_hard_tabs, +line_limit: usize = es.conf.default_line_limit, +page_overlap: usize = es.conf.default_page_overlap, +tab_stop: usize = es.conf.default_tab_stop, pub fn readConfig(allocator: Allocator) !Config { var config = Config{}; diff --git a/src/Editor.zig b/src/Editor.zig index 42b5619..4b563ad 100644 --- a/src/Editor.zig +++ b/src/Editor.zig @@ -1,16 +1,13 @@ -const linux = std.os.linux; +const es = @import("root"); const std = @import("std"); const Allocator = std.mem.Allocator; const ArrayList = std.ArrayList; -const Buffer = @import("Buffer.zig"); +const Buffer = es.Buffer; const Editor = @This(); -const files = @import("files.zig"); -const Key = @import("key.zig").Key; -const key_state = @import("key_state.zig"); -const KeyState = key_state.KeyState; -const STDIN_FILENO = std.os.STDIN_FILENO; -const StringBuilder = @import("StringBuilder.zig"); +const Key = es.Key; +const KeyState = es.key_state.KeyState; +const StringBuilder = es.StringBuilder; const StringHashMap = std.StringHashMap; allocator: Allocator, @@ -42,7 +39,7 @@ pub fn init(allocator: Allocator) !Editor { .statusmsg = null, .statusmsg_time = 0, - .current_state = key_state.defaultState, + .current_state = es.key_state.defaultState, .key_buffer = ArrayList(Key).init(allocator), .should_exit = false, @@ -150,7 +147,7 @@ pub fn killCurrentBuffer(self: *Editor) !bool { } pub fn open(self: *Editor, name: []const u8) !void { - const file_path = try files.resolvePath(self.allocator, name); + const file_path = try es.files.resolvePath(self.allocator, name); defer self.allocator.free(file_path); if (self.getBufferByPath(file_path)) |buffer| { @@ -411,9 +408,9 @@ fn getCursorPosition(row: *usize, col: *usize) !void { } fn getWindowSize(rows: *usize, cols: *usize) !void { - var ws: linux.winsize = undefined; - const rc = linux.ioctl(STDIN_FILENO, linux.T.IOCGWINSZ, @ptrToInt(&ws)); - switch (linux.getErrno(rc)) { + var ws: std.os.linux.winsize = undefined; + const rc = std.os.linux.ioctl(std.os.STDIN_FILENO, std.os.linux.T.IOCGWINSZ, @ptrToInt(&ws)); + switch (std.os.linux.getErrno(rc)) { .SUCCESS => { cols.* = ws.ws_col; rows.* = ws.ws_row; diff --git a/src/RawMode.zig b/src/RawMode.zig index ed71819..7298922 100644 --- a/src/RawMode.zig +++ b/src/RawMode.zig @@ -1,38 +1,37 @@ const linux = std.os.linux; const std = @import("std"); -const STDIN_FILENO = std.os.STDIN_FILENO; const RawMode = @This(); -const tcflag_t = linux.tcflag_t; -const tcgetattr = std.os.tcgetattr; -const tcsetattr = std.os.tcsetattr; const termios = std.os.termios; orig: termios, pub fn init() !RawMode { - const orig = try tcgetattr(STDIN_FILENO); + const orig = try std.os.tcgetattr(std.os.STDIN_FILENO); const self = RawMode{ .orig = orig }; errdefer self.deinit(); var raw = orig; - raw.iflag &= ~@as(tcflag_t, linux.BRKINT | linux.ICRNL | linux.INPCK | linux.ISTRIP | linux.IXON); - raw.lflag &= ~@as(tcflag_t, linux.ECHO | linux.ICANON | linux.IEXTEN | linux.ISIG); - raw.oflag &= ~@as(tcflag_t, linux.OPOST); + raw.iflag &= ~@as( + linux.tcflag_t, + linux.BRKINT | linux.ICRNL | linux.INPCK | linux.ISTRIP | linux.IXON, + ); + raw.lflag &= ~@as(linux.tcflag_t, linux.ECHO | linux.ICANON | linux.IEXTEN | linux.ISIG); + raw.oflag &= ~@as(linux.tcflag_t, linux.OPOST); raw.cflag |= linux.CS8; raw.cc[linux.V.MIN] = 0; raw.cc[linux.V.TIME] = 1; - try tcsetattr(STDIN_FILENO, .FLUSH, raw); + try std.os.tcsetattr(std.os.STDIN_FILENO, .FLUSH, raw); return self; } pub fn deinit(self: RawMode) void { - tcsetattr(STDIN_FILENO, .FLUSH, self.orig) catch |err| { + std.os.tcsetattr(std.os.STDIN_FILENO, .FLUSH, self.orig) catch |err| { std.log.err("Failed to reset termios: {}", .{err}); }; } diff --git a/src/Row.zig b/src/Row.zig index a542160..38fb72b 100644 --- a/src/Row.zig +++ b/src/Row.zig @@ -1,12 +1,13 @@ +const es = @import("root"); const std = @import("std"); const Allocator = std.mem.Allocator; const ArrayList = std.ArrayList; -const Buffer = @import("Buffer.zig"); -const Config = @import("Config.zig"); -const Highlight = @import("highlight.zig").Highlight; +const Buffer = es.Buffer; +const Config = es.Config; +const Highlight = es.Highlight; const Row = @This(); -const StringBuilder = @import("StringBuilder.zig"); +const StringBuilder = es.StringBuilder; allocator: Allocator, diff --git a/src/Syntax/makefile.zig b/src/Syntax/makefile.zig index caf1317..5c93df4 100644 --- a/src/Syntax/makefile.zig +++ b/src/Syntax/makefile.zig @@ -1,6 +1,8 @@ // zig fmt: off -const Syntax = @import("../Syntax.zig"); +const es = @import("root"); + +const Syntax = es.Syntax; pub const syntax = Syntax{ .name = "Makefile", diff --git a/src/Syntax/zig.zig b/src/Syntax/zig.zig index 9519c74..4826bfb 100644 --- a/src/Syntax/zig.zig +++ b/src/Syntax/zig.zig @@ -1,8 +1,9 @@ // zig fmt: off +const es = @import("root"); const std = @import("std"); -const Syntax = @import("../Syntax.zig"); +const Syntax = es.Syntax; // TODO: Add support for the multiline string \\ pub const syntax = Syntax{ diff --git a/src/key_state.zig b/src/key_state.zig index f1880ae..ce20071 100644 --- a/src/key_state.zig +++ b/src/key_state.zig @@ -1,9 +1,9 @@ +const es = @import("root"); const std = @import("std"); -const Buffer = @import("Buffer.zig"); -const Editor = @import("Editor.zig"); -const Key = @import("key.zig").Key; -const search = @import("search.zig").search; +const Buffer = es.Buffer; +const Editor = es.Editor; +const Key = es.Key; pub const Error = error{ MalformedConfig, @@ -93,7 +93,7 @@ pub fn defaultState(editor: *Editor, buf: *Buffer, key: Key) Error!void { Key.ctrl('m') => try buf.insertNewline(), Key.ctrl('n'), Key.down => buf.nextLine(), Key.ctrl('p'), Key.up => buf.previousLine(), - Key.ctrl('s') => try search(editor, buf), + Key.ctrl('s') => try es.search(editor, buf), // TODO: C-q quotedInsert diff --git a/src/main.zig b/src/main.zig index 7a4aaa4..eae3b8b 100644 --- a/src/main.zig +++ b/src/main.zig @@ -1,10 +1,22 @@ +pub const Buffer = @import("Buffer.zig"); +pub const conf = @import("es-config"); +pub const Config = @import("Config.zig"); +pub const Editor = @import("Editor.zig"); +pub const files = @import("files.zig"); +pub const Highlight = @import("highlight.zig").Highlight; +pub const key_state = @import("key_state.zig"); +pub const Key = @import("key.zig").Key; +pub const RawMode = @import("RawMode.zig"); +pub const Row = @import("Row.zig"); +pub const search = @import("search.zig").search; +pub const StringBuilder = @import("StringBuilder.zig"); +pub const Syntax = @import("Syntax.zig"); + const std = @import("std"); const Allocator = std.mem.Allocator; -const Editor = @import("Editor.zig"); const File = std.fs.File; const GPA = std.heap.GeneralPurposeAllocator(.{}); -const RawMode = @import("RawMode.zig"); var log_file: ?File = null; diff --git a/src/search.zig b/src/search.zig index 557b030..321f948 100644 --- a/src/search.zig +++ b/src/search.zig @@ -1,11 +1,12 @@ +const es = @import("root"); const std = @import("std"); const Allocator = std.mem.Allocator; const ArrayList = std.ArrayList; -const Buffer = @import("Buffer.zig"); -const Editor = @import("Editor.zig"); -const Highlight = @import("highlight.zig").Highlight; -const Key = @import("key.zig").Key; +const Buffer = es.Buffer; +const Editor = es.Editor; +const Highlight = es.Highlight; +const Key = es.Key; const CallbackData = struct { allocator: Allocator, -- cgit v1.2.3