标签: code-formatting

在一行上获取 clang-format 格式的 require-expression

这是我的代码:

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)

这太疯狂了,我怎样才能确保它保持在一行上而不必注释每一行?

c++ code-formatting clang-format c++20

6
推荐指数
1
解决办法
355
查看次数

在Word 2007中粘贴源代码

如果我尝试在word 2007中粘贴源代码,那么线条之间的间距似乎变得混乱,因为与编程文本编辑器相比,所有新行都是间隔开的.

有人可以告诉我如何在word 2007中粘贴源代码,保留格式和行之间的间距?

code-formatting ms-word word-2007

5
推荐指数
1
解决办法
1万
查看次数

什么R#设置重新格式化这一行?

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

5
推荐指数
1
解决办法
91
查看次数

如何让Emacs正确处理C预处理器条件

我有一个性能敏感的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)

c emacs elisp code-formatting editor

5
推荐指数
1
解决办法
633
查看次数

使用Roslyn生成格式良好的语法

我正在使用Roslyn来修改C#文件的语法.使用CSharpSyntaxRewriter,很容易在语法树中查找和替换节点.但是,生成的代码非常难看,甚至在所有情况下都不会解析,因为我创建的语法节点(使用SyntaxFactory)甚至缺少最少量的空白琐事.Roslyn是否提供了一些基本的格式化功能来避免这种情况,或者我是否必须手动添加琐事到我创建的每个节点?

c# code-formatting roslyn

5
推荐指数
1
解决办法
1172
查看次数

从Visual Studio 2015代码复制行号和突出显示

我正在为用户编写编程指南,因此我需要将一些代码片段从MS Visual Studio 2015复制到MS Office2016。我尝试了不同的方法(甚至使用Notepad ++)。他们没有给我令人满意的结果。我希望粘贴的文本的格式与Visual Studio中包括行号在内的格式相同。例如,我想将VS中的代码导出到rtf,并将其粘贴到Word文件中。对于Visual Studio 2013,我使用复制作为HTML扩展做了同样的事情。您有任何解决方案或想法吗?

UPD:我不想使用屏幕截图。我想过去将.docx文本成功转换为PDF。

c# code-formatting ms-word visual-studio-2015

5
推荐指数
0
解决办法
1191
查看次数

如何在Eclipse中用现有的Java代码用空格替换制表符?

我正在使用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文件来执行此操作,是否有任何简单的方法来执行此操作。

java eclipse code-formatting

5
推荐指数
1
解决办法
1337
查看次数

IntelliJ IDEA - 在方法调用的中间不打破换行

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)

java code-formatting intellij-idea

5
推荐指数
0
解决办法
183
查看次数

Qt Creator中的缩进指南?

是否可以告诉Qt Creator中的编辑器(我正在使用V.4.9.2)显示一些“缩进指南”,例如C ++ Builder(默认),Notepad ++(默认)或Visual Studio(通过插件)?

我的意思是下图中的垂直彩色线条(这是C ++ Builder的屏幕截图)。

C ++ Builder代码片段

  • 我忽略了什么吗?
  • 有没有可用的插件?

请注意:我知道编辑器选项“ Highlight blocks”进入了正确的方向,但在我看来,分散注意力的作用远大于帮助。

qt code-formatting indentation qt-creator qt5

5
推荐指数
2
解决办法
474
查看次数

Clang-format用连续缩进缩进内部初始化器

我有一些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)

c++ code-formatting indentation c++11 clang-format

5
推荐指数
0
解决办法
220
查看次数