我正在处理几个不同的事情,一些使用选项卡,一些使用两个空格进行缩进,另一个用户则使用4个空格。
在Visual Studio中设置这个选项的方法是:选择工具->选项->文本编辑器-><语言>->选项卡。
是否有一种方法可以针对每个解决方案覆盖这些设置?
我正在处理几个不同的事情,一些使用选项卡,一些使用两个空格进行缩进,另一个用户则使用4个空格。
在Visual Studio中设置这个选项的方法是:选择工具->选项->文本编辑器-><语言>->选项卡。
是否有一种方法可以针对每个解决方案覆盖这些设置?
更新: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扩展。
[*.js]
indent_style = space
indent_size = 2
有了这三行代码,我就可以遵循项目的jshint严格要求,而不必改变我的工作流程以双空格缩进代替制表符或全局更改我的VS .js文本编辑器缩进设置。 - TaeKwonJoe.editorconfig
覆盖所有文件的首选项,包括每个解决方案的C++。 - AntonK这里有一种(虽然有些欺骗性)实现你所需求的方法:
1)创建一个可以改变缩进的宏(来源)
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
。
现在您有了一个在每次打开解决方案时都会触发的宏。
您只需要将您的解决方案映射到所需的缩进即可。
现在还有另一个名为“Rebracer”的Add-in...链接在这里:http://visualstudiogallery.msdn.microsoft.com/410e9b9f-65f3-4495-b68e-15567e543c58
从Visual Studio扩展程序EditorConfig(http://visualstudiogallery.msdn.microsoft.com/c8bccfe2-650c-4b42-bc5c-845e21f96328)的网站:
EditorConfig项目定义了一个简单的文件格式来配置常见文本编辑器选项,例如缩进大小。这些配置文件旨在与项目的源代码并排存在,允许文本编辑器根据每个文件使用正确的选项。EditorConfig项目提供了许多常见文本编辑器的插件,使该格式完全跨平台。
(强调我的)
完整披露:我无法亲自测试它(因为ReSharper接管了)。
VS2017 RC增加了对.editorconfig格式的支持。
您可以使用props.Item("InsertTabs") = bool
设置插入制表符/空格选项。
clang-format 提供了相当复杂的选项来格式化您的源代码。
Visual Studio 插件相当基本,即它不会自动运行,但它在手动调用时表现良好。
更新:看起来Resharper并不管理缩进,所以这个答案实际上并没有解决具体的问题。然而,它在一般情况下适用;即如果有人在这里寻找“Visual Studio,每个解决方案的设置”。
Resharper > Options > Code Editing > C# (or whatever language) > Formatting Style > Braces Layout
然后在窗口底部,在 保存到
下拉菜单中选择 "Solution XYZ personal"(或 shared,根据您的目的而定)。
这将创建一个名为 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>
CTRL+Q
) 并输入 "Tabs" 来直接跳转到所有可用的语言设置。 - drzaus所以,接受的解决方案说“您只需要将解决方案映射到所需的缩进”,这很好,但是如何做到呢?在浪费了很多时间试图弄清楚这一点之后,我找到了一种我更喜欢的方法here。该方法加载任意数量的导出设置,可以针对每个解决方案进行不同的设置。设置可以包括任何内容,从缩进到颜色甚至窗口布局(我想)。
在Visual Studio 2008中,打开“工具”>“宏”>“宏资源管理器”。如果宏无法运行,可能是由于 MS 安全补丁的原因。根据 this,添加以下字符串:
<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"
请确保以管理员权限启动用于编辑这些文件的编辑器(例如右键单击记事本并选择“以管理员身份运行”)。
我还发现了一个插件,据说可以执行上述建议的宏所做的相同操作,但出于某种原因,在我运行其安装程序后它没有起作用。