95

私はいくつかの異なることに取り組んでおり、一部はタブを使用し、一部はインデントに2つのスペースを使用し、別のユーザーはインデントに4つのスペースを使用しています.

Visual Studio でこれを設定するオプションは、[ツール] -> [オプション] -> [テキスト エディター] -> [<言語>] -> [タブ] にあります。

ソリューションごとにこれらの設定をオーバーライドする方法はありますか?

4

9 に答える 9

97

更新: VS 2017 は EditorConfig をネイティブにサポートしています: https://blogs.msdn.microsoft.com/dotnet/2016/12/15/code-style-configuration-in-the-vs2017-rc-update/

VS 2010 以降では、ソリューション/プロジェクト ルートの.editorconfigファイルに基づいてインデントを設定する拡張機能があります。

http://visualstudiogallery.msdn.microsoft.com/c8bccfe2-650c-4b42-bc5c-845e21f96328

Visual Studio Code にも同様の拡張機能があります。

于 2012-07-12T15:47:06.347 に答える
20

探しているものを達成するための(確かにハックな)方法の1つを次に示します。

1) インデントを変更するマクロを作成する ( source )

 Sub Set-Indent(indent As integer)
     Dim props As EnvDTE.Properties = DTE.Properties("TextEditor", "C/C++")
     Dim ts As EnvDTE.Property = props.Item("TabSize")
     Dim ins As EnvDTE.Property = props.Item("IndentSize")
     ts.Value = indent 
     ins.Value = indent 
 End Sub

2) ソリューションの読み込みに接続します。マクロ エクスプローラーで を EnvironmentEvents選択SolutionEventsし、最初のドロップダウンで選択しOpened、2 番目のドロップダウンで選択します。これで、ソリューションを開くたびにトリガーされるマクロが作成されました。ソリューションを必要なインデントにマップするだけです。

于 2009-07-31T12:27:12.833 に答える
4

VS 拡張機能 EditorConfig ( http://visualstudiogallery.msdn.microsoft.com/c8bccfe2-650c-4b42-bc5c-845e21f96328 ) Web サイトから:

EditorConfig プロジェクトは、インデント サイズなどの一般的なテキスト エディター オプションを構成するための単純なファイル形式を定義します。これらの構成ファイルは、プロジェクトのソース コードと一緒に配置するように設計されているため、テキスト エディターはファイルごとに適切なオプションを使用できます。EditorConfig プロジェクトは、多くの一般的なテキスト エディター用のプラグインを提供し、フォーマットを完全にクロスプラットフォームにします。

(私のものを強調)

完全な開示: 個人的にテストすることはできませんでした (ReSharper が引き継ぐため)。

于 2013-09-23T14:22:51.090 に答える
2

VS2017 RC では、.editorconfig 形式のサポートが追加されました。

于 2016-11-28T11:32:58.507 に答える
0

更新:インデントは Resharper によって管理されていないように思われるため、この回答は実際には特定の質問に対処していません。ただし、一般的な用語には当てはまります。つまり、誰かがここでそれを探してつまずいた場合に備えて、「ソリューション設定ごとの Visual Studio」です。


Resharperを使用している場合は、ソリューションの書式設定 (実際にはすべての設定) を保存できます。さらに、自分専用 (つまり、ソース管理にコミットしない) か、共有ソリューション固有の設定 (つまり、ソース管理にコミットする) かを指定できます。

Resharper > Options > Code Editing > C# (or whatever language) > Formatting Style > Braces Layout

次に、ウィンドウの下部にある [ Save ToSolution XYZ personal] (または目的に応じて共有) を選択します。

YOURSOLUTION.sln.DotSettings.userこれにより、次のような値を持つ xml ファイルが作成されます。

<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/ANONYMOUS_METHOD_DECLARATION_BRACES/@EntryValue">NEXT_LINE</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/CASE_BLOCK_BRACES/@EntryValue">NEXT_LINE</s:String>

Resharper 設定 - ソリューションのみ保存

于 2013-07-09T14:21:07.977 に答える
0

タブ/スペースの挿入設定を次のように設定できますprops.Item("InsertTabs") = bool

これをチェックしてください:https://github.com/jamesfoster/VS-Whitespace-Macros

于 2012-05-04T10:18:58.220 に答える
0

したがって、受け入れられた解決策には、「解決策を必要なインデントにマップするだけでよい」と書かれていますが、それを行う方法を除いて、これは素晴らしいことです。それを理解しようとして多くの時間を無駄にした後、私はここで私が好む方法を見つけました。このメソッドは、ソリューションごとに異なる可能性がある、エクスポートされた設定をいくつでもロードします。設定には、インデントから色、さらにはウィンドウのレイアウトまで、何でも含めることができます (私はそう思います)。

  • Visual Studio 2008 で、[ツール] > [マクロ] > [マクロ エクスプローラー] を開きます。
  • MyMacros > Module1 をダブルクリックします (Module1 がない場合は、MyMacros を右クリックし、[新しいモジュール...] を選択して作成します)。
  • マクロ エクスプローラー ウィンドウで、左側の [EnvironmentEvents] をダブルクリックします。
  • 左上のドロップダウンで、[SolutionEvents] を選択します。
  • 右上のドロップダウンで、[開封済み] を選択します。
  • SolutionEvents.Opened イベントを処理するコードが自動的に追加されます。そのコードを次のように変更します。

    Private Sub SolutionEvents_Opened() Handles SolutionEvents.Opened
        Dim item As ProjectItem = DTE.Solution.FindProjectItem("solution.vssettings")
        If Not item Is Nothing Then
            'MsgBox("Uncomment this to see a message when settings are loaded")
            Dim name = item.FileNames(1)
            DTE.ExecuteCommand("Tools.ImportandExportSettings", "/import:""" & name & """")
        End If
    End Sub
    
  • マクロを保存します。

  • [ツール] > [オプション] を使用して UI を変更し、タブ設定やその他の設定を行います。
  • ツール > 設定のインポートとエクスポート... > 選択した環境設定のエクスポート > 次へ
  • タブ設定のみをエクスポートするには、[すべての設定] のチェックを外し、[オプション] > [テキスト エディター] > [C/C++] をチェックします。
  • [次へ] をクリックし、「設定ファイルに名前を付けますか?」として「solution.vssettings」と入力します。これらの設定を使用するソリューションがある場所にファイルを保存します。
  • solution.vssettings をソリューション エクスプローラー ウィンドウの任意の場所にドラッグします。
  • Visual Studio を終了し、次に solution.vssettings を含むソリューションを開くと、それらの設定が読み込まれます。

マクロが実行されない場合は、MS セキュリティ パッチが原因である可能性があります。これに基づいて、次の文字列を追加します。

<AllowDComReflection enabled="true"/>

次の 3 つのファイルの <runtime> タグの下:

"C:\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv\vsmsvr.exe.config"
"C:\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv\vsaenv.exe.config"
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe.config"

これらのファイルの編集に使用するエディタを管理者権限で起動してください (つまり、メモ帳を右クリックして [管理者として実行] を選択します)。

上記のマクロと同じことを行うはずのプラグインも見つけましたが、インストーラーを実行した後、何らかの理由で何もしませんでした。

于 2014-05-23T21:02:58.320 に答える