mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-27 21:43:37 +00:00
minor: Update comments in format_string_exprs
`parse_format_exprs` no longer handles escaping `$` and `\`
This commit is contained in:
parent
48cb059182
commit
7dadc64d1c
1 changed files with 15 additions and 21 deletions
|
@ -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 {
|
||||||
|
|
Loading…
Reference in a new issue