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

[xyzzy:06640] C++ モードでのインデント



はじめまして、藤村と申します。

C++モードのインデントについて質問が有ります。


.xyzzyの記述(抜粋)

; C/C++モード設定
; ハードタブ
(setq *c-indent-tabs-mode* t)
(setq *c++-indent-tabs-mode* t)

(setq *c-comment-column* 52)
(setq *c++-comment-column* 52)

(setq *c-tab-always-indent* nil)
(setq c-indent-level 4)
(setq c-continue-statement-offset 4)
(setq c-brace-offset -2)
(setq c-brace-imaginary-offset 0)
(setq c-argdecl-indent 4)
(setq c-label-offset -4)

(setq *c++-tab-always-indent* nil)
(setq c++-indent-level 4)
(setq c++-continue-statement-offset 4)
(setq c++-brace-offset -2)
(setq c++-brace-imaginary-offset 0)
(setq c++-argdecl-indent 4)
(setq c++-label-offset -4)

という設定をしているのですが、実際のコードにおいて期待通りのインデントで
はなくなるケースがあります。


void classname::func()
{
	typedef struct st{
		char hoge;
	}XXX;

	XXX		hoge;

	// comment

	if(TRUE)
	{
		// comment
	}
	  // comment                 <-2桁左になって欲しい
	  hoge;                      <-2桁左になって欲しい
	hoge;

	if(FALSE)
	{
	}
	  // comment                 <-2桁左になって欲しい
	  hoge;                      <-2桁左になって欲しい
	hoge;
}


上記の現象は、関数(func)内でstruct定義を行うかどうか(typedef 〜 }XXX;が有るかどうか)
で期待通りになったりならなかったりが別れるようです。

どのように設定すれば良いでしょうか?
どなたかご存知の方、よろしくお願いします。
--------------------------------------------------
Masahiro Fujimura

Index Home