web-dev-qa-db-ja.com

C ++プログラムをインデントするユーティリティはありますか

「インデント」プログラムを使用してC++プログラムをインデントしようとしています。しかし、それはうまく機能していないようです。インデントをさらに台無しにしています。

クラスファイルです。それまたは機能する別のプログラムの適切なオプションを提案できますか?

ありがとう

21
user855

試してください 芸術的なスタイル

Artistic Styleは、C、C++、C#、およびJavaプログラミング言語)のソースコードインデンター、フォーマッター、およびビューティファイアーです。

20
Andrew Hare

visual Studioで、 CTRL+a、 CTRL+k、 CTRL+f 作業中のファイル全体を自動インデントします。

11
Rantaak

C++コードの自動フォーマット用の別のツールは clang-format です。

5
Philipp

VimやEmacsのような多くのエディターには、組み込みのインデント標準に従ってコードをインデントする機能があります。

Vimでは、次のように入力できます = どんな動きでも。 (お気に入り =% 任意のブロック区切り文字または S-v 地域を選択してから = 再フォーマットします。) gq コマンドを使用して、コメントやその他のテキストを再フォーマットできます。

Emacsでは、次のように入力できます M-xindent-region地域を選択した後。 (など M-< そして M->。)コメントを再フォーマットすることもできます M-xfill-paragraph

5
greyfade

これは、OPや他のポスターへの返信です。私はWindowsで作業しており、インデントも探していました。これは私が学んだことです:

bcppを試しました。それはかなり古いようで(1996年から多かれ少なかれ)、あなたはウィンドウズのexeファイルを見つける必要があります。私はここで1つ見つけました: http://www.zeusedit.com/zforum/viewtopic.php?t=1067 。それでも、スペース/タブ、インデントレベル、および中括弧の変換しか実行できないため、わざわざ気にする価値はないと思います。

次に、Artistic Styleがあります。これは、より新しく、sourceforgeにあります。非常に有能なようですが、たとえば、関数名とパラメーターの周囲のスペースを再フォーマットすることはできません(たとえば、if ( a ( b ) )if (a(b))に変換します。

私はCygwinインデントhttp://www.cygwin.com/ )が一番好きですが、改行でのみうまく機能します分離されたファイルなので、「dos2unix <infile | indent ...」のように使用する必要があります。しかし、インデントはボックス化されたコメントを再フォーマットしません... :)

たぶん、ArtisticStyleとCygwinインデントの組み合わせが最適です。今、私はこのコマンドラインを使用します:astyle --style=kr -s3 --break-closing-brackets < infile.cpp | dos2unix | indent --no-tabs --k-and-r-style --indent-level 3 --dont-cuddle-else | unix2dos。私は少し長いです、私は同意します、しかしそれを除けばそれは非常に良い結果を生み出します。 :)

3
cxxl
3
Tom

bcpp 、任意のLinuxディストリビューションで利用可能(そしておそらくmingw/cygwinで利用可能ですが、私はそれをチェックしていません)はC++の圧子と美化です。コードでどのように機能するかをパラメータ化できます。

Visual Studio 2008のもう1つの短いキー:

Ctrl + A、Alt + F8

1
Vadakkumpadath

netbeansでは、簡単に実行できます

Alt + Shift + F

プラグインが対応する言語にインストールされていることを確認してください。たとえば、PHPコードインデントの場合、netbeans PHPを選択するか、リポジトリからPHPプラグインをインストールする必要があります。

0
Anish Sheela