問題タブ [clang-format]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
23734 参照

c++ - Clang 形式の改行

clang-formatツールが改行を削除しないようにする設定を探しています。

たとえば、私はColumnLimit120 に設定しており、サンプル コードを再フォーマットすると次のようになります。

前:

後:

私が望むのは、ツールが 120 文字を超える行を分割することですが、120 文字未満であるという理由だけで行を結合することを決定しないことです。

そのようなオプションはありますか?ドキュメントには何も目立ちませんでした。

0 投票する
1 に答える
1211 参照

c++ - クラス/構造体の演算子の前にClang-Format挿入改行を作成する方法

一部のコードを clang-format 3.7 でフォーマットしようとしています。

次のような構造体があります。

これは問題ありませんが、clang-format は次のようにフォーマットすることを主張します。

Thing1次の行にandThing2を配置し、同じ行に中括弧を配置することを好みますが、それがなくても生きていけます。

これは私の現在の.clang-formatファイルです。これを変更する方法はありますか?

0 投票する
2 に答える
3193 参照

git - コード スタイルの規則に違反するプッシュを確実に拒否する Git の「pre-receive」フックと「git-clang-format」スクリプト

pre-receive私がすでに書いたフックの断片からすぐに始めましょう:

注:
無関係なコードのある場所は、 でスタブ化されてい# ...ます。

注:
に慣れていない場合はgit-clang-formatこちらをご覧ください。

そのフックは期待どおりに機能し、これまでのところバグに気付きませんでしたが、問題を見つけたり、改善の提案があれば、報告をお待ちしています. おそらく、このフックの背後にある意図についてコメントする必要があります。プッシュされたすべてのリビジョンが を使用してコード スタイルの規則に準拠しているgit-clang-formatかどうかをチェックし、準拠していないものがあれば、それぞれに関連する diff (開発者に何を修正する必要があるかを伝えるもの) を出力します。基本的に、このフックに関して 2 つの詳細な質問があります。

まず、リモート (サーバー) のベア リポジトリを一時ディレクトリにコピーし、そこで分析用にコードをチェックアウトしていることに注意してください。その意図を説明しよう。プッシュされたすべてのリビジョンを個別git checkoutに. ここで回避しようとしているのは、リモートの (サーバー) ベア リポジトリへのプッシュ アクセスにおける (可能性のある) 同時実行の問題です。つまり、複数の開発者がこのフックがインストールされたリモートに同時にプッシュしようとすると、これらのプッシュ「セッション」のそれぞれがプライベートコピーでs とs を実行しない場合、問題が発生する可能性があるという印象を受けています。リポジトリの。つまり、簡単に言えば、git resetforgit-clang-formatpre-receivegit checkoutgit resetgit-daemon同時プッシュ「セッション」のロック管理が組み込まれていますか? 対応するpre-receiveフック インスタンスを厳密に順番に実行しますか、それともインターリーブの可能性がありますか (未定義の動作を引き起こす可能性があります)。この問題には、具体的な保証を備えた組み込みの解決策があるはずだと何かが教えてくれます。そうしないと、リモートは一般的に(複雑なフックがなくても)同時プッシュにさらされてどのように機能しますか?そのような組み込みソリューションがある場合、コピーは冗長であり、ベア リポジトリを再利用するだけで実際に処理が高速化されます。ところで、この質問に関する公式ドキュメントへの参照は大歓迎です。

次に、ステージングされた(コミットされていない) 変更と特定のコミット (デフォルト)git-clang-formatのみを処理します。したがって、コーナーケースがどこにあるかを簡単に確認できます。はい、ルートコミット (リビジョン) と一緒です。実際には、リセット先の親がないため、ルート コミットには適用できません。したがって、2番目の質問に対する次のチェックがあります。HEADgit reset --soft 'HEAD~1'

試してみましgit update-ref -d 'HEAD'たが、これによりリポジトリが壊れてしまい、git-clang-format処理できなくなります。これは、分析されているこれらのプッシュされたリビジョン (このルート リビジョンを含む) のすべてが実際にはまだどのブランチにも属していないという事実に関連していると思います。つまり、切り離され HEADた状態です。このコーナー ケースの解決策も見つけて、最初のコミットでもgit-clang-formatコード スタイルの規則に準拠しているかどうかを同じようにチェックできるようにすることができれば完璧です。

平和。

0 投票する
1 に答える
591 参照

c++ - リターン後にclang-formatがスペースを入れるのを止める方法はありますか?

私がこのようなものを持っている場合:

それをclang-formatに渡すと、常に改行と開始の間にスペースが追加されます(次のように:

SpaceBeforeParens を Never に設定しましたが、まだこのスペースが追加されています。これを制御する方法を知っている人はいますか?

0 投票する
1 に答える
1691 参照

c++ - isocpp のコア ガイドライン用に clang-format を構成する

CppCoreGuidelinesにできるだけ近づけたいのですが、clang-format の設定に問題があります。

isocpp コア ガイドラインに準拠するように clang-format を設定するにはどうすればよいですか?

たとえば、次のガイドラインは私にいくつかの問題を引き起こします。

https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#Rl-ptr

clang-format は常に選択さT &operator[](size_t);れているようで、正しい設定が見つかりません。

0 投票する
1 に答える
448 参照

c++ - clang-format 3.6 を使用した cpp template<> のスペーシングが期待どおりに機能しない

forコードを使用してclang-format version 3.6 on Fedora 21内部vimを使用しています。テンプレート定義を除いて、コードは期待どおりに見えます。のコードは、 false に設定した比較的近いように見える唯一のオプション に変更されていますが、単語テンプレートと山括弧の間にスペースを入れています。これが単語テンプレートと山かっこの間にスペースを挿入するのを防ぐ方法について誰か考えがありますか?clang-format.pycpptemplate<typename T>template <typename T>ObjCSpaceBeforeProtocolList

0 投票する
1 に答える
735 参照

clang - 美化ツールを使用してこの方法でマクロをインデントする方法は?

プリプロセッサを次のようにインデントしたい:

clang-formatを試しましたが、ディレクティブの後にすべてのスペースが削除#され、その動作を制御するオプションが見つかりませんでした。では、clang-format はそのようにプリプロセッサのインデントを実行できますか?

0 投票する
0 に答える
323 参照

c - Clang-Format で連続する引数の間にスペースを入れない

私が使用しなければならない C スタイル ガイドでは、関数呼び出しで関数の引数の間にスペースを入れない (またはコンマの後にスペースを入れない) ことを強制しています。

clang-formatでこれを達成するにはどうすればよいですか? ドキュメントに記載されているスペーシング関連のオプションはどれも、これには適していないようです。

0 投票する
1 に答える
1852 参照

clang-format - clang-format は、if() while() for() の後にステートメントの周りに {} を追加します

compound_statement非を{ non-compound_statement; }inに減らすように clang-format をセットアップできるかどうか知りたいですiteration_statement

入力:

出力:

その後、美容師は必要に応じてインデントします。