Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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,
    },
}
Hiragi-GKUTH
大阪に住んでる学生エンジニアです。 ゲームとバイクとセキュリティで生きています
https://hiragigkuth.github.io/portfolio
weblio
「Weblio辞書」「Weblio英会話」の運営企業。人々の選択肢を広げる新たなサービスに挑戦中!
https://www.weblio-inc.jp/
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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした