GNU bug report logs -
#18826
24.3.94; c++-mode bad indentation after programmatic insert with locally changed syntax table
Previous Next
Reported by: Dmitry Gutov <dgutov <at> yandex.ru>
Date: Sat, 25 Oct 2014 14:27:02 UTC
Severity: normal
Found in version 24.3.94
Done: Dmitry Gutov <dgutov <at> yandex.ru>
Bug is archived. No further changes may be made.
Full log
Message #11 received at 18826 <at> debbugs.gnu.org (full text, mbox):
On 10/26/2014 02:34 AM, Alan Mackenzie wrote:
> Why do you think it should be harmless?
Because the syntax table change is temporary and its effect should be
limited to my code?
> . The c-in-sws and c-is-sws indicate that the semicolon has been
> recognised and marked as syntactic whitespace. The second line thus gets
> parsed as "statement-cont", i.e. a continued statement, so it gets
> indented an extra level.
Yes, I see that. But how does this happen?
> If you cripple C++ Mode by substituting a wrong syntax table, you
> shouldn't be too surprised when things go "wrong". This seems like one of
> these "well, don't do that, then" bugs.
>
> Question: why do you want to play around with the syntax table in this
> manner? What are you trying to achieve?
I'm using a different syntax table for sexp movement, where it's
necessary for both parens and angle brackets to have paren syntax class.
In the actual code I modify the text after it's inserted, and
`backward-sexp' is used two times to find necessary search bounds.
https://github.com/company-mode/company-mode/blob/42012730da15ffaef7c61722475040babed15332/company-template.el#L155-L173
This bug report was last modified 10 years and 271 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.