Visual Studio,每个解决scheme缩进设置

我正在做几件不同的事情,有些使用标签,有些使用2个空格作为缩进,另外一个用户使用4个缩进等。

在Visual Studio中设置此选项是在工具 – >选项 – >文本编辑器 – > <语言> – >选项卡

有什么方法可以覆盖每个解决scheme基地的这些设置?

这是一个(无可厚非)的方式来实现你正在寻找的东西:

1)创build一个macros来改变缩进( 源 )

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)钩住你的解决scheme加载:在macros浏览器中,selectEnvironmentEvents ,在第一个下拉列表中selectSolutionEvents ,在第二个下拉列表中select。 您现在有一个macros,每次打开解决scheme时都会触发。 您只需将您的解决scheme映射到所需的缩进。

更新:VS 2017本身支持EditorConfig: https ://blogs.msdn.microsoft.com/dotnet/2016/12/15/code-style-configuration-in-the-vs2017-rc-update/

在VS 2010及更高版本中,有一个扩展可以根据解决scheme/项目根目录中的.editorconfig文件设置缩进:

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

Visual Studio Code也有类似的扩展 。

还有另外一个名为“Rebracer”的加载项现在… link is here: http ://visualstudiogallery.msdn.microsoft.com/410e9b9f-65f3-4495-b68e-15567e543c58

从VS扩展EditorConfig( http://visualstudiogallery.msdn.microsoft.com/c8bccfe2-650c-4b42-bc5c-845e21f96328 )网站:

EditorConfig项目定义了一个简单的文件格式,用于configuration常用文本编辑器选项, 例如缩进大小 。 这些configuration文件被devise为与一个项目的源代码并排在一起,允许文本编辑器逐个文件地使用正确的选项。 EditorConfig项目为许多常见的文本编辑器提供插件,使得这种格式完全跨平台。

(重点是我的)

完全披露:我无法亲自testing它(因为ReSharper接pipe)。

VS2017 RC增加了对.editorconfig格式的支持。

您可以使用props.Item("InsertTabs") = bool设置Insert Tabs / Spaces设置

看看这个: https : //github.com/jamesfoster/VS-Whitespace-Macros

更新:似乎缩进不是由Resharperpipe理的,所以这个答案实际上并没有解决具体的问题。 但是,它确实适用于一般条件; 即“Visual Studio,每个解决scheme的设置”,以防止任何人在这里寻找的绊脚石。


如果您使用的是Resharper ,则可以保存格式设置(实际上是任何设置),仅用于解决scheme。 你可以进一步指定是否只为你(即没有提交源代码pipe理)或共享解决scheme特定的设置(即提交源代码pipe理)。

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

然后在窗口的底部,在Save To下select“解决schemeXYZ个人”(或共享,根据您的目的)。

这将创build一个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设置 - 保存为仅解决方案

所以,接受的解决scheme是“你只需要将你的解决scheme映射到所需的缩进”,这很好,除了你怎么做呢? 浪费了大量的时间来弄清楚,我发现了一个我喜欢的方法。 此方法加载任意数量的导出设置,对于每个解决scheme都可能不同。 设置可以包括任何东西,从缩进到颜色甚至窗口布局(我认为)。

  • 在Visual Studio 2008中,打开“工具”>“macros”>“macros浏览器”
  • 双击MyMacros> Module1(如果您没有Module1,请右键单击MyMacros并select“New module …”来创build它)。
  • 在macros浏览器窗口中,双击左侧的“EnvironmentEvents”。
  • 在左上angular的下拉列表中,select“SolutionEvents”。
  • 在右上angular的下拉列表中select“已打开”。
  • 处理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 
  • 保存macros。

  • 使用工具>选项来更改您的用户界面,使其具有选项卡设置以及任何您想要设置的内容。
  • 工具>导入和导出设置…>导出选定的环境设置>下一步
  • 要导出标签设置,请取消选中“所有设置”,然后select选项>文本编辑器> C / C ++
  • 点击下一步,然后input'solution.vssettings'作为'你想给你的设置文件命名? 并将文件保存到任何你想要使用这些设置的解决scheme。
  • 将solution.vssettings拖放到“解决scheme资源pipe理器”窗口中的任何位置。
  • 退出Visual Studio,下次打开包含solution.vssettings的解决scheme时,应该加载这些设置。

如果macros不运行,可能是因为MS安全补丁。 基于此 ,添加以下string:

 <AllowDComReflection enabled="true"/> 

在以下三个文件中的<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" 

一定要启动编辑器来使用pipe理员权限编辑这些文件(即右键单击记事本,然后select“以pipe理员身份运行”)。

我还发现了一个插件,它应该和上面提到的macros一样,但是由于某种原因,我在运行安装程序后没有做任何事情。

铛格式提供格式化您的源代码相当复杂的选项。

Visual Studio插件是非常基本的,即它不会自动运行,但它的工作(当手动调用,这是)。

http://llvm.org/builds/