Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
35
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

Visual Studio Codeでの行頭カッコを何とかしたい

Visual Studio Codeのフォーマッタ

いつも自分は、コードが汚くなりがちなので、設定を

settings.json
"editor.formatOnSave": true,
"editor.formatOnType": true,

というふうにして改行するごと、保存するごとに自動的にフォーマッタを走らせるようにしている。
この機能は結構使えるのでおすすめ!

問題

VSCodeのフォーマッタはデフォルトで

main.cpp
#include <iostream>
int main() {
    std::cout << "Hello World" << std::endl;
    return 0;
}

を保存すると自動的に

main.cpp
#include <iostream>
int main()
{
    std::cout << "Hello World" << std::endl;
    return 0;
}

となってしまう!!!!

行末派なのでこれは宗教上どうしても受け入れることができない...

解決策

VSCodeの公式ドキュメントによると、デフォルトでの動作では、作業フォルダに.clang-formatというファイルがあるとそれを見に行ってそれに従ってフォーマットする。
ない場合は

.clang-format
UseTab: (VS Code current setting)
IndentWidth: (VS Code current setting)
BreakBeforeBraces: AllMan
AllowShortIfStatementsOnASingleLine: false
IndentCaseLabels: false
ColumnLimit: 0

とかいうVisual Studioというプリセットが使用されるらしい、これだと行頭にカッコが来る。
でもいちいちフォルダ毎に設定ファイルを設置するのは面倒なので、
"C_Cpp.clang_format_style"
GoogleとかLLVMとかChromiumとか色々指定できるらしく、とりあえず天下のGoogle様のを使うことにした、Google様のフォーマッタは行末にカッコを持ってきてくれる。
でもTabは4spaceが良いので別途設定した。

結論

settings.json
{
    "C_Cpp.clang_format_style": "Google",
    "editor.formatOnSave": true,
    "editor.formatOnType": true,
    "[cpp]": {
        "editor.tabSize": 4,
    },
}
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
35
Help us understand the problem. What are the problem?