用于CUDA内核的Uncrustify命令

k1n*_*ext 8 cuda code-formatting uncrustify

我想将uncrustify(通过美化Atom编辑器和配置文件)应用于CUDA代码.但是,我不知道如何告诉uncrustify识别具有以下结构的CUDA内核调用:

kernelName <<<N,M>>> (arg0,arg1,...);
Run Code Online (Sandbox Code Playgroud)

然而,解决问题<<< >>>并且应用它会产生以下不愉快的结果

kernelName << < N, M >> >
    (arg0,arg1,...);
Run Code Online (Sandbox Code Playgroud)

我想让它看起来更像一个函数调用,也避免格式化<<<<< <.理想情况下,结果看起来像

kernelName <<< N, M >>> (arg0,arg1,
      ...); // line break if argument list is too long
Run Code Online (Sandbox Code Playgroud)

我可以添加哪些参数config.cfg来实现上述结果?

非常感谢你.

jua*_*mjr 5

浏览一下uncrustify的整个文档,我发现了两个可能影响你的CUDA内核风格的参数:

sp_compare                                { Ignore, Add, Remove, Force     }
 Add or remove space around compare operator '<', '>', '==', etc
Run Code Online (Sandbox Code Playgroud)

和:

align_left_shift                          { False, True }
  Align lines that start with '<<' with previous '<<'. Default=true
Run Code Online (Sandbox Code Playgroud)

您可以尝试使用这些参数来更接近解决方案,尽管我会尝试以下方法:

sp_compare     =   Remove
align_left_shift   = False
Run Code Online (Sandbox Code Playgroud)