[cfe-dev] State of persistent refactoring server (clangd?), or refactoring tools in general

Manuel Klimek klimek at google.com
Tue Aug 26 00:42:09 PDT 2014

On Tue Aug 26 2014 at 9:14:42 AM Austin Bingham <austin.bingham at gmail.com>

> Hi all,
> In looking for C++ refactoring tools recently I came across some slides by
> Manuel Klimek from 2012 about "clangd", a persistent refactoring server
> based on clang. It was in the "design phase" back then, but I can't find
> any references to it since. Does anyone know what happened with this
> project?

The closest that exists is ycmd (https://github.com/Valloric/ycmd)

> More generally, what is the state of clang-based refactoring tools?

Still early stages. We have many "one-shot" tools that solve a specific use
case, but so far not a lot of progress towards the Fowler-refactorings.

> I see that there are things like clang-rename and clang-modernize; are
> these the state of the art, or are they more like how-to examples? If they
> are just examples, where can I find the real action?

clang-rename just landed last week and is very early stages. I've not been
using clang-modernize a lot, perhaps others have experience how well it

> I have experience writing refactoring servers in the spirit of clangd for
> Python, and I'd love to see something like that for C++. So, is something
> like this available or in the works? I probably have some time that I could
> devote to such a project; I'm new to llvm/clang, but I'm an old hand at C++
> and emacs so I could probably be useful.

I think the general plan would be:
1. develop the refactoring tools in tools-extra (like clang-rename), make
them integratable as library
2. once mature, put them into libclang (or generate a similarly
C-interfaced refactoring library for clang)
3. integrate into ycmd

Contributions are of course welcome :)


> Austin
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20140826/29ec503a/attachment.html>

More information about the cfe-dev mailing list