withName multiple variable support

I often find myself needing to define multiple name variables before banging out the formula. Currently this means nesting withName(statement1, name1, withName(statement2, name2, ...).

With auto format, this leads to a lot of indentation and encapsulation, which is distracting. It would be great if withName allowed a set to be defined, similar to ModifyRows. I don’t know what syntax would work best with Coda’s formula language, but idea is something like:
withNames(statement1, name1, statement2, name2).Do(...)

4 Likes

If I can add to this, it’d be much neater if it was

WithNames(
  name1, statement1,
  name2, statement2,
  expression)

rather than either:

WithNames(
  statement1, name1,
  statement2, name2,
  expression)

or the current:

WithNames(
  statement1, name1,
WithNames(
  statement2, name2,
  expression))

The first one avoids overuse of parens and the need to balance them. It is also visually cleaner, and works better with the auto-indenter. Lastly, it’s better than the second one because the names are listed first. This is much easier to work with. In pretty much all programming languages you write x = blah blah blah, not blah blah blah → X. The reason for this is that 1) variable names are shorter and easier to alight vertically, and 2) it makes it easier to find what the definition of a variable is. Putting the statement first and then the name second was poor design.

1 Like

lets function

I noticed that Coda has introduced the Let() function, which essentially duplicates the functionality of the WithName() function. This makes me wonder if it’s a precursor to the introduction of a Lets() function that would support multiple variables simultaneously.

Using WithName() with just one variable is quite inconvenient, especially for complex formulas. Wrapping variables in nested parentheses, like swaddling a baby, isn’t exactly a disaster, but having a more optimal solution would be much nicer. I hope Coda is moving in this direction.

2 Likes