none
閉じかっこの位置をデフオルトの状態に戻したい。 RRS feed

  • 質問

  • Microsoft Visual Studio Community 2022のversion 17.1.0.0を使用しています。
    次のようにブロックの閉じかっこが妙な位置に出るようになってしまいました。

    ↓この状態のブロックの中にカーソルを移動させ、エンターを押すと

    if (true) {}

    ↓上のifの開始位置に閉じかっこが来るのが望んだ動作であり、元の動作でもあるのですが、現在は下のように閉じかっこが移動します。

    if (true) {
    }
    if (true) {
        }
    

    関係ありそうな項目として「コードスタイル」の「書式設定」の「インデント」の「初めと終わりのかっこをインデントする」があったので、
    これをオフの状態からオンの状態にすると次のように悪化したので、オフに戻しました。

    if (true) {
              }
    何か妙な設定を変えてしまった可能性が高いのですが、どうしても原因となる個所が見つからず、
    細かい質問で申し訳ないのですが、これを直すにはどこの設定を変えればいいのか教えてもらえないでしょうか。


    プログラム自体は実行可能(エラーが出ていない)なため、ソースコード全体の{}の数が合っていない、ということはありません。

    2022年2月24日 16:47

すべての返信

  • 顔面発射のド迫力さん、こんにちは。フォーラムオペレーターのKumoです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    Visual Studioに何かの拡張機能を有効にしましたか。
    そうであれば、「拡張機能」>「拡張機能の管理」>「インストール済み」に行って、無効にしてからもう一度ご確認ください。

    また、「ツール」>「設定のインポートとエクスポート」>「すべての設定をリセット」を選択し、リセット設定を試してみてください。


    どうぞよろしくお願いします。

    MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2022年2月28日 8:17
    モデレータ
  • ありがとうございます。

    まず、拡張機能については触ったことがなく、念のため拡張機能画面を確認しましたが、見覚えのないものばかりだったのでやはり今回は関係なさそうです。
    そして、設定をリセットについてはこれで解決しても問題が特定できないため、また設定して直しになってしまうなと思いつつ、現在の設定をエクスポートしてからリセットしてみたのですが、設定をリセットした後でも問題が解決しませんでした。
    ですので、ツールから変更するような設定ではなく、それ以外の何かが変わっている、あるいは何らかのバグが発生しているのかもしれません。
    2022年2月28日 14:57
  • 顔面発射のド迫力さん、こんにちは。フォーラムオペレーターのKumoです。
    ご返信いただきありがとうございます。

    さらに調査するため、プロジェクトのタイプをご共有いただければ幸いです。

    どうぞよろしくお願いします。

    MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2022年3月1日 9:13
    モデレータ
  • 申し訳ありませんが、プロジェクトのタイプの確認方法を教えていただけますでしょうか。

    以下のサイトを参考に確認しようとしましたが、この内容はいずれも正しくなく、確認することができませんでした。
    https://docs.microsoft.com/ja-jp/nuget/resources/check-project-format

    こちらのサイトでは、例えば「[<プロジェクト名>.csproj の編集] 」を選択しろとありますが、
    具体的にどこにそれがあるのか、説明がなく見つけることができないため、プロジェクトのタイプを確認できません。

    また、[プロジェクトのアンロード] を選択しろという指示がありますが、
    アンロードした後に何をすればよいのか記載されていないため、プロジェクトのタイプを確認できません。
    2022年3月1日 10:29
  • 顔面発射のド迫力さん、こんにちは。フォーラムオペレーターのKumoです。
    ご返信いただきありがとうございます。

    プロジェクトをアンロードした後、.csprojファイルに<ProjectTypeGuids>タグがあるかどうかご確認ください。
    下記のリストが参考になるかもしれません:
    List of Visual Studio Project Type GUIDs

    また、プロジェクトの言語を覚えていますでしょうか。
    新しいコンソールアプリ(C# or C++)を作成し、この問題がまだ存在しているか検証してみてください。


    どうぞよろしくお願いします。

    MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2022年3月2日 8:58
    モデレータ
  • アンロード後の.csprojファイルとは何処にあるものを指していますか。

    C#で新しいコンソールアプリを作っても同様の問題が発生しました。

    2022年3月2日 11:26
  • 顔面発射のド迫力さん、こんにちは。フォーラムオペレーターのKumoです。
    ご返信いただきありがとうございます。

    再度確認したうえで、この問題を再現できました。
    「ツール」>「オプション」>「テキスト エディター」>「C#」>「タブ」>「ブロック」インデント選択して、この問題が消えるかどうかご確認ください。


    どうぞよろしくお願いします。

    MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2022年3月4日 9:02
    モデレータ
  • 試しましたが、改善されませんでした。

    確かに、以下のようなコードで{}の中にカーソルを併せ、

    if (true) { }

    エンター(改行すると)以下のように意図した表示になります。

    if(true) { 
    }
    しかし、以下のようなコードをペーストすると
    if (true) {
    }

    このように表示されます。

    if (true) {
       }



    2022年3月5日 14:34
  • 顔面発射のド迫力さん、こんにちは。フォーラムオペレーターのKumoです。
    ご返信いただきありがとうございます。

    お待たせいたしました。

    下記の手順に従って、「貼り付け時にオートフォーマットする」を有効にしているかどうか確認してください。
    「ツール」>「オプション」>「テキスト エディター」>「C#」>「コードスタイル」>「書式設定」>「全般」>「貼り付け時にオートフォーマットする」。


    どうぞよろしくお願いします。

    MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2022年3月15日 6:26
    モデレータ
  • 「貼り付け時にオートフォーマットする」をオフにすれば確かに張り付け時に問題が起きませんが、
    根本的に解決したわけではありませんので、例えば以下の①でエンターを押すと

            if (true) {
                ①if(true) {
                }    
            }
    以下のようになります。
            if (true) {
                
            if(true) { 
                }    
            }
    



    2022年3月15日 11:38
  • 顔面発射のド迫力さん、こんにちは。フォーラムオペレーターのKumoです。
    ご返信いただきありがとうございます。

    「caseの内容をインデントする(ブロックする場合)」を無効にしてみて、このセットの問題なのか確認してみてください。
    「ツール」>「オプション」>「テキスト エディター」>「C#」>「コードスタイル」>「書式設定」>「インデント」>「caseの内容をインデントする(ブロックする場合)」。

    どうぞよろしくお願いします。

    MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2022年3月17日 2:21
    モデレータ
  • 該当する箇所を無効にしましたが、動作は変わりませんでした。
    2022年3月17日 12:39
  • 顔面発射のド迫力さん、こんにちは。フォーラムオペレーターのKumoです。
    ご返信いただきありがとうございます。

    さらに調査のため、「ツール」>「設定のインポートとエクスポート」に行って、設定ファイルをhttps://onedrive.live.com/にアップロードして、ご共有いただければ幸いです。

    どうぞよろしくお願いします。

    MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2022年3月23日 7:55
    モデレータ
  • 設定ファイルをonedriveにアップロードしました。
    2022年3月28日 16:50
  • 顔面発射のド迫力さん、こんにちは。フォーラムオペレーターのKumoです。
    ご返信いただきありがとうございます。

    リンクアドレスをご共有いただければ幸いです。

    どうぞよろしくお願いします。

    MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2022年3月29日 8:15
    モデレータ
  • https://1drv.ms/u/s!AojNnb-ZQPwCghHbrNtBkAkDqv8P?e=6yTdmv
    2022年4月1日 15:13
  • まだ回答を待っています。
    2022年6月3日 13:13
  • まだ回答を待っています。
    2022年7月6日 14:21
  • 顔面発射のド迫力さん、こんにちは。フォーラムオペレーターのKumoです。
    お返信遅くなり申し訳ありません。

    アップロードされたファイルを確認して再テストしました。
    以下のコードをタイプする場合:
    if (true) {
    if(true) {
    }
    }
    そして、「if」の前に「Enter」をクリックすると、下記のようになります:
    if (true) {
    
    if(true) {
    }
    }
    そのほか、顔面発射のド迫力さんと同じようなコードをタイプする場合:
    if (true) {
            if(true){
            }
    }
    そして、「if」の前に「Enter」をクリックすると、結果は同じになります。
    if (true) {
            
    if(true){
            }
    }
    

    その違いは「if」前のインデントかと思っています。

    したがって、「if」前のインデントがスペースを手動でタイプされるのか、それとも自動的にインデントされるのか、確認していただけませんか。


    どうぞよろしくお願いします。

    MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2022年7月8日 10:04
    モデレータ
  • 申し訳ありませんが、提示していただいた4つのコードが何を意図したものなのかわからず、
    「「if」前のインデント」というのも何を指しているのか理解できないため、回答できません。
    2022年7月13日 14:05
  • 顔面発射のド迫力さん、こんにちは。フォーラムオペレーターのKumoです。
    ご返信ありがとうございます。

    「if」前のインデントというものは下記の①の箇所です。

    通常には下記のようなのですが、それは自動的に生成されたのか、手動で入力したのか確認したいのです。

    if (true) {
    if(true) {
    }
    }

    どうぞよろしくお願いします。


    MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~


    2022年7月14日 8:44
    モデレータ
  • 自動的に生成されたものです。
    2022年7月17日 14:36
  • 顔面発射のド迫力さん、こんにちは。フォーラムオペレーターのKumoです。
    ご返信ありがとうございます。

    「ツール」>「オプション」>「テキストエディター」>C#>「コードスタイル」>「書式設定」>「全般」下の設定を無効してみてください。


    どうぞよろしくお願いします。

    MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2022年7月20日 10:24
    モデレータ
  • ご回答ありがとうございます。

    しかし、「全般」の項目にはいくつもの項目がありました。「下の設定」とはどれのことを指してますでしょうか。

    2022年7月26日 16:18
  • 顔面発射のド迫力さん、こんにちは。フォーラムオペレーターのKumoです。
    お返信遅くなり申し訳ございません。

    「全般」下のすべての項目を無効にしてみてください。

    どうぞよろしくお願いします。

    MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2022年8月1日 6:23
    モデレータ
  • 該当箇所については、無効にするようなものではないようです。

    例えば、「フィールドアクセスを'this'で就職してください」という項目については、優先順位と重要度の項目が存在し、「チェックボックス」や「ラジオボックス」によって、有効、無効と切り替えるものではありません。
    2022年8月6日 16:33
  • まだ回答を待っています。
    2022年9月7日 14:29
  • まだ回答を待っています。
    2022年10月4日 16:19
  • オプション関連は指摘され尽くしているので、コードスニペットが影響しているかもしれません。
    メニューの「ツール」の「コードスニペットマネージャー(T)...」DLGで
    「言語(L)」で希望の言語(C#等)を選択し、「VisualC#」直下のスニペットの全て又はカッコ関連を削除します。

    【参考】手前味噌ですが以下のスレッドは主にタブ入力時の問題についてのものですが大かっこについての問題も指摘しています。
      「コードスニペットを無効、またはキーアサインを変える方法を探しています。」

    なお、これでもダメな場合にはオプション関連の項目で見落としがあると思われます。
    また、VS2013の環境で確認したのでVS2022では項目名などが異なる可能性があります。
    2022年10月5日 0:55
  • ご回答、ありがとうございます。

    コードスニペットを削除してみましたが改善されませんでした。
    既に、オプションからのテキストエディターのInteliSenceの項目でスニペットの動作が「スニペットを含めない」だったからかもしれません。

    オプションの名称違いについては多少幅広く見ているつもりですが、まだ原因が分からず改善できていません。
    2022年10月8日 14:51
  • まだ回答を待っています。
    2022年11月5日 14:49
  • まだ回答を待っています。

    ここはサポートセンターではないので、誰かが回答する義務を負っているわけではありません。
    Visual Studio のメニューから、「ヘルプ」→「フィードバックの送信」→「問題の報告」
    で、Microsoft のエンジニアに連絡してください。

    ただし、
    「マイクロソフト ソフトウェア ライセンス条項 MICROSOFT VISUAL STUDIO COMMUNITY 2022」
    https://visualstudio.microsoft.com/ja/license-terms/vs2022-ga-community/

    「8.サポート。本ソフトウェアは「現状有姿のまま」で提供されます。そのため、マイクロソフトはサポート サービスを提供しない場合があります。」

    とあるので取り合ってもらえない可能性はあります。

    2022年11月6日 0:50