<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="12" style="border: 1px #c9c399 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://git.reviewboard.kde.org/r/124245/">https://git.reviewboard.kde.org/r/124245/</a>
     </td>
    </tr>
   </table>
   <br />




<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: 1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
 <tr>
  <td>

<div>Review request for KDevelop.</div>
<div>By Maciej Poleski.</div>










<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
kdev-clang
</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Introduced RefactoringManager.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Class used to prepare list of applicable refactorings "here" and their initialization. This replaces unfinished functionality of <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">Refactorings::allApplicableRefactorings</code>.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">This class is coupled to all refactorings implementations. It works by traversing AST looking for node at given localization. Then it makes inspections to decide which refactorings can be used "here". When some refactoring is available - instantiates appropriate classes (derived from <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">Refactoring</code>) providing it with additional informations as required.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">List of created instances is used to populate context menu. Action on menu item is to invoke refactoring. All instances are (will be) children of context menu (appropriate <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">QAction</code> to be precise).</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">This functionality is required for almost any nontrivial refactoring.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I have problem with multi-pass tooling. I cannot preserve AST nodes between passes. As a result I'm unable to make processing as efficient as it could be. I will work more on it.</p></pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Manual testing</p></pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>CMakeLists.txt <span style="color: grey">(875172a8407f4bd9faf330f032a280fa66c2b16f)</span></li>

 <li>clangsupport.h <span style="color: grey">(8ed1ec90bbbc41d7c7a94d926e0951c729a6194c)</span></li>

 <li>clangsupport.cpp <span style="color: grey">(e22c55426a2e839ec11cbe0b2fe1e13721b0583a)</span></li>

 <li>cmake/FindClang.cmake <span style="color: grey">(6c9bd6ef0242319122dcc7e6fd6cea8d9f0cbfbb)</span></li>

 <li>refactoring/CMakeLists.txt <span style="color: grey">(PRE-CREATION)</span></li>

 <li>refactoring/documentcache.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>refactoring/documentcache.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>refactoring/interface.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>refactoring/interface.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>refactoring/kdevrefactorings.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>refactoring/kdevrefactorings.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>refactoring/kdevrefactorings_disabled.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>refactoring/nooprefactoring.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>refactoring/nooprefactoring.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>refactoring/refactoring.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>refactoring/refactoring.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>refactoring/refactoringcontext.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>refactoring/refactoringcontext.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>refactoring/refactoringinfo.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>refactoring/refactoringinfo.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>refactoring/refactoringmanager.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>refactoring/refactoringmanager.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>refactoring/renamevardeclrefactoring.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>refactoring/renamevardeclrefactoring.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>refactoring/utils.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>refactoring/utils.cpp <span style="color: grey">(PRE-CREATION)</span></li>

</ul>

<p><a href="https://git.reviewboard.kde.org/r/124245/diff/" style="margin-left: 3em;">View Diff</a></p>






  </td>
 </tr>
</table>



  </div>
 </body>
</html>