fix end of file bug
This commit is contained in:
23
edit.jai
23
edit.jai
@@ -52,6 +52,9 @@ run_editor :: (file_name: string) {
|
||||
state.file_name = file_name;
|
||||
window := create_window(state.window_width, state.window_height, state.file_name);
|
||||
|
||||
state.window_width, state.window_height = Simp.get_render_dimensions(window);
|
||||
|
||||
|
||||
my_init_fonts(*state);
|
||||
|
||||
Simp.set_render_target(window);
|
||||
@@ -257,9 +260,13 @@ handle_arrow :: (using state: *State, using event: Input.Event) {
|
||||
cursor_y -= 1;
|
||||
}
|
||||
case .ARROW_DOWN;
|
||||
if cursor_y == visible_lines.count - 1 {
|
||||
if cursor_y + first_line == lines.count - 1 {
|
||||
print("End of file?\n");
|
||||
print_vars(cursor_y, first_line, visible_lines.count, lines.count);
|
||||
} else if cursor_y == visible_lines.count - 1 {
|
||||
print("increasing first line\n");
|
||||
print_vars(cursor_y, visible_lines.count);
|
||||
first_line = min(first_line + 1, lines.count);
|
||||
} else if cursor_y + first_line + visible_lines.count >= lines.count {
|
||||
} else {
|
||||
cursor_y += 1;
|
||||
}
|
||||
@@ -290,6 +297,9 @@ handle_arrow :: (using state: *State, using event: Input.Event) {
|
||||
get_visible_lines :: (using state: State) -> [][..]u8 {
|
||||
if line_height <= 1 || window_height == 0 return .[];
|
||||
num_lines_in_screen := window_height / line_height - 1;
|
||||
print("num_lines_in_screen: %\n", num_lines_in_screen);
|
||||
print("first_line: %\n", first_line);
|
||||
print("lines: %\n", lines);
|
||||
return array_view(lines, first_line, num_lines_in_screen);
|
||||
}
|
||||
|
||||
@@ -370,10 +380,15 @@ read_file_lines :: (using state: *State, file_path: string) -> bool {
|
||||
}
|
||||
|
||||
my_init_fonts :: (using state: *State) {
|
||||
line_height = 16;
|
||||
base_path := path_strip_filename(get_path_of_running_executable());
|
||||
|
||||
my_font = Simp.get_font_at_size("/home/grant/.local/share/fonts/otf/BerkeleyMono/", "BerkeleyMono-Regular.otf", line_height);
|
||||
#if OS == .LINUX {
|
||||
line_height = 16;
|
||||
my_font = Simp.get_font_at_size("/home/grant/.local/share/fonts/otf/BerkeleyMono/", "BerkeleyMono-Regular.otf", line_height);
|
||||
} else if OS == .MACOS {
|
||||
line_height = 32;
|
||||
my_font = Simp.get_font_at_size("/Users/grant/Library/Fonts/", "BerkeleyMono-Regular.otf", line_height);
|
||||
}
|
||||
// my_font = Simp.get_font_at_size(base_path, "Anonymous Pro.ttf", line_height);
|
||||
assert(my_font != null);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user