Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Clang's libtooling is fairly new so there's not too much based on it currently.</p> <p>Also in my experience it's a pain to link against (there's no clang version of llvm-config and in the <a href="http://clang.llvm.org/docs/LibASTMatchersTutorial.html" rel="noreferrer">tutorials</a> the devs seem to think people will build their tools inside of the full clang repo rather than as nice separate projects. The Ubuntu builds of clang only include libtooling as a static .a, no .so. Official LLVM nightly builds for Ubuntu don't seem to include the static libclangTooling.a at all.</p> <p>There is <a href="https://code.google.com/p/include-what-you-use/" rel="noreferrer">include-what-you-use</a> which is designed to remove unused header files.</p> <p>There is <a href="http://donw.org/b/?d=clReflect" rel="noreferrer">clReflect</a> which generates reflection bindings. (Not sure if this actually uses libtooling or just libclang, but its the same kind of thing.)</p> <p>There is also <a href="https://github.com/lukhnos/refactorial/" rel="noreferrer">refactorial</a> that supports some other operations.</p> <p>There are some tools included as <a href="http://llvm.org/svn/llvm-project/clang-tools-extra/trunk/" rel="noreferrer">part of clang</a>. Most notably A <a href="http://blog.llvm.org/2013/04/status-of-c11-migrator.html" rel="noreferrer">c++11 migration tool</a>. There is also a tool for modules (A feature being worked on for a future version of C++).</p> <p>This stuff should be very useful and powerful once it takes off.</p> <p>Personally I'm trying (unsuccessfully currently) to build a simple CLI re-factoring tool, cppmv which is designed to just let you rename classes, functions, variables, move them around namespaces and such while keeping their uses syncd but I don't have anything useful at this stage. Other tools could be cppls (to list namespaces, classes functions and so on). Maybe cppcp, if you want to copy something for some reason (you could have a 'template' class for example) but it seems less useful.</p> <p>I was also looking at making a FUSE userspace filesystem that would let you mount and browse your project so you can use traditional 'mv' and 'cp' commands, but that was more of an excuse to learn FUSE rather than because it would be useful to do things that way. Although it might be possible to edit source code of specific classes and functions in their own separate individual 'files', although that wouldn't be useful for many things like IDEs since you would loose information about headers and such.</p> <p>It would also be nice to have a live, 'see as you edit', ASTMatcher based tool, or some simple re-factoring scripting language bindings.</p> <p>EDIT: There is now also clang-format for code style formatting and (as of 3.4) a clang-format.py script for Vim integration. clang-apply-replacements "<a href="http://llvm-reviews.chandlerc.com/D1424" rel="noreferrer">that finds files containing serialized Replacements and applies those changes after deduplication and detecting conflicts.</a>"</p> <p>It might be worth looking at <a href="http://channel9.msdn.com/Events/GoingNative/2013/The-Care-and-Feeding-of-C-s-Dragons" rel="noreferrer">this video</a> where some of this stuff is demoed.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload