<table><tr><td style="">antonanikin created this revision.<br />antonanikin added reviewers: kfunk, KDevelop.<br />antonanikin set the repository for this revision to rKDEVCPPCHECK KDevelop CppCheck.<br />Restricted Application added a subscriber: kdevelop-devel.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D2844" rel="noreferrer">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>Sorry for huge patch.</p>

<p>This patch produce many fixes and improvements for kdev-cppcheck plugin.</p>

<ol class="remarkup-list">
<li class="remarkup-list-item">KConfig fixes. Now all settings are handles with standard <tt style="background: #ebebeb; font-size: 13px;">kcfg_some_widget</tt> way, old version use them only for "global" config page.</li>
</ol>

<ol class="remarkup-list" start="2">
<li class="remarkup-list-item">UI improvements for config pages - many common parameters can be easley configured from GUI. Resulting command line are builded and showed in "real time", which allows easily check correctnes of settings.</li>
</ol>

<ol class="remarkup-list" start="3">
<li class="remarkup-list-item">UI improvement for checking process - now cppcheck's output hided by default and user immediately see ProblemsView with finded errors. This behavior is configurable and we also can enable XML-output displaying (for plugin debug, for example).</li>
</ol>

<ol class="remarkup-list" start="4">
<li class="remarkup-list-item">Incremental populating of ProblemView during check - therefore parser was fixed for incremental parsing.</li>
</ol>

<ol class="remarkup-list" start="5">
<li class="remarkup-list-item">Reordered menus. Now we have submenus "Analyse current file with" and "Analyse current project with" in "Run" main menu and editor context menu. This is useful for following populating such submenus with other analyzer plugins. Created actions disabled (or hided) during running check and for "non-projects" files.</li>
</ol>

<ol class="remarkup-list" start="6">
<li class="remarkup-list-item">Per-project results. Now we can open several projects, run checks for them and results will be "switched" together with active document.</li>
</ol>

<ol class="remarkup-list" start="7">
<li class="remarkup-list-item">Check menu for projects items - we can check selected item (file, directory, etc.)</li>
</ol>

<ol class="remarkup-list" start="8">
<li class="remarkup-list-item">Include directories for project automatically imported to cppcheck parameters and user can also enable "global" includes (/usr/include/...) used in project. It is possible to "block" some includes from command line.</li>
</ol>

<ol class="remarkup-list" start="9">
<li class="remarkup-list-item">For "hand defined" parameters it is possible to use placeholders:</li>
</ol>

<p><tt style="background: #ebebeb; font-size: 13px;">%p</tt> - Gets replaced by the URL of the project's root directory. <br />
<tt style="background: #ebebeb; font-size: 13px;">%b</tt> - Gets replaced by the URL of the project's build directory. <br />
It is useful for define (or block) include directories for example: <tt style="background: #ebebeb; font-size: 13px;">%p/some_dir</tt></p>

<ol class="remarkup-list" start="10">
<li class="remarkup-list-item">Workaround for Qt-based projects - plugin automatically find value of <tt style="background: #ebebeb; font-size: 13px;">Q_MOC_OUTPUT_REVISION</tt> define. If such define is not correctly set, cppcheck 'fails' on files with moc-includes and not return any errors, even if the file contains them.</li>
</ol></div></div><br /><div><strong>TEST PLAN</strong><div><p>Tested on <tt style="background: #ebebeb; font-size: 13px;">master</tt> KDevelop and kdevplatform with a lot of different code.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>rKDEVCPPCHECK KDevelop CppCheck</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D2844" rel="noreferrer">https://phabricator.kde.org/D2844</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>CMakeLists.txt<br />
config/cppcheckconfig.kcfg<br />
config/cppcheckconfig.kcfgc<br />
config/cppcheckpreferences.cpp<br />
config/cppcheckpreferences.h<br />
config/genericconfigpage.cpp<br />
config/genericconfigpage.h<br />
config/globalconfigpage.cpp<br />
config/globalconfigpage.h<br />
config/globalconfigpage.ui<br />
config/globalsettings.kcfg<br />
config/globalsettings.kcfgc<br />
config/projectconfigpage.cpp<br />
config/projectconfigpage.h<br />
config/projectconfigpage.ui<br />
config/projectsettings.kcfg<br />
config/projectsettings.kcfgc<br />
config/ui/cppchecksettings.ui<br />
config/ui/genericconfig.ui<br />
debug.h<br />
job.cpp<br />
job.h<br />
kdevcppcheck.json<br />
kdevcppcheck.rc<br />
parameters.cpp<br />
parameters.h<br />
parser.cpp<br />
parser.h<br />
parsers/cppcheckparser.cpp<br />
parsers/cppcheckparser.h<br />
plugin.cpp<br />
plugin.h<br />
tests/CMakeLists.txt<br />
tests/test_cppcheckjob.cpp<br />
tests/test_cppcheckjob.h<br />
tests/test_cppcheckparser.cpp<br />
tests/test_cppcheckparser.h</div></div></div><br /><div><strong>EMAIL PREFERENCES</strong><div><a href="https://phabricator.kde.org/settings/panel/emailpreferences/" rel="noreferrer">https://phabricator.kde.org/settings/panel/emailpreferences/</a></div></div><br /><div><strong>To: </strong>antonanikin, kfunk, KDevelop<br /><strong>Cc: </strong>kdevelop-devel<br /></div>