minor: Update comments in format_string_exprs

`parse_format_exprs` no longer handles escaping `$` and `\`
This commit is contained in:
DropDemBits 2024-03-07 16:08:20 -05:00
parent 48cb059182
commit 7dadc64d1c
No known key found for this signature in database
GPG key ID: 7FE02A6C1EDFA075

View file

@ -11,15 +11,12 @@ pub enum Arg {
Expr(String), Expr(String),
} }
/** /// Add placeholders like `$1` and `$2` in place of [`Arg::Placeholder`],
Add placeholders like `$1` and `$2` in place of [`Arg::Placeholder`], /// and unwraps the [`Arg::Ident`] and [`Arg::Expr`] enums.
and unwraps the [`Arg::Ident`] and [`Arg::Expr`] enums. /// ```rust
```rust /// # use ide_db::syntax_helpers::format_string_exprs::*;
# use ide_db::syntax_helpers::format_string_exprs::*; /// assert_eq!(with_placeholders(vec![Arg::Ident("ident".to_owned()), Arg::Placeholder, Arg::Expr("expr + 2".to_owned())]), vec!["ident".to_owned(), "$1".to_owned(), "expr + 2".to_owned()])
assert_eq!(with_placeholders(vec![Arg::Ident("ident".to_owned()), Arg::Placeholder, Arg::Expr("expr + 2".to_owned())]), vec!["ident".to_owned(), "$1".to_owned(), "expr + 2".to_owned()]) /// ```
```
*/
pub fn with_placeholders(args: Vec<Arg>) -> Vec<String> { pub fn with_placeholders(args: Vec<Arg>) -> Vec<String> {
let mut placeholder_id = 1; let mut placeholder_id = 1;
args.into_iter() args.into_iter()
@ -34,18 +31,15 @@ pub fn with_placeholders(args: Vec<Arg>) -> Vec<String> {
.collect() .collect()
} }
/** /// Parser for a format-like string. It is more allowing in terms of string contents,
Parser for a format-like string. It is more allowing in terms of string contents, /// as we expect variable placeholders to be filled with expressions.
as we expect variable placeholders to be filled with expressions. ///
/// Splits a format string that may contain expressions
Built for completions and assists, and escapes `\` and `$` in output. /// like
(See the comments on `get_receiver_text()` for detail.) /// ```rust
Splits a format string that may contain expressions /// # use ide_db::syntax_helpers::format_string_exprs::*;
like /// assert_eq!(parse_format_exprs("{ident} {} {expr + 42} ").unwrap(), ("{ident} {} {} ".to_owned(), vec![Arg::Placeholder, Arg::Expr("expr + 42".to_owned())]));
```rust /// ```
assert_eq!(parse("{ident} {} {expr + 42} ").unwrap(), ("{} {} {}", vec![Arg::Ident("ident"), Arg::Placeholder, Arg::Expr("expr + 42")]));
```
*/
pub fn parse_format_exprs(input: &str) -> Result<(String, Vec<Arg>), ()> { pub fn parse_format_exprs(input: &str) -> Result<(String, Vec<Arg>), ()> {
#[derive(Debug, Clone, Copy, PartialEq)] #[derive(Debug, Clone, Copy, PartialEq)]
enum State { enum State {