<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Hi,</div><div class="gmail_quote"><br></div><div class="gmail_quote">2014-07-30 19:13 GMT+02:00 "C. Bergström" <span dir="ltr"><<a href="mailto:cbergstrom@pathscale.com" target="_blank">cbergstrom@pathscale.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="">On 07/30/14 11:42 PM, Richard wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">This is where clang-based refactoring tools are really going to shine.<br>

Leveraging the *production quality* parser and resulting lossless AST<br>
just puts you miles ahead in the game.<br>
</blockquote></div>
Have you evaluated MSVC+Visually Assist plugin? While it's not IntelliJ, I have heard good things about it. I think that's a professional level baseline which other tools could work towards matching/beating..<br>

<br>
This is OT for the list, but you and others are welcome to follow-up with me offlist for the refactoring stuff we are doing where I work.<br>
<br>
The refactoring work I have experience with ends up relying on things which go sorta outside the typical libclang tooling realm. You really have a lot to track beyond just a single source file and dealing with that can get tricky.</blockquote>
<div><br></div><div>I have much experience with refactoring large C++ codebases, all depending on WinAPI. My conclusion is: Visual Assist X seems to currently be the best tool at the market. However, it is quite useless, since most - if not any - refactoring-attempts at an over 20-year-old codebase with roughly 2 million lines of Microsoft-infested C++ code (DWORD, BOOL, etc.) failed. Even small, local refactorings take a) very long and b) mostly yield incorrect results.</div>
<div>For example, there was a paradigm to have a nested "data"-class inside of classes that manage the ui. They all share the same name, albeit being nested inside of totally different classes. VA X failed miserably analysing ("Go to definition") and refactoring this.</div>
<div><br></div><div>BTW, this is similar to Microsoft's effort regarding Roslyn: They already understood that there can be no sufficiently functioning refactoring tool that does not actually use the compiler's parser itself.</div>
<div><br></div><div>If clang-rename will be able to handle the codebase I am working with, I will be in sheer joy.</div><div><br></div><div>Greetings,</div><div>Daniel Albuschat</div><div><br></div><div><br></div><div> </div>
</div></div></div>