mirror of
https://github.com/PluralKit/PluralKit.git
synced 2026-02-04 04:56:49 +00:00
format rust code
This commit is contained in:
parent
beec38ef8b
commit
d804303615
3 changed files with 59 additions and 49 deletions
|
|
@ -136,11 +136,7 @@ pub fn parse_command(
|
|||
// update best attempt if we're deeper
|
||||
if best_attempt.as_ref().map(|x| x.1.len()).unwrap_or(0) < matched_tokens.len()
|
||||
{
|
||||
best_attempt = Some((
|
||||
next_tree.clone(),
|
||||
matched_tokens.clone(),
|
||||
*new_pos,
|
||||
));
|
||||
best_attempt = Some((next_tree.clone(), matched_tokens.clone(), *new_pos));
|
||||
}
|
||||
|
||||
filtered_tokens.clear(); // new branch, new tokens
|
||||
|
|
@ -230,11 +226,11 @@ pub fn parse_command(
|
|||
cmd_a == cmd_b
|
||||
});
|
||||
// re-sort after extending
|
||||
possible_commands.sort_by(|a, b| b.2.partial_cmp(&a.2).unwrap_or(std::cmp::Ordering::Equal));
|
||||
possible_commands
|
||||
.sort_by(|a, b| b.2.partial_cmp(&a.2).unwrap_or(std::cmp::Ordering::Equal));
|
||||
}
|
||||
|
||||
if possible_commands.is_empty().not() {
|
||||
|
||||
error.push_str(" Perhaps you meant one of the following commands:\n");
|
||||
fmt_commands_list(&mut error, &prefix, possible_commands);
|
||||
} else {
|
||||
|
|
@ -442,7 +438,9 @@ fn rank_possible_commands(
|
|||
.filter(|cmd| cmd.show_in_suggestions)
|
||||
.flat_map(|cmd| {
|
||||
let versions = generate_command_versions(cmd, input_tokens);
|
||||
versions.into_iter().map(move |(display, scoring, is_alias)| {
|
||||
versions
|
||||
.into_iter()
|
||||
.map(move |(display, scoring, is_alias)| {
|
||||
let similarity = strsim::jaro_winkler(&input, &scoring);
|
||||
// if similarity > 0.7 {
|
||||
// println!("DEBUG: ranking: '{}' vs '{}' = {}", input, scoring, similarity);
|
||||
|
|
@ -484,7 +482,11 @@ fn rank_possible_commands(
|
|||
commands_to_show
|
||||
}
|
||||
|
||||
fn fmt_commands_list(f: &mut String, prefix: &str, commands_to_show: Vec<(Command, String, f64, bool)>) {
|
||||
fn fmt_commands_list(
|
||||
f: &mut String,
|
||||
prefix: &str,
|
||||
commands_to_show: Vec<(Command, String, f64, bool)>,
|
||||
) {
|
||||
for (command, version, _, is_alias) in commands_to_show {
|
||||
writeln!(
|
||||
f,
|
||||
|
|
@ -523,7 +525,11 @@ fn generate_command_versions(cmd: &Command, input_tokens: &[&str]) -> Vec<(Strin
|
|||
versions
|
||||
}
|
||||
|
||||
fn build_command_string(cmd: &Command, alias_replacement: Option<(usize, &str)>, input_tokens: &[&str]) -> String {
|
||||
fn build_command_string(
|
||||
cmd: &Command,
|
||||
alias_replacement: Option<(usize, &str)>,
|
||||
input_tokens: &[&str],
|
||||
) -> String {
|
||||
let mut result = String::new();
|
||||
for (idx, token) in cmd.tokens.iter().enumerate() {
|
||||
if idx > 0 {
|
||||
|
|
@ -547,7 +553,7 @@ fn build_command_string(cmd: &Command, alias_replacement: Option<(usize, &str)>,
|
|||
} else {
|
||||
write!(&mut result, "{param}").unwrap()
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
result
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
use command_parser::{parse_command, Tree, command::Command, parameter::*, tokens};
|
||||
use command_parser::{Tree, command::Command, parameter::*, parse_command, tokens};
|
||||
|
||||
/// this checks if we properly keep track of filtered tokens (eg. branches we failed on)
|
||||
/// when we backtrack. a previous parser bug would cause infinite loops since it did not
|
||||
|
|
@ -40,6 +40,12 @@ fn test_dirty_params() {
|
|||
let result = parse_command(tree, "pk;".to_string(), input.to_string()).unwrap();
|
||||
|
||||
println!("params: {:?}", result.parameters);
|
||||
assert!(!result.parameters.contains_key("param1"), "params should not contain 'param1' from failed branch");
|
||||
assert!(result.parameters.contains_key("param2"), "params should contain 'param2'");
|
||||
assert!(
|
||||
!result.parameters.contains_key("param1"),
|
||||
"params should not contain 'param1' from failed branch"
|
||||
);
|
||||
assert!(
|
||||
result.parameters.contains_key("param2"),
|
||||
"params should contain 'param2'"
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
use command_parser::{parse_command, Tree, command::Command, parameter::*, tokens};
|
||||
use command_parser::{Tree, command::Command, parameter::*, parse_command, tokens};
|
||||
|
||||
#[test]
|
||||
fn test_typoed_command_with_parameter() {
|
||||
|
|
@ -8,8 +8,9 @@ fn test_typoed_command_with_parameter() {
|
|||
// message <optional msg ref> author
|
||||
let cmd = Command::new(
|
||||
tokens!(message_token, Optional(MESSAGE_REF), author_token),
|
||||
"message_author"
|
||||
).help("Shows the author of a proxied message");
|
||||
"message_author",
|
||||
)
|
||||
.help("Shows the author of a proxied message");
|
||||
|
||||
let mut tree = Tree::default();
|
||||
tree.register_command(cmd);
|
||||
|
|
@ -32,10 +33,7 @@ fn test_typoed_command_with_flags() {
|
|||
let message_token = ("message", ["msg", "messageinfo"]);
|
||||
let author_token = ("author", ["sender", "a"]);
|
||||
|
||||
let cmd = Command::new(
|
||||
tokens!(message_token, author_token),
|
||||
"message_author"
|
||||
)
|
||||
let cmd = Command::new(tokens!(message_token, author_token), "message_author")
|
||||
.flag(("flag", ["f"]))
|
||||
.flag(("flag2", ["f2"]))
|
||||
.help("Shows the author of a proxied message");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue