I don’t see how this is any different. The input comes in a different section of context and potentially before rather than after generation, but that doesn’t change that human taste is needed.
let foo = {
if bar {
1
} else if baz {
2
} else {
3
}
};
Unfortunately not all languages are Rust. foo = bar ? 1
: baz ? 2
: 3;1. Not having two sets of syntax for the same idea, especially when if statements can trivially be extended to an expression.
2. Not adding the concept of an operator pair (? and :) to the grammar of the language, along with parsing rules, just for this one case
3. Not getting the precedence of this ?: operator pair completely wrong.
4. The conditions are at the same indentation level, each condition is preceded by the word "if" - it's obvious what it is when skimming the code.
5. The values too are at the same indentation level, making it obvious they play the same role in the code - rather than your snippet where the condition "baz" is directly under the value 1
I now try to only give examples of how I want it to do things, and hooks that complain when they do the bad thing (but still don't mention the bad thing in the complaint.)