Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是否有C++;重构模式是作为一组铿锵工具实现的吗?_C++_Clang - Fatal编程技术网

C++ 是否有C++;重构模式是作为一组铿锵工具实现的吗?

C++ 是否有C++;重构模式是作为一组铿锵工具实现的吗?,c++,clang,C++,Clang,所以我发现。。。并且不禁要问:是否有任何用于完整项目美化和清理的示例代码库/编译工具套件(类似于C#resharper)? 项目规模上的代码格式化,例如:行尾的额外空间、成员/类命名的统一、如何将{}括号放在if之后等?Clang的libtooling相当新,因此目前没有太多基于它的代码 根据我的经验,这也是一种与之相联系的痛苦(llvm配置没有铿锵版本,开发人员似乎认为人们将在完整的铿锵repo中构建他们的工具,而不是作为一个很好的独立项目。铿锵的Ubuntu版本只包括静态的libtoolin

所以我发现。。。并且不禁要问:是否有任何用于完整项目美化和清理的示例代码库/编译工具套件(类似于C#resharper)?
项目规模上的代码格式化,例如:行尾的额外空间、成员/类命名的统一、如何将{}括号放在if之后等?

Clang的libtooling相当新,因此目前没有太多基于它的代码

根据我的经验,这也是一种与之相联系的痛苦(llvm配置没有铿锵版本,开发人员似乎认为人们将在完整的铿锵repo中构建他们的工具,而不是作为一个很好的独立项目。铿锵的Ubuntu版本只包括静态的libtooling.a,不。所以。Ubuntu的官方llvm夜间构建似乎根本不包括静态的libclangTooling.a

有一个用于删除未使用的头文件的

有一种方法可以生成反射绑定(不确定这是使用libtooling还是只使用libclang,但这是同一种方法)

还有支持其他一些操作的

其中包括一些工具。最著名的是A。还有一个用于模块的工具(一个正在为未来版本的C++开发的功能)

一旦它起飞,它应该是非常有用和强大的

就我个人而言,我正在尝试(目前未成功)构建一个简单的CLI重新分解工具cppmv,该工具旨在让您重命名类、函数、变量、在名称空间中移动它们等等,同时保持它们的使用同步,但在现阶段我没有任何有用的工具。其他工具可能是CPPL(列出名称空间、类和函数等)。如果出于某种原因(例如,您可以有一个“模板”类)要复制某些内容,可以使用cppcp,但它似乎不太有用

我也在考虑制作一个FUSE用户空间文件系统,它可以让你挂载和浏览你的项目,这样你就可以使用传统的“mv”和“cp”命令,但这更多的是学习FUSE的借口,而不是因为这样做会很有用。尽管可以编辑特定类和函数的源代码在它们各自独立的“文件”中,虽然这对于像IDE这样的很多东西都没有用处,因为您可能会丢失关于标题之类的信息

如果有一个实时的“编辑时查看”、基于ASTMatcher的工具,或者一些简单的重新分解脚本语言绑定,也会很好

编辑: 现在还有用于代码样式格式化的clang格式和(从3.4开始)用于Vim集成的clang-format.py脚本。clang apply REPLACES“”


可能值得一看这些东西的演示位置。

我猜这将是XCode的下一个版本。