From 8bfa89a478d6ebef32cf6c93d4cdc45e4a1cc550 Mon Sep 17 00:00:00 2001 From: sigmaSd <bedisnbiba@gmail.com> Date: Wed, 15 Jun 2022 01:19:06 +0100 Subject: [PATCH] feat(repl): Add key binding to force a new line (#14536) This commit adds key binding for "ctrl+s" combination that will force a new line in REPL. --- cli/tools/repl/editor.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/cli/tools/repl/editor.rs b/cli/tools/repl/editor.rs index 82719f27a8..502134ebc5 100644 --- a/cli/tools/repl/editor.rs +++ b/cli/tools/repl/editor.rs @@ -14,10 +14,15 @@ use rustyline::highlight::Highlighter; use rustyline::validate::ValidationContext; use rustyline::validate::ValidationResult; use rustyline::validate::Validator; +use rustyline::Cmd; use rustyline::CompletionType; use rustyline::Config; use rustyline::Context; use rustyline::Editor; +use rustyline::EventHandler; +use rustyline::KeyCode; +use rustyline::KeyEvent; +use rustyline::Modifiers; use rustyline_derive::{Helper, Hinter}; use std::borrow::Cow; use std::path::PathBuf; @@ -360,6 +365,10 @@ impl ReplEditor { let mut editor = Editor::with_config(editor_config); editor.set_helper(Some(helper)); editor.load_history(&history_file_path).unwrap_or(()); + editor.bind_sequence( + KeyEvent(KeyCode::Char('s'), Modifiers::CTRL), + EventHandler::Simple(Cmd::Newline), + ); ReplEditor { inner: Arc::new(Mutex::new(editor)),