Support flexible pipe operator formatting

Rules are now as follows:

  - If a pipeline contains a newline, then the entire pipeline is formatted over multiple lines.
  - If it doesn't, then it's formatted as a single-line UNLESS it cannot fit; in which case, we fallback to multiline again.
This commit is contained in:
KtorZ
2023-03-14 16:38:57 +01:00
committed by Lucas
parent ae981403c6
commit 1311d9bd27
8 changed files with 176 additions and 35 deletions

View File

@@ -44,15 +44,16 @@ pub enum Token {
Bang, // '!'
Question, // '?'
Equal,
EqualEqual, // '=='
NotEqual, // '!='
Vbar, // '|'
VbarVbar, // '||'
AmperAmper, // '&&'
Pipe, // '|>'
Dot, // '.'
RArrow, // '->'
DotDot, // '..'
EqualEqual, // '=='
NotEqual, // '!='
Vbar, // '|'
VbarVbar, // '||'
AmperAmper, // '&&'
NewLinePipe, // '|>'
Pipe, // '|>'
Dot, // '.'
RArrow, // '->'
DotDot, // '..'
EndOfFile,
// Docs/Extra
Comment,
@@ -134,6 +135,7 @@ impl fmt::Display for Token {
Token::Vbar => "|",
Token::VbarVbar => "||",
Token::AmperAmper => "&&",
Token::NewLinePipe => "↳|>",
Token::Pipe => "|>",
Token::Dot => ".",
Token::RArrow => "->",