私はいくつかの異なることに取り組んでおり、タブを使用するもの、インデントに2つのスペースを使用するもの、インデントに4つのスペースを使用するユーザーなどがあります。
Visual Studioでこれを設定するオプションは、[ツール]-> [オプション]-> [テキストエディター]-> [<言語>]-> [タブ]にあります。
ソリューションベースでこれらの設定を上書きする方法はありますか?
ここにあなたが探しているものを達成する(確かにハッキーな)方法があります:
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
を選択し、2番目のドロップダウンでOpened
を選択します。これで、ソリューションを開くたびにトリガーされるマクロができました。ソリューションを必要なインデントにマッピングするだけです。
更新: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の拡張 もあります。
「Rebracer」と呼ばれる別のアドインもあります...リンクはこちら: http://visualstudiogallery.msdn.Microsoft.com/410e9b9f-65f3-4495-b68e-15567e543c58
VS拡張EditorConfig( http://visualstudiogallery.msdn.Microsoft.com/c8bccfe2-650c-4b42-bc5c-845e21f96328 )Webサイトから:
EditorConfigプロジェクトは、一般的なテキストエディターオプションインデントサイズなどを構成するための単純なファイル形式を定義します。これらの構成ファイルは、プロジェクトのソースコードと一緒に配置できるように設計されているため、テキストエディターはファイルごとに適切なオプションを使用できます。 EditorConfigプロジェクトは、多くの一般的なテキストエディター用のプラグインを提供し、フォーマットを完全にクロスプラットフォームにします。
(強調鉱山)
完全な開示:(ReSharperが引き継ぐため)私は個人的にテストすることができませんでした。
VS2017 RCは.editorconfig形式のサポートを追加しました。
props.Item("InsertTabs") = bool
でタブ/スペースの挿入設定を設定できます
これをチェックしてください: https://github.com/jamesfoster/VS-Whitespace-Macros
それで、受け入れられた解決策は「あなたがあなたの解決策を必要なインデントにマッピングする必要があるだけです」と言います、それはあなたがそれをどのように行うかを除いて素晴らしいです?それを理解しようと多くの時間を費やした後、私は私が好む方法を見つけました here 。このメソッドは、ソリューションごとに異なる可能性があるエクスポートされた設定をいくつでもロードします。設定には、インデントから色、ウィンドウレイアウトなど、何でも含めることができます(私はそう思います)。
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
マクロを保存します。
マクロが実行されない場合は、MSセキュリティパッチが原因である可能性があります。 this に基づいて、次の文字列を追加します。
<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"
これらのファイルの編集に使用するエディタを管理者権限で起動してください(メモ帳を右クリックして[管理者として実行]を選択)。
上記のマクロと同じことを行うはずの プラグイン も見つかりましたが、インストーラを実行した後、何らかの理由で何も実行されませんでした。
UPDATE:インデントはResharperによって管理されていないようなので、この回答は実際には特定の質問に対応していません。ただし、それは一般的な条件で適用されます。つまり、 "Visual Studio、per solution settings"誰かがここでつまずいてそれを探している場合に備えます。
Resharper を使用している場合は、ソリューションのみの書式設定(実際にはすべての設定)を保存できます。さらに、自分専用(つまり、ソース管理にコミットしない)か、共有ソリューション固有の設定(つまり、ソース管理にコミットする)かを指定できます。
Resharper > Options > Code Editing > C# (or whatever language) > Formatting Style > Braces Layout
次に、ウィンドウの下のSave To
「ソリューションXYZパーソナル」(または目的に応じて共有)を選択します。
これによりxmlファイルが作成されますYOURSOLUTION.sln.DotSettings.user
は次のような値です。
<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>
clang-formatは、ソースコードをフォーマットするための非常に洗練されたオプションを提供します。
Visual Studioプラグインは非常に初歩的なものです。つまり、自動的には実行されませんが、(手動で呼び出すと)うまく機能します。