mirror of
https://github.com/fish-shell/fish-shell
synced 2024-11-13 00:17:25 +00:00
Port input.cpp to input.rs
This is not yet adopted.
This commit is contained in:
parent
01b04c802e
commit
7ffb62d1d9
5 changed files with 1243 additions and 33 deletions
|
@ -91,8 +91,8 @@ include_cpp! {
|
|||
|
||||
generate_pod!("escape_string_style_t")
|
||||
|
||||
|
||||
generate!("reader_schedule_prompt_repaint")
|
||||
generate!("reader_reading_interrupted")
|
||||
generate!("reader_change_history")
|
||||
generate!("reader_change_cursor_selection_mode")
|
||||
generate!("reader_set_autosuggestion_enabled_ffi")
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -772,6 +772,11 @@ impl Parser {
|
|||
&self.variables
|
||||
}
|
||||
|
||||
/// Get the variables as an Arc.
|
||||
pub fn vars_ref(&self) -> Arc<EnvStack> {
|
||||
Pin::into_inner(Pin::clone(&self.variables))
|
||||
}
|
||||
|
||||
/// Get the library data.
|
||||
pub fn libdata(&self) -> Ref<'_, LibraryData> {
|
||||
self.library_data.borrow()
|
||||
|
|
|
@ -136,6 +136,10 @@ pub fn check_autosuggestion_enabled(vars: &dyn Environment) -> bool {
|
|||
.unwrap_or(true)
|
||||
}
|
||||
|
||||
pub fn reader_reading_interrupted() -> i32 {
|
||||
crate::ffi::reader_reading_interrupted().0
|
||||
}
|
||||
|
||||
pub fn reader_schedule_prompt_repaint() {
|
||||
crate::ffi::reader_schedule_prompt_repaint()
|
||||
}
|
||||
|
|
|
@ -815,36 +815,6 @@ static void test_autosuggestion_combining() {
|
|||
do_test(combine_command_and_autosuggestion(L"alpha", L"ALPHA") == L"alpha");
|
||||
}
|
||||
|
||||
// todo!("port this")
|
||||
static void test_input() {
|
||||
say(L"Testing input");
|
||||
inputter_t input{parser_principal_parser()->deref()};
|
||||
// Ensure sequences are order independent. Here we add two bindings where the first is a prefix
|
||||
// of the second, and then emit the second key list. The second binding should be invoked, not
|
||||
// the first!
|
||||
wcstring prefix_binding = L"qqqqqqqa";
|
||||
wcstring desired_binding = prefix_binding + L'a';
|
||||
|
||||
{
|
||||
auto input_mapping = input_mappings();
|
||||
input_mapping->add(prefix_binding, L"up-line");
|
||||
input_mapping->add(desired_binding, L"down-line");
|
||||
}
|
||||
|
||||
// Push the desired binding to the queue.
|
||||
for (wchar_t c : desired_binding) {
|
||||
input.queue_char(c);
|
||||
}
|
||||
|
||||
// Now test.
|
||||
auto evt = input.read_char();
|
||||
if (!evt.is_readline()) {
|
||||
err(L"Event is not a readline");
|
||||
} else if (evt.get_readline() != readline_cmd_t::down_line) {
|
||||
err(L"Expected to read char down_line");
|
||||
}
|
||||
}
|
||||
|
||||
/// Helper for test_timezone_env_vars().
|
||||
long return_timezone_hour(time_t tstamp, const wchar_t *timezone) {
|
||||
env_stack_t vars{parser_principal_parser()->deref().vars_boxed()};
|
||||
|
@ -1053,7 +1023,6 @@ static const test_t s_tests[]{
|
|||
{TEST_GROUP("iothread"), test_iothread},
|
||||
{TEST_GROUP("lru"), test_lru},
|
||||
{TEST_GROUP("colors"), test_colors},
|
||||
{TEST_GROUP("input"), test_input},
|
||||
{TEST_GROUP("completion_insertions"), test_completion_insertions},
|
||||
{TEST_GROUP("maybe"), test_maybe},
|
||||
{TEST_GROUP("normalize"), test_normalize_path},
|
||||
|
|
Loading…
Reference in a new issue