These are great questions. My current thinking on the subject is
this:
I think that error recovery of the sort you need for IDEs is very
similar to the error recovery you want in a compiler. In other words,
I think that each grammar should have one error recovery strategy that
is used by any program that uses the grammar.
I think that error recovery will be as simple as a function that has
full access to the parse state and can manipulate that parse state as
best as it can to recover from the error. And I think that they will
be stored off to the side.
There are several features I want to tackle before error recovery,
though. The biggest one is a way to ignore whitespace.
Josh