<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/122161/">https://git.reviewboard.kde.org/r/122161/</a>
</td>
</tr>
</table>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On April 18th, 2015, 4:18 p.m. UTC, <b>Milian Wolff</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="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;">any input on this?</p></pre>
</blockquote>
<p>On April 20th, 2015, 7:44 a.m. UTC, <b>Sergey Kalinichev</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I don't know. It feels wrong that code-completion is now responsible for such tasks as: which sessionData to choose for code-completion, especially when we already have a very similar code in the ClangParseJob which should select the right session data for header files.
So, for me it looks like the bug is somewhere within the ClangParseJob which doesn't attach the right parse session data to header files... Or maybe I simply don't understand how this thing suppose to work.
Also I begin to wonder whether this pin TU feature is the right thing. Because now re-parsing and code-completion in header files takes significantly more time then in cpp files. E.g. when code-completion invoked in a header file with a TU for cpp file, code completion for me can easily take 4-6 (and even more!) seconds. This is how much time it takes Clang to reparse the document (so there is probably nothing we can do about it). I believe it happens because when you edit a header file with TU for a cpp file, Clang can't use internally precompiled PCH to make a quick reparse (as it does when you edit a cpp file), so it has to reparse some (the currently edited and maybe even all other) header files and the cpp file, which takes significantly more time, than simply reparsing a header file.
So I'm actually thinking about switching back to the old approach: each opened in editor file has it's own TU. What do you think?</pre>
</blockquote>
</blockquote>
<pre style="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;">For the first part: I agree, it sucks and we should find a way to improve. But I'll still push this patch as it's an improvement over status quo. Hope you are OK with that.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Regarding the second part of your comment: The pinning is fine - we are using it for a long time without issues.</p></pre>
<br />
<p>- Milian</p>
<br />
<p>On January 20th, 2015, 1:09 a.m. UTC, Milian Wolff wrote:</p>
<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 Milian Wolff.</div>
<p style="color: grey;"><i>Updated Jan. 20, 2015, 1:09 a.m.</i></p>
<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;">This makes code completion in headers work more reliably when they
are opened after the .cpp file. The other way around its still
broken though :(
I wonder whether we should keep the last N TU's alive and use that
instead of abusing the AST attached to the context...</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>clangsupport.cpp <span style="color: grey">(f4f49b079d52462cfb0d56086780751605a6ab46)</span></li>
<li>codecompletion/model.h <span style="color: grey">(961bdf5cc4a33a9b41cea0cc8c81f0ecfb647b1f)</span></li>
<li>codecompletion/model.cpp <span style="color: grey">(0dcf44cdc801f7c4f330b9137e08f4f54da37b9d)</span></li>
</ul>
<p><a href="https://git.reviewboard.kde.org/r/122161/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>