所以我发现了Clang工具链的优秀视频...不禁想知道:是否有适用于整个项目美化和清理(类似于C# Resharper)的示例代码库/编译工具套件?
例如项目规模的代码格式化,如行末的额外空格、成员/类命名的统一性,if
后面放置{}
括号等方式?
所以我发现了Clang工具链的优秀视频...不禁想知道:是否有适用于整个项目美化和清理(类似于C# Resharper)的示例代码库/编译工具套件?
例如项目规模的代码格式化,如行末的额外空格、成员/类命名的统一性,if
后面放置{}
括号等方式?
Clang的libtooling相对较新,因此目前没有太多基于它的东西。
根据我的经验,链接时很麻烦(没有clang版本的llvm-config,在tutorials中,开发人员似乎认为人们会在完整的clang repo内构建他们的工具,而不是作为好的单独项目。Ubuntu版本的clang只包括libtooling作为静态.a文件,没有.so文件。Ubuntu的官方LLVM每夜构建似乎根本不包含静态的libclangTooling.a。
有include-what-you-use,旨在删除未使用的头文件。
有clReflect生成反射绑定。(不确定这实际上是否使用了libtooling或仅使用了libclang,但它是同样的东西。)
还有refactorial支持一些其他操作。
有一些工具包含在clang的一部分中。最值得注意的是一个c++11迁移工具。还有一个模块化工具(这是C++未来版本正在研究的一个功能)。
一旦这些工具起作用,它们应该非常有用和强大。
就个人而言,我正在尝试(目前不成功)构建一个简单的CLI重构工具cppmv,它旨在让您只需重命名类、函数、变量、移动它们到其他命名空间等,同时保持它们的使用同步,但我现在没有可用的东西。其他工具可以是cppls(列出命名空间、类函数等)。也许是cppcp,如果您想复制某些内容(例如,您可以有一个“模板”类),但它似乎不太有用。
我还想制作一个FUSE用户空间文件系统,让您可以挂载和浏览您的项目,以便使用传统的'mv'和'cp'命令,但这更多是为了学习FUSE而不是因为以这种方式进行操作会有用。虽然可能可以编辑特定类和函数的源代码,放在它们自己的独立个体'文件'中,但对于像IDE这样的许多东西来说并没有用处,因为您将失去有关标头等信息的信息。