Subject: bug#5033: 23.1; antlr-mode: antlr-indent-command broken for long grammars

From: Andrew Hyatt <[email-masked]>
Date: Sun, 27 Mar 2016 22:35:10 -0400

I cannot reproduce this on Emacs 25.  I loaded the provided silly.g, set
the antrl-slow-cache-diff-threshold to 0, and indented each line without
any issues, at many different points on the line.

Someone can let me know if they can still reproduce this, otherwise I'll
close this out.

Chong Yidong <[email-masked]> writes:

>> I am running into an antlr-mode bug when indenting long grammars.
>> Specifically, when the point in the grammar is higher than
>> antlr-slow-cache-diff-threshold indenting a grammar rule fails in
>> calling c-where-wrt-brace-construct through beginning-of-defun.
>
>> Solution:
>> A simple solution (kludge) is to modify antlr-syntactic-context to not
>> call beginning-of-defun in antlr-mode.el.  See attached patch.
>
> I am not able to test this solution, because I don't work with antlr
> files (and I doubt any of the other core Emacs maintainers do either).
> I'm CC'ing the author of antlr-mode, Christoph Wedler, though we haven't
> heard from him in a while.
>
> In the meantime, could you try to explain what removing the
> beginning-of-defun call in antlr-syntactic-context might break?  (Surely
> that call is there for a reason.)