aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe-external-packages/src/symfony/console/helper/question_helper.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe-external-packages/src/symfony/console/helper/question_helper.rs')
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/helper/question_helper.rs39
1 files changed, 19 insertions, 20 deletions
diff --git a/crates/shirabe-external-packages/src/symfony/console/helper/question_helper.rs b/crates/shirabe-external-packages/src/symfony/console/helper/question_helper.rs
index 281069e..b6d096a 100644
--- a/crates/shirabe-external-packages/src/symfony/console/helper/question_helper.rs
+++ b/crates/shirabe-external-packages/src/symfony/console/helper/question_helper.rs
@@ -19,7 +19,6 @@ use crate::symfony::console::question::ChoiceQuestion;
use crate::symfony::console::question::QuestionInterface;
use crate::symfony::console::terminal::Terminal;
use crate::symfony::string::s;
-use shirabe_php_shim::AsAny;
use shirabe_php_shim::PhpMixed;
use std::cell::RefCell;
use std::rc::Rc;
@@ -126,10 +125,23 @@ impl QuestionHelper {
let autocomplete = question.get_autocompleter_callback();
let ret: PhpMixed;
- if autocomplete.is_none()
- || !STTY.load(std::sync::atomic::Ordering::SeqCst)
- || !Terminal::has_stty_available()
+
+ if let Some(autocomplete) = autocomplete
+ && STTY.load(std::sync::atomic::Ordering::SeqCst)
+ && Terminal::has_stty_available()
{
+ let callback = autocomplete;
+ // The autocompleter callback yields an iterable (Option here); PHP
+ // treats a null result as an empty list of suggestions.
+ let callback = move |input: &str| callback(input).unwrap_or_default();
+ let autocomplete =
+ self.autocomplete(Rc::clone(&output), question, &input_stream, &callback);
+ ret = PhpMixed::String(if question.is_trimmable() {
+ shirabe_php_shim::trim(&autocomplete, None)
+ } else {
+ autocomplete
+ });
+ } else {
let mut r: PhpMixed = PhpMixed::Bool(false);
if question.is_hidden() {
match self.get_hidden_response(
@@ -182,18 +194,6 @@ impl QuestionHelper {
}
}
ret = r;
- } else {
- let callback = autocomplete.unwrap();
- // The autocompleter callback yields an iterable (Option here); PHP
- // treats a null result as an empty list of suggestions.
- let callback = move |input: &str| callback(input).unwrap_or_default();
- let autocomplete =
- self.autocomplete(Rc::clone(&output), question, &input_stream, &callback);
- ret = PhpMixed::String(if question.is_trimmable() {
- shirabe_php_shim::trim(&autocomplete, None)
- } else {
- autocomplete
- });
}
let mut ret = ret;
@@ -318,12 +318,12 @@ impl QuestionHelper {
) {
let message = if let Some(helper_set) = self.get_helper_set() {
let formatter = helper_set.borrow().get_formatter();
- let message = formatter.borrow().format_block(
+
+ formatter.borrow().format_block(
FormatBlockMessages::String(error.message.clone()),
"error",
false,
- );
- message
+ )
} else {
format!("<error>{}</error>", error.message)
};
@@ -476,7 +476,6 @@ impl QuestionHelper {
)
})
.collect();
- num_matches = matches.len() as i64;
ofs = -1;
}