我在Windows 7 Build 7100 32bit上运行Visual Studio 2008 sp1.
我以前从未遇到过这个问题,即使在Windows 7 RC的不同安装上也是如此.
当我用";"结束陈述时 或'}'或其他东西,通常VS会自动格式化该行或代码块.它不适合我.
我检查了工具 - >选项 - >文本编辑器 - > C# - >格式化 - >常规,并且已经选中3"自动格式化"复选框.当我按热键进行自动格式化时,它会按预期格式化源.
任何人都知道它为什么这样做?
我安装的可能与此有关:VS2008 SP1 SQL Server 2008 sp1 Office 2007
谢谢您的帮助
如果可以在源代码控制提交,checkout,diff等之前和之后自动格式化代码,公司真的需要标准代码样式吗?
感觉就像标准编码风格的争论一直激烈,因为编程开始就像"把括号放在下一行"或"正确缩进你的"(不再是必不可少的).
我意识到在白色空间很重要的语言中,差异必须考虑它,但对于那种风格是个人偏好的语言,真的需要再担心吗?
VSCode 的格式化程序默认不缩进<head>和<body>标记。在默认设置中,存在以下几行:
// Indent <head> and <body> sections.
"html.format.indentInnerHtml": false,
Run Code Online (Sandbox Code Playgroud)
我尝试html.format.indentInnerHtml在用户设置中设置为,true但它没有改变任何东西。
这就是我得到的:
<html>
<head></head>
<body></body>
</html>
Run Code Online (Sandbox Code Playgroud)
这就是我要的:
<html>
<head></head>
<body></body>
</html>
Run Code Online (Sandbox Code Playgroud) 默认情况下,VSCode的格式化程序会自动在结束标记之前<head>和之前插入换行符.在默认设置中,存在以下行:<body></html>
// List of tags, comma separated, that should have an extra newline before them. 'null' defaults to "head, body, /html".
"html.format.extraLiners": null,
Run Code Online (Sandbox Code Playgroud)
我尝试html.format.extraLiners在用户设置中设置"","none"但也没有更改任何内容.
这就是我得到的:
<html>
<head></head>
<body></body>
</html>
Run Code Online (Sandbox Code Playgroud)
这就是我要的:
<html>
<head></head>
<body></body>
</html>
Run Code Online (Sandbox Code Playgroud) 我没有找到一种方法使用.NET的XmlWriter和相关的XmlWriterSettings以缩进的形式格式化XML字符串,就像Visual Studio使用自动格式命令(Ctrl-E Ctrl-D,或者,取决于键盘映射)一样,Ctrl-K Ctrl-D).
我想这样做是因为我习惯性地自动格式化VS中的所有文件,包括代码和.config文件.我有一个更新.config文件的安装程序应用程序,我希望看到实际的差异而不是整个文档的更改.
我还没有探索自动格式的所有不同格式化选项,但我喜欢每个XML属性都在一个单独的行上,第一行与开始标记在同一行,后续的那些与第一行排成一行,就像这样:
<asset assetId="12345"
bucket="default"
owner="nobody">
<file path="\\localhost\share\assetA.mov"/>
<metadata metadataId="23456"
key="asset_type"
value="video"/>
</asset>
Run Code Online (Sandbox Code Playgroud)
我尝试使用XmlWriterSettings属性"NewLineHandling = NewLineHandling.None"和"NewLineOnAttributes = true"进行格式化,但是将第一个属性放在开始标记下面,并且所有属性都具有相同的缩进,而不管元素名称中的字符数是多少,像这样:
<asset
assetId="12345"
bucket="default"
owner="nobody">
<file
path="\\localhost\share\assetA.mov" />
<metadata metadataId="23456"
key="asset_type"
value="video" />
</asset>
Run Code Online (Sandbox Code Playgroud)
请注意,标准的XmlWriter也使用"/>"(斜杠之前的额外空格)结束仅属性元素,我不喜欢但不确定这是否是XML标准.我认为Visual Studio使用开发人员可以使用的相同API选项,但我还没有找到那些神奇的设置.无论如何,这是我的格式方法:
public static string FormatXml( string xmlString, bool indented )
{
using ( TextReader textReader = new StringReader( xmlString ) )
using ( XmlReader xmlReader = new XmlTextReader( textReader ) )
{
using ( TextWriter textWriter = new StringWriter() )
{
var settings = …Run Code Online (Sandbox Code Playgroud) 我使用Netbeans自动格式(ctrl + alt + f)很多.这是一个非常好的功能!
但我使用StringBuffer.append()来生成一些xml.我缩进.append参数来表示我的xml的节点结构.
msg.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
msg.append( "<root>");
msg.append( "<subNode/>");
Run Code Online (Sandbox Code Playgroud)
我的问题:autoformat将我的所有参数移动到同一列.
msg.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
msg.append("<root>");
msg.append("<subNode/>");
Run Code Online (Sandbox Code Playgroud)
我的问题:如何阻止自动格式修改我文件的某个部分的代码.我希望找到类似"编辑器折叠"的东西.
//<editor-noAutoFormatting>"
msg.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
msg.append( "<root>");
msg.append( "<subNode/>");
Run Code Online (Sandbox Code Playgroud) 所有Visual Studios(2012年)也不格式化以下内容:
_messageProcessor = new Dictionary<ServerDataTypes, MessageProcessor>()
{
{ServerDataTypes.FrameData, ProcessFrameData } ,
{ ServerDataTypes.ServerStatusResult,ProcessServerStatusResult },
{ ServerDataTypes.PlayerMessage, ProcessPlayerMessage},
....
};
Run Code Online (Sandbox Code Playgroud)
如何使我的Visual Studio 2010(或2012)自动格式化?我需要以下结果:
_messageProcessor = new Dictionary<ServerDataTypes, MessageProcessor>()
{
{ ServerDataTypes.FrameData, ProcessFrameData },
{ ServerDataTypes.ServerStatusResult, ProcessServerStatusResult },
{ ServerDataTypes.PlayerMessage, ProcessPlayerMessage },
...
};
Run Code Online (Sandbox Code Playgroud)
就像在新创建的对象的自动属性中一样.格式正在为此工作.但不是为了这个.那么,如何解决呢?
我有一个问题,如果我使用键CTRL+ SHIFT+ 在Eclipse中自动格式化XHTML文件(JSF 1.2)f,输出看起来非常糟糕,并且不再可读.
我的格式化代码:
<span class="label viertel alignright">
<h:outputLabel for="itLine5" value="E-Mail:" />
</span>
Run Code Online (Sandbox Code Playgroud)
变成这样:
<span class="label viertel alignright"> <h:outputLabel
for="itLine5" value="E-Mail:" /> </span>
Run Code Online (Sandbox Code Playgroud)
在这个小例子中,它仍然可读 - 但在较长的代码中它只是混乱!
如何确保我的XHTML代码以可读的方式格式化?
我使用这个版本的Eclipse Helios:
我使用这些JBoss工具:
是否有一个注释标签,我可以在其中包含一个(PHP代码)部分,自动格式化程序将忽略它?
有时候我会使用一种独特的indention样式来处理一些棘手的PHP代码.例如,如果我传递几个数组,我会在线初始化.它有时是保持可读性的唯一方法.不幸的是,在应用代码格式化程序后,这会丢失.
我已在 Visual Studio 2015 中为旧版 C++ 项目激活自动代码格式化。
问题在于,特定宏调用之后的代码行(由于位于宏内部而不以分号结束)始终是缩进的。我正在 Visual Studio 2015 中寻找一个设置来防止这种情况,而无需安装另一个扩展,无需更改宏定义本身或要求每个人在调用中添加一个额外的分号(这将修复它)。
以下是代码和产生的问题的最小示例:
#include <iostream>
#ifdef _DEBUG
# define MY_TRACE(X) do { std::cout << X << std::endl; } while (0);
#else
# define MY_TRACE(X) {}
#endif
int main()
{
MY_TRACE( "Hello World!" )
return 0;
}
Run Code Online (Sandbox Code Playgroud)
所以我有以下设置,它会自动缩进,例如 on<Enter>或 with }:
以及以下缩进设置:
我已经尝试了那里和其他地方的所有可能和不可能的设置组合(包括例如“制表符/缩进/智能”的转动)。每次 Visual Studio C++ 编辑器都会继续缩进宏后面的行。
我在 SO 或互联网上也找不到任何东西。我得到的最接近的,但没有答案或不同编辑器/语言的位置: