all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Jan Djärv" <jan.h.d@swipnet.se>
To: Christoph Scholtes <cschol2112@googlemail.com>
Cc: 9544@debbugs.gnu.org
Subject: bug#9544: 24.0.50; cc-mode does not indent Qt class correctly
Date: Sun, 18 Sep 2011 18:26:53 +0200	[thread overview]
Message-ID: <4E761BCD.9060706@swipnet.se> (raw)
In-Reply-To: <86y5xllwa1.fsf@googlemail.com>

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)
>
>





  reply	other threads:[~2011-09-18 16:26 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
2015-12-29  3:15   ` bug#710: " Andrew Hyatt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4E761BCD.9060706@swipnet.se \
    --to=jan.h.d@swipnet.se \
    --cc=9544@debbugs.gnu.org \
    --cc=cschol2112@googlemail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.