40

私は多くの#pragma omp. 私は整理整頓のためにすばらしい clang 形式を使用しますが、すべてのプリプロセッサ ディレクティブのインデントが常に削除されます。その動作を変更する方法はありますか? または、より推奨される別の書式設定ツールはありますか? それとも、これらのツールの使用をまったく避けるべきですか?

4

5 に答える 5

7

自分でパッチを当てて、プル リクエストを作成することもできます。

それほど難しいことではありません。私は一度、同様にありふれたプルリクエストを作成しました。clang 形式のコードはかなり整頓されています。Clang-format は既にコード コメントを希望する方法で処理し、それらを周囲のコードに合わせます (少なくともこれを有効にするオプションがあります)。そのため、特定の PP ディレクティブを同じ方法で処理するパッチを作成するのは簡単です。

または、自分でパッチを作成し、プロジェクトで使用するために、追加のオプションを使用してソースから自分で clang をコンパイルすることもできます。また、パッチを送る前にこれを行いました。

これを行う方法を理解するのにほんの数時間しかかかりませんでした。彼らのコードは、他の多くのオープン ソース プロジェクトのコードよりもはるかにクリーンです。

于 2015-08-24T15:11:57.513 に答える
1

astyle(アーティスティック スタイル)#pragma ompすぐに使用できる、コードに合わせた適切なインデント。動作を変更するオプションすらないようです。例に示すように、行の継続のみがインデントされていません。行の継続は、おそらく 8 つのスペースでインデントされていることをお勧めしompます。その他のプラグマは左揃えです。

void foo()
{
        #pragma omp parallel
#pragma omp master
    {
#pragma omp task depend( some_expression ) \
            depend( other_expression ) \
    priority(1)
        {
            code();
        }
    }

    #pragma other
    code();
}

になる

void foo()
{
    #pragma omp parallel
    #pragma omp master
    {
        #pragma omp task depend( some_expression ) \
        depend( other_expression ) \
        priority(1)
        {
            code();
        }
    }

#pragma other
    code();
}

Astyle Visual Studio 拡張機能があります。

于 2019-11-01T07:04:26.300 に答える