web-dev-qa-db-ja.com

Visual Studio、ソリューションごとのインデント設定

私はいくつかの異なることに取り組んでおり、タブを使用するもの、インデントに2つのスペースを使用するもの、インデントに4つのスペースを使用するユーザーなどがあります。

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

ソリューションベースでこれらの設定を上書きする方法はありますか?

85
Fire Lancer

ここにあなたが探しているものを達成する(確かにハッキーな)方法があります:

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を選択します。これで、ソリューションを開くたびにトリガーされるマクロができました。ソリューションを必要なインデントにマッピングするだけです。

20
Bahbar

更新: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の拡張 もあります。

88
Tereza Tomcova

「Rebracer」と呼ばれる別のアドインもあります...リンクはこちら: http://visualstudiogallery.msdn.Microsoft.com/410e9b9f-65f3-4495-b68e-15567e543c58

7
Richard B

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

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

(強調鉱山)

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

4
drzaus

VS2017 RCは.editorconfig形式のサポートを追加しました。

2
asm

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

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

0
tgmdbm

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

  • 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セキュリティパッチが原因である可能性があります。 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"

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

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

0
Chris Dragon

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>

Resharper Settings - Save for Solution Only

0
drzaus

clang-formatは、ソースコードをフォーマットするための非常に洗練されたオプションを提供します。

Visual Studioプラグインは非常に初歩的なものです。つまり、自動的には実行されませんが、(手動で呼び出すと)うまく機能します。

http://llvm.org/builds/

0
Rondom