* bug#9544: 24.0.50; cc-mode does not indent Qt class correctly
@ 2011-09-18 15:12 Christoph Scholtes
2011-09-18 16:26 ` Jan Djärv
0 siblings, 1 reply; 3+ messages in thread
From: Christoph Scholtes @ 2011-09-18 15:12 UTC (permalink / raw)
To: 9544
With the latest emacs trunk, from `emacs -Q' open *.hpp file with this
content:
class Counter : public QObject
{
Q_OBJECT
public:
Counter() { m_value = 0; }
int value() const { return m_value; }
public slots:
void setValue(int value);
signals:
void valueChanged(int newValue);
private:
int m_value;
};
Note, that the first access modifier `public' is not indented
properly. All Qt other extension modifiers are indented correctly.
The indentation should look like this:
class Counter : public QObject
{
Q_OBJECT
public:
Counter() { m_value = 0; }
[snip]
The indentation works correctly when the `Q_OBJECT' macro is
removed. Since cc-mode does support the Qt extensions, it should
also correctly indent this class with the `Q_OBJECT' macro present.
In GNU Emacs 24.0.50.1 (i386-mingw-nt6.1.7601)
of 2011-09-17 on MARVIN
Windowing system distributor `Microsoft Corp.', version 6.1.7601
configured using `configure --with-gcc (4.5) --no-opt --cflags -I"C:/Program Files (x86)/GnuWin32/include" -ID:/devel/emacs/libXpm-3.5.8/include -ID:/devel/emacs/libXpm-3.5.8/src -ID:/devel/emacs/gnutls-2.10.5-x86/include --ldflags -LD:/devel/emacs/gnutls-2.10.5-x86/lib'
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: ENU
value of $XMODIFIERS: nil
locale-coding-system: cp1252
default enable-multibyte-characters: t
Major mode: Emacs-Lisp
Minor modes in effect:
paredit-mode: t
my-keys-minor-mode: t
erc-autojoin-mode: t
erc-track-mode: t
erc-match-mode: t
erc-pcomplete-mode: t
erc-stamp-mode: t
recentf-mode: t
desktop-save-mode: t
autopair-mode: t
autopair-global-mode: t
ido-everywhere: t
yas/global-mode: t
yas/minor-mode: t
global-auto-revert-mode: t
delete-selection-mode: t
tooltip-mode: t
mouse-wheel-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
size-indication-mode: t
column-number-mode: t
line-number-mode: t
Recent input:
M-x c c - m o d e <tab> <tab> <tab> <backspace> <backspace>
<backspace> <backspace> <tab> <backspace> <backspace>
<backspace> <backspace> <backspace> <backspace> <backspace>
r e o <backspace> p o r t - b u <tab> <tab> <tab> <tab>
<tab> <backspace> <backspace> <backspace> C-g C-t C-/
M-x r e p o r t <tab> <return>
Recent messages:
Quit
Undo!
Loading system routine info in idle time...
Failed to convert XML routine info, falling back on idlw-rinfo.
Could not locate any system routine information.
Loading system routine info in idle time...done
Normalizing idlwave-system-routines in idle time...done
Loading and normalizing library catalogs in idle time...done
Finishing initialization in idle time...
Scanning all buffers...
Load-path shadows:
None found.
Features:
(shadow sort gnus-cite mail-extr gnus-msg gnus-art mm-uu mml2015
epg-config mm-view mml-smime smime password-cache dig mailcap emacsbug
idlwave imenu idlwave-help idlw-help browse-url cc-mode cc-fonts
cc-guess cc-menus cc-cmds vc-hg paredit my-zenburn-theme erc-join
erc-track erc-match erc-pcomplete erc-stamp erc-goodies erc erc-backend
erc-compat thingatpt ispell bookmark+ bookmark+-key dired-x dired
bookmark+-1 nnir gnus-sum nnoo gnus-group gnus-undo nnmail mail-source
gnus-start gnus-spec gnus-int gnus-range message format-spec rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045
ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus gnus-ems
nnheader gnus-util mail-utils mm-util mail-prsvr bookmark+-bmu help-mode
view bookmark+-lit pp+ bookmark+-mac bookmark pp recentf tree-widget
wid-edit midnight desktop ibuffer uniquify autopair google-c-style
cc-styles cc-align cc-engine cc-vars cc-defs browse-kill-ring+
browse-kill-ring second-sel ido yasnippet dropdown-list derived edmacro
kmacro assoc cl org-habit org-agenda org byte-opt warnings bytecomp
byte-compile cconv macroexp ob-emacs-lisp ob-tangle ob-ref ob-lob
ob-table org-footnote org-src ob-comint comint ring ob-keys ob ob-eval
org-pcomplete pcomplete org-list org-faces org-compat org-entities
org-macs noutline outline easy-mmode regexp-opt cal-menu easymenu
calendar cal-loaddefs org-install server advice help-fns advice-preload
debbugs-autoloads package tabulated-list autorevert delsel time-date
tooltip ediff-hook vc-hooks lisp-float-type mwheel dos-w32 disp-table
ls-lisp w32-win w32-vars tool-bar dnd fontset image fringe lisp-mode
register page menu-bar rfn-eshadow timer select scroll-bar mouse
jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer button faces cus-face files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process multi-tty emacs)
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#9544: 24.0.50; cc-mode does not indent Qt class correctly
2011-09-18 15:12 bug#9544: 24.0.50; cc-mode does not indent Qt class correctly Christoph Scholtes
@ 2011-09-18 16:26 ` Jan Djärv
2015-12-29 3:15 ` bug#710: " Andrew Hyatt
0 siblings, 1 reply; 3+ messages in thread
From: Jan Djärv @ 2011-09-18 16:26 UTC (permalink / raw)
To: Christoph Scholtes; +Cc: 9544
Hi.
Can't you put a ; after Q_OBJECT, i.e:
class Counter : public QObject
{
Q_OBJECT;
public:
?
public will then be correctly indented. Non-syntactical macros like this are
a pain. I don't think it is possible to handle them except by emulating the
preprocessor, which cc-mode does not (I think).
Jan D.
Christoph Scholtes skrev 2011-09-18 17:12:
> With the latest emacs trunk, from `emacs -Q' open *.hpp file with this
> content:
>
> class Counter : public QObject
> {
> Q_OBJECT
>
> public:
> Counter() { m_value = 0; }
>
> int value() const { return m_value; }
>
> public slots:
> void setValue(int value);
>
> signals:
> void valueChanged(int newValue);
>
> private:
> int m_value;
> };
>
>
> Note, that the first access modifier `public' is not indented
> properly. All Qt other extension modifiers are indented correctly.
>
> The indentation should look like this:
>
> class Counter : public QObject
> {
> Q_OBJECT
>
> public:
> Counter() { m_value = 0; }
>
> [snip]
>
> The indentation works correctly when the `Q_OBJECT' macro is
> removed. Since cc-mode does support the Qt extensions, it should
> also correctly indent this class with the `Q_OBJECT' macro present.
>
>
>
> In GNU Emacs 24.0.50.1 (i386-mingw-nt6.1.7601)
> of 2011-09-17 on MARVIN
> Windowing system distributor `Microsoft Corp.', version 6.1.7601
> configured using `configure --with-gcc (4.5) --no-opt --cflags -I"C:/Program Files (x86)/GnuWin32/include" -ID:/devel/emacs/libXpm-3.5.8/include -ID:/devel/emacs/libXpm-3.5.8/src -ID:/devel/emacs/gnutls-2.10.5-x86/include --ldflags -LD:/devel/emacs/gnutls-2.10.5-x86/lib'
>
> Important settings:
> value of $LC_ALL: nil
> value of $LC_COLLATE: nil
> value of $LC_CTYPE: nil
> value of $LC_MESSAGES: nil
> value of $LC_MONETARY: nil
> value of $LC_NUMERIC: nil
> value of $LC_TIME: nil
> value of $LANG: ENU
> value of $XMODIFIERS: nil
> locale-coding-system: cp1252
> default enable-multibyte-characters: t
>
> Major mode: Emacs-Lisp
>
> Minor modes in effect:
> paredit-mode: t
> my-keys-minor-mode: t
> erc-autojoin-mode: t
> erc-track-mode: t
> erc-match-mode: t
> erc-pcomplete-mode: t
> erc-stamp-mode: t
> recentf-mode: t
> desktop-save-mode: t
> autopair-mode: t
> autopair-global-mode: t
> ido-everywhere: t
> yas/global-mode: t
> yas/minor-mode: t
> global-auto-revert-mode: t
> delete-selection-mode: t
> tooltip-mode: t
> mouse-wheel-mode: t
> file-name-shadow-mode: t
> global-font-lock-mode: t
> font-lock-mode: t
> blink-cursor-mode: t
> auto-composition-mode: t
> auto-encryption-mode: t
> auto-compression-mode: t
> size-indication-mode: t
> column-number-mode: t
> line-number-mode: t
>
> Recent input:
> M-x c c - m o d e<tab> <tab> <tab> <backspace> <backspace>
> <backspace> <backspace> <tab> <backspace> <backspace>
> <backspace> <backspace> <backspace> <backspace> <backspace>
> r e o<backspace> p o r t - b u<tab> <tab> <tab> <tab>
> <tab> <backspace> <backspace> <backspace> C-g C-t C-/
> M-x r e p o r t<tab> <return>
>
> Recent messages:
> Quit
> Undo!
> Loading system routine info in idle time...
> Failed to convert XML routine info, falling back on idlw-rinfo.
> Could not locate any system routine information.
> Loading system routine info in idle time...done
> Normalizing idlwave-system-routines in idle time...done
> Loading and normalizing library catalogs in idle time...done
> Finishing initialization in idle time...
> Scanning all buffers...
>
> Load-path shadows:
> None found.
>
> Features:
> (shadow sort gnus-cite mail-extr gnus-msg gnus-art mm-uu mml2015
> epg-config mm-view mml-smime smime password-cache dig mailcap emacsbug
> idlwave imenu idlwave-help idlw-help browse-url cc-mode cc-fonts
> cc-guess cc-menus cc-cmds vc-hg paredit my-zenburn-theme erc-join
> erc-track erc-match erc-pcomplete erc-stamp erc-goodies erc erc-backend
> erc-compat thingatpt ispell bookmark+ bookmark+-key dired-x dired
> bookmark+-1 nnir gnus-sum nnoo gnus-group gnus-undo nnmail mail-source
> gnus-start gnus-spec gnus-int gnus-range message format-spec rfc822 mml
> mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045
> ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus gnus-ems
> nnheader gnus-util mail-utils mm-util mail-prsvr bookmark+-bmu help-mode
> view bookmark+-lit pp+ bookmark+-mac bookmark pp recentf tree-widget
> wid-edit midnight desktop ibuffer uniquify autopair google-c-style
> cc-styles cc-align cc-engine cc-vars cc-defs browse-kill-ring+
> browse-kill-ring second-sel ido yasnippet dropdown-list derived edmacro
> kmacro assoc cl org-habit org-agenda org byte-opt warnings bytecomp
> byte-compile cconv macroexp ob-emacs-lisp ob-tangle ob-ref ob-lob
> ob-table org-footnote org-src ob-comint comint ring ob-keys ob ob-eval
> org-pcomplete pcomplete org-list org-faces org-compat org-entities
> org-macs noutline outline easy-mmode regexp-opt cal-menu easymenu
> calendar cal-loaddefs org-install server advice help-fns advice-preload
> debbugs-autoloads package tabulated-list autorevert delsel time-date
> tooltip ediff-hook vc-hooks lisp-float-type mwheel dos-w32 disp-table
> ls-lisp w32-win w32-vars tool-bar dnd fontset image fringe lisp-mode
> register page menu-bar rfn-eshadow timer select scroll-bar mouse
> jit-lock font-lock syntax facemenu font-core frame cham georgian
> utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
> japanese hebrew greek romanian slovak czech european ethiopic indian
> cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
> minibuffer button faces cus-face files text-properties overlay sha1 md5
> base64 format env code-pages mule custom widget hashtable-print-readable
> backquote make-network-process multi-tty emacs)
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#710: bug#9544: 24.0.50; cc-mode does not indent Qt class correctly
2011-09-18 16:26 ` Jan Djärv
@ 2015-12-29 3:15 ` Andrew Hyatt
0 siblings, 0 replies; 3+ messages in thread
From: Andrew Hyatt @ 2015-12-29 3:15 UTC (permalink / raw)
To: Jan Djärv; +Cc: Christoph Scholtes, 9544, 710
This seems to work fine out of the box for me in Emacs 25.
Reading the manual, if you have further problems, the variable
c-macro-names-with-semicolon should help (see the info node about this:
"Macros with ;"). I'm closing this as unreproducible, but please update
if both Emacs 25 and this variable fail to solve the issue.
Jan Djärv <jan.h.d@swipnet.se> writes:
> Hi.
>
> Can't you put a ; after Q_OBJECT, i.e:
>
> class Counter : public QObject
> {
> Q_OBJECT;
>
> public:
>
> ?
>
> public will then be correctly indented. Non-syntactical macros like this are a
> pain. I don't think it is possible to handle them except by emulating the
> preprocessor, which cc-mode does not (I think).
>
> Jan D.
>
>
> Christoph Scholtes skrev 2011-09-18 17:12:
>> With the latest emacs trunk, from `emacs -Q' open *.hpp file with this
>> content:
>>
>> class Counter : public QObject
>> {
>> Q_OBJECT
>>
>> public:
>> Counter() { m_value = 0; }
>>
>> int value() const { return m_value; }
>>
>> public slots:
>> void setValue(int value);
>>
>> signals:
>> void valueChanged(int newValue);
>>
>> private:
>> int m_value;
>> };
>>
>>
>> Note, that the first access modifier `public' is not indented
>> properly. All Qt other extension modifiers are indented correctly.
>>
>> The indentation should look like this:
>>
>> class Counter : public QObject
>> {
>> Q_OBJECT
>>
>> public:
>> Counter() { m_value = 0; }
>>
>> [snip]
>>
>> The indentation works correctly when the `Q_OBJECT' macro is
>> removed. Since cc-mode does support the Qt extensions, it should
>> also correctly indent this class with the `Q_OBJECT' macro present.
>>
>>
>>
>> In GNU Emacs 24.0.50.1 (i386-mingw-nt6.1.7601)
>> of 2011-09-17 on MARVIN
>> Windowing system distributor `Microsoft Corp.', version 6.1.7601
>> configured using `configure --with-gcc (4.5) --no-opt --cflags -I"C:/Program Files (x86)/GnuWin32/include" -ID:/devel/emacs/libXpm-3.5.8/include -ID:/devel/emacs/libXpm-3.5.8/src -ID:/devel/emacs/gnutls-2.10.5-x86/include --ldflags -LD:/devel/emacs/gnutls-2.10.5-x86/lib'
>>
>> Important settings:
>> value of $LC_ALL: nil
>> value of $LC_COLLATE: nil
>> value of $LC_CTYPE: nil
>> value of $LC_MESSAGES: nil
>> value of $LC_MONETARY: nil
>> value of $LC_NUMERIC: nil
>> value of $LC_TIME: nil
>> value of $LANG: ENU
>> value of $XMODIFIERS: nil
>> locale-coding-system: cp1252
>> default enable-multibyte-characters: t
>>
>> Major mode: Emacs-Lisp
>>
>> Minor modes in effect:
>> paredit-mode: t
>> my-keys-minor-mode: t
>> erc-autojoin-mode: t
>> erc-track-mode: t
>> erc-match-mode: t
>> erc-pcomplete-mode: t
>> erc-stamp-mode: t
>> recentf-mode: t
>> desktop-save-mode: t
>> autopair-mode: t
>> autopair-global-mode: t
>> ido-everywhere: t
>> yas/global-mode: t
>> yas/minor-mode: t
>> global-auto-revert-mode: t
>> delete-selection-mode: t
>> tooltip-mode: t
>> mouse-wheel-mode: t
>> file-name-shadow-mode: t
>> global-font-lock-mode: t
>> font-lock-mode: t
>> blink-cursor-mode: t
>> auto-composition-mode: t
>> auto-encryption-mode: t
>> auto-compression-mode: t
>> size-indication-mode: t
>> column-number-mode: t
>> line-number-mode: t
>>
>> Recent input:
>> M-x c c - m o d e<tab> <tab> <tab> <backspace> <backspace>
>> <backspace> <backspace> <tab> <backspace> <backspace>
>> <backspace> <backspace> <backspace> <backspace> <backspace>
>> r e o<backspace> p o r t - b u<tab> <tab> <tab> <tab>
>> <tab> <backspace> <backspace> <backspace> C-g C-t C-/
>> M-x r e p o r t<tab> <return>
>>
>> Recent messages:
>> Quit
>> Undo!
>> Loading system routine info in idle time...
>> Failed to convert XML routine info, falling back on idlw-rinfo.
>> Could not locate any system routine information.
>> Loading system routine info in idle time...done
>> Normalizing idlwave-system-routines in idle time...done
>> Loading and normalizing library catalogs in idle time...done
>> Finishing initialization in idle time...
>> Scanning all buffers...
>>
>> Load-path shadows:
>> None found.
>>
>> Features:
>> (shadow sort gnus-cite mail-extr gnus-msg gnus-art mm-uu mml2015
>> epg-config mm-view mml-smime smime password-cache dig mailcap emacsbug
>> idlwave imenu idlwave-help idlw-help browse-url cc-mode cc-fonts
>> cc-guess cc-menus cc-cmds vc-hg paredit my-zenburn-theme erc-join
>> erc-track erc-match erc-pcomplete erc-stamp erc-goodies erc erc-backend
>> erc-compat thingatpt ispell bookmark+ bookmark+-key dired-x dired
>> bookmark+-1 nnir gnus-sum nnoo gnus-group gnus-undo nnmail mail-source
>> gnus-start gnus-spec gnus-int gnus-range message format-spec rfc822 mml
>> mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045
>> ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus gnus-ems
>> nnheader gnus-util mail-utils mm-util mail-prsvr bookmark+-bmu help-mode
>> view bookmark+-lit pp+ bookmark+-mac bookmark pp recentf tree-widget
>> wid-edit midnight desktop ibuffer uniquify autopair google-c-style
>> cc-styles cc-align cc-engine cc-vars cc-defs browse-kill-ring+
>> browse-kill-ring second-sel ido yasnippet dropdown-list derived edmacro
>> kmacro assoc cl org-habit org-agenda org byte-opt warnings bytecomp
>> byte-compile cconv macroexp ob-emacs-lisp ob-tangle ob-ref ob-lob
>> ob-table org-footnote org-src ob-comint comint ring ob-keys ob ob-eval
>> org-pcomplete pcomplete org-list org-faces org-compat org-entities
>> org-macs noutline outline easy-mmode regexp-opt cal-menu easymenu
>> calendar cal-loaddefs org-install server advice help-fns advice-preload
>> debbugs-autoloads package tabulated-list autorevert delsel time-date
>> tooltip ediff-hook vc-hooks lisp-float-type mwheel dos-w32 disp-table
>> ls-lisp w32-win w32-vars tool-bar dnd fontset image fringe lisp-mode
>> register page menu-bar rfn-eshadow timer select scroll-bar mouse
>> jit-lock font-lock syntax facemenu font-core frame cham georgian
>> utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
>> japanese hebrew greek romanian slovak czech european ethiopic indian
>> cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
>> minibuffer button faces cus-face files text-properties overlay sha1 md5
>> base64 format env code-pages mule custom widget hashtable-print-readable
>> backquote make-network-process multi-tty emacs)
>>
>>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-12-29 3:15 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-18 15:12 bug#9544: 24.0.50; cc-mode does not indent Qt class correctly Christoph Scholtes
2011-09-18 16:26 ` Jan Djärv
2015-12-29 3:15 ` bug#710: " Andrew Hyatt
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).