bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#9544: 24.0.50; cc-mode does not indent Qt class correctly


From: Jan Djärv
Subject: bug#9544: 24.0.50; cc-mode does not indent Qt class correctly
Date: Sun, 18 Sep 2011 18:26:53 +0200
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:5.0) Gecko/20110624 Thunderbird/5.0

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 via email to

[Prev in Thread] Current Thread [Next in Thread]