fix:尝试处理粘贴一个路径时,导致的提示卡顿问题。

This commit is contained in:
taynpg 2025-01-21 12:57:54 +08:00
parent 2501ef76bc
commit 27241c505b

View File

@ -497,6 +497,10 @@ char* fc_readline()
++len;
};
bool need_predic = true;
std::chrono::time_point<std::chrono::high_resolution_clock> p1, p2;
p1 = std::chrono::high_resolution_clock::now();
while (1) {
word.clear();
clear_line();
@ -521,10 +525,19 @@ char* fc_readline()
}
#endif
set_cursor_x(cur_pos + 1);
need_predic = true;
// Read character from console
int ch = _getch();
p2 = p1;
p1 = std::chrono::high_resolution_clock::now();
auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(p1 - p2).count();
if (duration <= 10) {
need_predic = false;
}
switch (ch) {
case ENTER:
append_his(main_buf);
@ -624,7 +637,12 @@ char* fc_readline()
}
// 补正
trans2buf(tmp_buf);
str_predict = file_predict(tmp_buf);
if (need_predic) {
str_predict = file_predict(tmp_buf);
} else if (!str_predict.empty()) {
str_predict.clear();
}
p1 = std::chrono::high_resolution_clock::now();
}
return main_buf;
}