pub fn parse_cmdline(input: &str) -> Option<ParsedCmdline>Expand description
Parse a command-line string into name, bang, and args.
Grammar: [name][!] [arg1 arg2 ...]
Command names are alphabetic. Arguments start at the first non-alpha
character after the name (or at whitespace). This allows vim-style
commands like :s/pat/rep/ where there is no space between the
command name and arguments.
Returns None for empty or whitespace-only input.
ยงExamples
use reovim_driver_command::parse_cmdline;
let parsed = parse_cmdline("w filename.txt").unwrap();
assert_eq!(parsed.name, "w");
assert!(!parsed.bang);
assert_eq!(parsed.args, vec!["filename.txt"]);
assert_eq!(parsed.raw_args, "filename.txt");
let parsed = parse_cmdline("q!").unwrap();
assert_eq!(parsed.name, "q");
assert!(parsed.bang);
assert!(parsed.args.is_empty());
assert!(parsed.raw_args.is_empty());
let parsed = parse_cmdline("s/foo/bar/g").unwrap();
assert_eq!(parsed.name, "s");
assert_eq!(parsed.raw_args, "/foo/bar/g");
assert!(parse_cmdline("").is_none());