这是我的代码:
if constexpr (requires { { N::uuid() } -> std::convertible_to<score::uuid_t>; })
Run Code Online (Sandbox Code Playgroud)
clang-format (14, 15) 坚持将其格式化为 5 行:
if constexpr (requires {
{
N::uuid()
} -> std::convertible_to<score::uuid_t>;
})
Run Code Online (Sandbox Code Playgroud)
这太疯狂了,我怎样才能确保它保持在一行上而不必注释每一行?
如果我尝试在word 2007中粘贴源代码,那么线条之间的间距似乎变得混乱,因为与编程文本编辑器相比,所有新行都是间隔开的.
有人可以告诉我如何在word 2007中粘贴源代码,保留格式和行之间的间距?
VS2010/R#5.1
我有这个代码的"行":
With.Mocks(_mocks).Expecting(() => {
_fooServiceMock.Expect(x => x.FooMethod()).Return(fooMockData);
}).Verify(() => {
});
Run Code Online (Sandbox Code Playgroud)
我执行R#代码清理,它更改代码如下:
With.Mocks(_mocks).Expecting(() => { _fooServiceMock.Expect(x => x.FooMethod()).Return(fooMockData); }).Verify(() => { });
Run Code Online (Sandbox Code Playgroud)
也就是说,它重新格式化语句,使其完全出现在一行上.
IDE/R#设置对此负责是什么?当我执行R#代码清理时,我可以更改什么来保留我的换行符?
我会想到'R#/选项/语言/ C#/格式化样式/换行和换行/保留现有格式/保留现有换行符',但这似乎没有任何区别.
c# code-formatting code-cleanup visual-studio-2010 resharper-5.x
我有一个性能敏感的CUDA代码,我正在使用它
#ifdef DEBUG_<NAME_OF_SECTION>
...
#else
...
#endif
Run Code Online (Sandbox Code Playgroud)
...封装速度瘫痪的调试代码的条件,它从GPU中获取额外的信息.
在emacs(Centos 6.0)中一切顺利,直到#else.
这个deceldents(由1个选项卡)预处理器的else子句中的文本是有条件的,并且继续在之后删除所有内容.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
注意:
)预处理器条件中的复制似乎是由C模式正确处理的.但);重复打破了事情,迫使你把);条件移到外面......哦,亲爱的,多么不一致.在我们获得正确的elisp代码来修复这种不一致之前,我一直保持这个问题.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
关于当前答案的注释:
Jens提供了不准确的信息,声称嵌套的)内部条件是"不可能的".这不仅是可能的,而是Emacs的C-Mode积极做到这一点.请注意本问题末尾的示例c程序的正确缩进,以证明这一点.因此,理所当然的);是,缩进也是可行的,尽管由于Jens概述的原因应该谨慎行事.
无论如何,我想确保人们看到该陈述是不正确的,所以他们不认为这个问题是无法回答的.当他修改他的不准确的陈述以反映它是可能的时,我将删除这个评论和我对Jens的帖子的下注,以C模式实现)他的大纲,但不推荐.
目前我正在手动向前移动一个选项卡,但它浪费了很多时间(代码很长).
知道我可以添加到我的〜/ .emacs文件来修复这个???
提前致谢!
编辑1 我应该提到它似乎窒息的条款是一个函数结束,例如
MyFunc<<<Blk,Thr>>>(Stuff1,
#ifdef DEBUG_FUNC1
Stuff2,
dev_Debug);
#else
Stuff2); //Deindents here.
#endif
//Everything here on out is deindented.
Run Code Online (Sandbox Code Playgroud)
这种代码结构可能是特定的失败......
编辑2
这是一个简单的C代码版本...代码按预期工作,但不是最后一个#else条款的deindent ...
#include <stdio.h>
//#define DEBUG
void printer
(int A,
#ifdef DEBUG
int B,
int C)
#else
int B) …Run Code Online (Sandbox Code Playgroud) 我正在使用Roslyn来修改C#文件的语法.使用CSharpSyntaxRewriter,很容易在语法树中查找和替换节点.但是,生成的代码非常难看,甚至在所有情况下都不会解析,因为我创建的语法节点(使用SyntaxFactory)甚至缺少最少量的空白琐事.Roslyn是否提供了一些基本的格式化功能来避免这种情况,或者我是否必须手动添加琐事到我创建的每个节点?
我正在为用户编写编程指南,因此我需要将一些代码片段从MS Visual Studio 2015复制到MS Office2016。我尝试了不同的方法(甚至使用Notepad ++)。他们没有给我令人满意的结果。我希望粘贴的文本的格式与Visual Studio中包括行号在内的格式相同。例如,我想将VS中的代码导出到rtf,并将其粘贴到Word文件中。对于Visual Studio 2013,我使用复制作为HTML扩展做了同样的事情。您有任何解决方案或想法吗?
UPD:我不想使用屏幕截图。我想过去将.docx文本成功转换为PDF。
我正在使用Eclipse-火星。我需要在现有代码中用空格替换制表符。我这样做:
Open Window->Preferences from menu bar.
Select Text Editors from tree menu.
Uncheck Insert spaces for tabs.
Run Code Online (Sandbox Code Playgroud)
但这不能替代现有代码。考虑到我有大约25个Java文件来执行此操作,是否有任何简单的方法来执行此操作。
IDEA中是否有一个选项可以阻止代码格式化程序(用于Java代码)在不适当的地方打破长行,特别是我发现它会在方法调用和它的左括号之间放置换行符,例如
Collection<Thing> things = Arrays.asList(Something.getThings("Foo", foo.bar()), x, y, z);
Run Code Online (Sandbox Code Playgroud)
变为:
Collection<Thing> things = Arrays.asList(Something.getThings("Foo", foo.bar
()), x, y, z);
Run Code Online (Sandbox Code Playgroud)
如果碰巧穿过线长边界.
我知道我可以重构这个特定的代码示例,没有内联方法调用,但是作为一个更普遍的问题,IDEA可以配置为更聪明地放置换行符吗?理想情况下,我宁愿将其拆分为:
Collection<Thing> things = Arrays.asList(Something.getThings("Foo",
foo.bar()), x, y, z);
Run Code Online (Sandbox Code Playgroud) 是否可以告诉Qt Creator中的编辑器(我正在使用V.4.9.2)显示一些“缩进指南”,例如C ++ Builder(默认),Notepad ++(默认)或Visual Studio(通过插件)?
我的意思是下图中的垂直彩色线条(这是C ++ Builder的屏幕截图)。
请注意:我知道编辑器选项“ Highlight blocks”进入了正确的方向,但在我看来,分散注意力的作用远大于帮助。
我有一些C++ 11代码与clang格式规则使用正常的indent(IndentWidth)4和continuation indent(ContinuationIndentWidth)为8.所以一个长函数看起来像这样:
// All indented "correctly"
void this_function_has_a_very_long_name_and_lots_of_parameters(
int parameter_a, int parameter_b, int parameter_c)
{
this_function_has_a_very_long_name_and_lots_of_parameters(
parameter_a, parameter_b, parameter_c);
}
Run Code Online (Sandbox Code Playgroud)
但是,我也有这样的数据(注意最后的逗号,以防止bin-packing并保持每行一项 - 在现实生活中这些数字不仅仅是1,2,3):
static std::vector<std::vector<int>> data{
{
1, // Comment
2,
3, // Comment
},
};
Run Code Online (Sandbox Code Playgroud)
考虑到Cpp11BracedListStyle设置为false,上面是我期望它的外观,所以它应该使用块缩进(4),而不是连续缩进(8).从clang格式的文档中,如果是这样的话true:
"重要区别: - 支撑列表中没有空格. - 在右括号之前没有换行符. - 使用延续缩进缩进,而不是使用块缩进."
所以,我希望看到使用"块缩进"(4).但是,我实际得到的是:
static std::vector<std::vector<int>> data{
{
1, // Comment - indented by 4 + 8!
2,
3, // Comment
}, …Run Code Online (Sandbox Code Playgroud) code-formatting ×10
c# ×3
c++ ×2
clang-format ×2
indentation ×2
java ×2
ms-word ×2
c ×1
c++11 ×1
c++20 ×1
code-cleanup ×1
eclipse ×1
editor ×1
elisp ×1
emacs ×1
qt ×1
qt-creator ×1
qt5 ×1
roslyn ×1
word-2007 ×1