untabify
This commit is contained in:
23
edit.jai
23
edit.jai
@@ -14,13 +14,13 @@ MS_PER_FRAME :: 1000 / FPS;
|
|||||||
|
|
||||||
State :: struct {
|
State :: struct {
|
||||||
file_name: string;
|
file_name: string;
|
||||||
|
|
||||||
cursor_x: int;
|
cursor_x: int;
|
||||||
cursor_y: int;
|
cursor_y: int;
|
||||||
|
|
||||||
window_width: int;
|
window_width: int;
|
||||||
window_height: int;
|
window_height: int;
|
||||||
|
|
||||||
buffer: string;
|
buffer: string;
|
||||||
lines: [..][..]u8;
|
lines: [..][..]u8;
|
||||||
line_height: int;
|
line_height: int;
|
||||||
@@ -251,7 +251,7 @@ handle_arrow :: (using state: *State, using event: Input.Event) {
|
|||||||
if visible_lines.count == 0 return;
|
if visible_lines.count == 0 return;
|
||||||
|
|
||||||
if key_code == {
|
if key_code == {
|
||||||
case .ARROW_UP;
|
case .ARROW_UP;
|
||||||
if cursor_y == 0 && first_line == 0 return;
|
if cursor_y == 0 && first_line == 0 return;
|
||||||
|
|
||||||
if cursor_y == 0 {
|
if cursor_y == 0 {
|
||||||
@@ -261,11 +261,8 @@ handle_arrow :: (using state: *State, using event: Input.Event) {
|
|||||||
}
|
}
|
||||||
case .ARROW_DOWN;
|
case .ARROW_DOWN;
|
||||||
if cursor_y + first_line == lines.count - 1 {
|
if cursor_y + first_line == lines.count - 1 {
|
||||||
print("End of file?\n");
|
// End of file?
|
||||||
print_vars(cursor_y, first_line, visible_lines.count, lines.count);
|
|
||||||
} else if cursor_y == visible_lines.count - 1 {
|
} 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);
|
first_line = min(first_line + 1, lines.count);
|
||||||
} else {
|
} else {
|
||||||
cursor_y += 1;
|
cursor_y += 1;
|
||||||
@@ -295,12 +292,11 @@ handle_arrow :: (using state: *State, using event: Input.Event) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get_visible_lines :: (using state: State) -> [][..]u8 {
|
get_visible_lines :: (using state: State) -> [][..]u8 {
|
||||||
|
#import "Print_vars";
|
||||||
if line_height <= 1 || window_height == 0 return .[];
|
if line_height <= 1 || window_height == 0 return .[];
|
||||||
num_lines_in_screen := window_height / line_height - 1;
|
num_lines_in_screen := window_height / line_height - 1;
|
||||||
print("num_lines_in_screen: %\n", num_lines_in_screen);
|
result := array_view(lines, first_line, num_lines_in_screen);
|
||||||
print("first_line: %\n", first_line);
|
return result;
|
||||||
print("lines: %\n", lines);
|
|
||||||
return array_view(lines, first_line, num_lines_in_screen);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
string_to_line :: (str: string, cursor_char_index := -1) -> string, string {
|
string_to_line :: (str: string, cursor_char_index := -1) -> string, string {
|
||||||
@@ -340,7 +336,7 @@ string_to_line :: (str: string, cursor_char_index := -1) -> string, string {
|
|||||||
append(current_builder, s);
|
append(current_builder, s);
|
||||||
current_builder = *suffix_builder;
|
current_builder = *suffix_builder;
|
||||||
start = char_index + 1;
|
start = char_index + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -422,4 +418,3 @@ array_remove_at :: (xs: *[..]$T, index: int) {
|
|||||||
|
|
||||||
Input :: #import "Input";
|
Input :: #import "Input";
|
||||||
Simp :: #import "Simp";
|
Simp :: #import "Simp";
|
||||||
|
|
||||||
|
|||||||
17
test.jai
17
test.jai
@@ -1,7 +1,7 @@
|
|||||||
main :: () {
|
main :: () {
|
||||||
print("\nBeginning tests...\n");
|
print("\nBeginning tests...\n");
|
||||||
//test_get_visible_lines();
|
test_get_visible_lines();
|
||||||
//test_handle_arrow_empty_lines();
|
test_handle_arrow_empty_lines();
|
||||||
test_handle_arrow_one_line();
|
test_handle_arrow_one_line();
|
||||||
print("Tests completed successfully\n");
|
print("Tests completed successfully\n");
|
||||||
}
|
}
|
||||||
@@ -11,7 +11,7 @@ test_get_visible_lines :: () {
|
|||||||
state.line_height = 10;
|
state.line_height = 10;
|
||||||
state.window_height = 100;
|
state.window_height = 100;
|
||||||
assert_test(get_visible_lines(state).count == 0);
|
assert_test(get_visible_lines(state).count == 0);
|
||||||
|
|
||||||
line: [..]u8;
|
line: [..]u8;
|
||||||
array_add(*line, array_view("foo"));
|
array_add(*line, array_view("foo"));
|
||||||
array_add(*state.lines, line);
|
array_add(*state.lines, line);
|
||||||
@@ -26,7 +26,7 @@ test_handle_arrow_empty_lines :: () {
|
|||||||
|
|
||||||
codes := Input.Key_Code.[.ARROW_DOWN, .ARROW_UP, .ARROW_LEFT, .ARROW_RIGHT];
|
codes := Input.Key_Code.[.ARROW_DOWN, .ARROW_UP, .ARROW_LEFT, .ARROW_RIGHT];
|
||||||
for codes {
|
for codes {
|
||||||
handle_arrow(*state, .{key_code=it});
|
handle_arrow(*state, .{key_code=it});
|
||||||
assert(state.cursor_x == 0 && state.cursor_y == 0, "%: cursor_x % & cursor_y %", it, state.cursor_x, state.cursor_y);
|
assert(state.cursor_x == 0 && state.cursor_y == 0, "%: cursor_x % & cursor_y %", it, state.cursor_x, state.cursor_y);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -40,7 +40,7 @@ test_handle_arrow_one_line :: () {
|
|||||||
state.cursor_x = 0;
|
state.cursor_x = 0;
|
||||||
state.line_height = 10;
|
state.line_height = 10;
|
||||||
state.window_height = 100;
|
state.window_height = 100;
|
||||||
|
|
||||||
add_line(*state, "foo bar");
|
add_line(*state, "foo bar");
|
||||||
|
|
||||||
codes := Input.Key_Code.[.ARROW_DOWN, .ARROW_UP, .ARROW_LEFT];
|
codes := Input.Key_Code.[.ARROW_DOWN, .ARROW_UP, .ARROW_LEFT];
|
||||||
@@ -49,18 +49,15 @@ test_handle_arrow_one_line :: () {
|
|||||||
assert(state.cursor_x == 0 && state.cursor_y == 0);
|
assert(state.cursor_x == 0 && state.cursor_y == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
print("lines: %\n", state.lines);
|
|
||||||
print("visible_lines: %\n", get_visible_lines(state));
|
|
||||||
handle_arrow(*state, .ARROW_RIGHT);
|
handle_arrow(*state, .ARROW_RIGHT);
|
||||||
assert_test(state.cursor_x == 1 && state.cursor_y == 0);
|
assert_test(state.cursor_x == 1 && state.cursor_y == 0);
|
||||||
|
|
||||||
print("test_handle_arrow_one_line completed successfully\n");
|
print("test_handle_arrow_one_line completed successfully\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
assert_test :: (value: bool, $call := #caller_code, loc := #caller_location) {
|
assert_test :: (value: bool, $call := #caller_code, loc := #caller_location) {
|
||||||
if value == true return;
|
if value == true return;
|
||||||
assert(false, "%\nValue is false.", #run get_expression(call), value, loc = loc);
|
assert(false, "%\nValue is false.", #run get_expression(call), value, loc = loc);
|
||||||
}
|
}
|
||||||
|
|
||||||
get_expression :: (call := #caller_code) -> string {
|
get_expression :: (call := #caller_code) -> string {
|
||||||
|
|||||||
Reference in New Issue
Block a user