]> git.eshelyaron.com Git - emacs.git/commit
Implement C++ Mode attributes. This fixes bug #36650.
authorAlan Mackenzie <acm@muc.de>
Sun, 21 Jul 2019 21:08:03 +0000 (21:08 +0000)
committerAlan Mackenzie <acm@muc.de>
Sun, 21 Jul 2019 21:08:03 +0000 (21:08 +0000)
commit5ccaee4bbc184c53b262021361bd216af17e80f5
treed9fff44dc875fb76aef0081f8f6021e5efef5b2d
parent5d4dd552c29279b8a9e6ed269a2dc3afc36f73b9
Implement C++ Mode attributes.  This fixes bug #36650.

* lisp/progmodes/cc-engine.el (c-looking-at-c++-attribute)
(c-enclosing-c++-attribute, c-slow-enclosing-c++-attribute): New macro and
functions.
(c-crosses-statement-barrier-p): Add [ into skip-chars for C++ Mode, and use
it to detect and skip over an attribute whilst scanning forward.
(c-sws-lit-type): Use the new value 'attribute.
(c-invalidate-sws-region-before): Put a save-match-data around this function.
Detect and handle an enclosing attribute at either END or BEG.
(c-invalidate-sws-region-after): Handle C++ attributes.
(c-forward-sws, c-backward-sws): Handle C++ attributes.

* lisp/progmodes/cc-mode.el (c-fl-decl-end): Detect and handle point being
inside a C++ attribute.
lisp/progmodes/cc-engine.el
lisp/progmodes/cc-mode.el