🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

1回答

2066閲覧

複数のファイルに書かれた1行のif文を一括で複数行に整形したい

akki

総合スコア92

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2019/09/27 14:34

GitHub上で公開されているUnityのプロジェクトを自分用に改良しています。
この中で

C#

1if (hoge == 3){ piyo = 2; } 2else if (hoge == 4){ piyo = 3; } 3else { piyo = 4; }

のように無理やり1行に詰め込んで書かれているif文があり、
個人的には大変見づらいため、

C#

1if (hoge == 3) 2{ 3 piyo = 2; 4} 5else if (hoge == 4) 6{ 7 piyo = 3; 8} 9else 10{ 11 piyo = 4; 12}

のような一般的(?)な形にしたいです。
数カ所ぐらいなら手作業でも整形できますが、
至るところでこのように書かれており、またプロジェクト内にはソースファイルが数十個あるため
すべてを見るのは非常に手間で、できればやりたくないです。

また、エディタはVisual Studio2019 Communityを使用していますが、
標準コードフォーマッタでは1行のif文から複数行のif文になってくれないため、
全ファイルを手当り次第にフォーマットしていくという手も使えません。
フォーマット設定も見てみたのですが、希望のようにフォーマットしてくれる設定は見当たりませんでした。

「if文 1行 複数行」とか「if oneline」とかで検索してみたのですが、
中括弧を省略したif文の書き方や三項演算子の書き方ばかりがヒットし、欲しい情報が見つかりませんでした。
このような複数のファイルに書かれた1行のif文を、一括で複数行に整形できるようなツールなどの情報を教えていただけると幸いです。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

まず行末でない { の次に改行を挿入します。
正規表現を使い、\{(?=[^\r\n]){\n に置換してください。
すると次のようになります。

C#

1 if (hoge == 3) { 2 piyo = 2; } 3 else if (hoge == 4) { 4 piyo = 3; } 5 else { 6 piyo = 4; }

次に [編集]→[詳細]→[ドキュメントのオートフォーマット] を行ってください。

C#

1if (hoge == 3) 2{ 3 piyo = 2; 4} 5else if (hoge == 4) 6{ 7 piyo = 3; 8} 9else 10{ 11 piyo = 4; 12}

これできれいになります。ドキュメントのオートフォーマットにはショートカットが割り当てられているので、それを使うとスムーズです。

投稿2019/09/27 15:10

Zuishin

総合スコア28669

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2019/09/27 15:12

拡張機能の Macros for Visual Studio をインストールして以上の操作にショートカットを割り当てれば、ワンアクションで行うこともできます。
akki

2019/09/27 15:17

素早い回答ありがとうございます!試したところキレイに整形できて助かりました、本当にありがとうございます!
Zuishin

2019/09/27 15:21 編集

文字列やコメントの中に { が含まれていると、それも置換してしまうので、その可能性がある場合は置換する前に検索するか、一つずつ確かめながら置換してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問