web-dev-qa-db-ja.com

C ++ VSCodeの同じ行に中括弧をフォーマットする

C++ Extension for VSCode(Visual Studio Code)を使用しています。

現在、私は"C_Cpp.clang_format_formatOnSave"trueに設定されます。

この形式は、C++ファイルを保存するときの私のコードです。ただし、この形式では、同じ行ではなく新しい行に中括弧が挿入されます。

現在のC++ VSCodeフォーマット済み

for (int i = 0; i < 10; i++)
{
    // ...
}

C++ VSCode形式のコードに似せてほしいもの

for (int i = 0; i < 10; i++) {
    // ...
}

私もeditor.wrappingIndent に設定 "same"

Visual Studio Codeの同じ行にC++形式で中括弧を作成するにはどうすればよいですか?

32
Acidic
  1. 設定に移動->設定
  2. C_Cpp.clang_format_fallbackStyleを検索
  3. [編集]、[設定にコピー]の順にクリックします
  4. 「Visual Studio」から"{ BasedOnStyle: Google, IndentWidth: 4 }"

例えば.

  • "C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google, IndentWidth: 4, ColumnLimit: 0}"
  • ところでColumnLimit: 0も役立ちます。Googleの制限により、必要のないコードが次の行に分割されるためです。

さらに必要な場合:

より詳しく:

英語: https://medium.com/@zamhuang/vscode-how-to-customize-c-s-coding-style-in-vscode-ad16d87e93bf

台湾: https://medium.com/@zamhuang/vscode-%E5%A6%82%E4%BD%95%E5%9C%A8-vscode-%E4%B8%8A%E8%87 %AA%E5%AE%9A%E7%BE%A9-c-%E7%9A%84-coding-style-c8eb199c57ce

57
Zam

clang-format は、C/C++コードのフォーマットに使用されるスタンドアロンツールです。 C/C++ extension が付属していますが、オプションC_Cpp.clang_format_pathを使用して、コンピューターにインストールされている独自のバージョンのclang-formatへのパスを指定するオプションがあります。

Clang形式スタイルのソース(C_Cpp.clang_format_style)はデフォルトでfileに設定され、.clang-formatファイルを読み込みます。使用可能なスタイルオプションの詳細については、 このページ を参照してください。

それ以外の場合、おそらく最も簡単な方法は、オプションC_Cpp.clang_format_fallbackStyleを変更することです。

探しているスタイルはおそらくWebKitです。


したがって、.vscode/settings.jsonファイルは次のようになります。

{
    "C_Cpp.clang_format_fallbackStyle": "WebKit"
}
20
Irvin Lim

実際のclang-formatオプションは次のとおりです。

BreakBeforeBraces: Attach
2
Orwellophile

現在受け入れられている答えがもう機能しないことに気付きました。最新バージョン(1.32.3)では、Ctrl+,を使用して設定を開き、c fallbackを検索します。

enter image description here

上記の値をデフォルトからLLVMに変更すると、準備完了です!

2
Master Yushi

その他の回答は、以下の機能に従って、完全ではないか、時代遅れです。

  1. Ctrl+,を押して設定を開きます。

  2. C_Cpp: Clang_format_fallback Styleの検索Visual Studioの値が表示されます。


詳細(これはスキップできます。以下のポイントを参照):

ただし、Visual Studioの値
と同じ
{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4 }

ただし、ここで1つのことを変更する必要があります。中かっこ(たとえば、if、forなど)の前で中断したくないため、以下の変更が必要です。
from:BreakBeforeBraces: Allman
to BreakBeforeBraces: Attach


  1. したがって、Visual Studioから変更します
    to:{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Attach, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4 }

お役に立てば幸いです。