<div class="gmail_quote">On Tue Aug 26 2014 at 9:14:42 AM Austin Bingham <<a href="mailto:austin.bingham@gmail.com">austin.bingham@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div><div><div>Hi all,<br></div><div><br>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?<br>
</div></div></div></div></blockquote><div><br></div><div>The closest that exists is ycmd (<a href="https://github.com/Valloric/ycmd">https://github.com/Valloric/ycmd</a>)</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div><div>More generally, what is the state of clang-based refactoring tools?</div></div></div></blockquote><div><br></div><div>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.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div> 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?<br>
</div></div></div></blockquote><div><br></div><div>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 works.</div><div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>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.<br>
</div></div></blockquote><div><br></div><div>I think the general plan would be:</div><div>1. develop the refactoring tools in tools-extra (like clang-rename), make them integratable as library</div><div>2. once mature, put them into libclang (or generate a similarly C-interfaced refactoring library for clang)</div>
<div>3. integrate into ycmd</div><div><br></div><div>Contributions are of course welcome :)</div><div><br></div><div>Cheers,</div><div>/Manuel</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div>
<br></div>Austin<br></div>
______________________________<u></u>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/cfe-dev</a><br>
</blockquote></div>