On Fri, Feb 3, 2017 at 11:08 AM, Corey Huinker <corey.huinker@gmail.com> wrote: > I could bulk up the error message on if/elif like such: > > if: true, executing commands. > if: false, ignoring commands until next \else, \elif, or \endif. > if: error, ignoring all commands until next \endif > else: true, executing commands > else: false, ignoring commands until next \endif > else: error, ignoring commands until next \endif > endif: now executing commands > endif: ignoring commands until next [\else, [\elif [, \endif]] > > Basically, I'd tailor the message to as closely reflect what is possible for > the user at this moment.
I think that this is kinda hairy. When I see "endif: now executing commands", my reaction is "oh crap, which commands are you executing?". What you really mean is that future command are expected to be executed unless things change (for example, due to another \if in the meantime), but somebody might have a different interpretation of these messages.
I think that the messages you are proposing for "if" and "else" are reasonable, but for "endif" I would just say "endif: exiting if" or something like that. If the user doesn't know to what state they are returning, c'est la vie.
That might be what we end up doing. I'm willing to see how unwieldy it gets before rolling back to "endif: peace out".
The state logic has stuff to do anyway, so for the moment I've added psql_error() messages at each endpoint. My current (unsubmitted) work has:
if you were in a true branch and leave it (i.e yes->yes)
+ psql_error("exited \\if to true parent branch, \n"
+ "continuing executing commands\n");
if you were in a false branch beneath a true branch and leave it (no->yes)
+ psql_error("exited \\if to true parent branch, \n"
+ "resuming executing commands\n");
And if you were in a branch that was a child of a false branch (no->no):
+ psql_error("exited \\if to false parent branch, \n"
+ "ignoring commands until next \\endif\n");
And the (yes->no) is an impossibility, so no message there.
I'm not too concerned about what wording we finally go with, and as the coder I realize I'm too close to know the wording that will be most helpful to an outsider, so I'm very much trusting others to guide me.