<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Hi,</p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">On Mittwoch, 7. Februar 2024 23:02:36 CET Alexander Neundorf wrote:</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> Hi,</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> the project plugin can generated targets for the build plugin.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> The entries in the build plugin are editable by the user.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> This may be useful, e.g. to change the "-j8" flag for make, or maybe add</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> some other option.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> But, such a change is also saved. And from that moment on, it seems kate</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> always loads the saved, edited targets, no matter whether the project</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> plugins generates different targets now (e.g. because the cmake files for</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> that project have been changed).</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> To me this feels like a bug.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> I think it may be useful that the build commands are editable, it provides</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> some flexibility. If they were not editable at all, this would be also Ok</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> for me.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> But that my edits are saved and then override the "new" targets from the</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> project plugin feels like a bug, the targets are then not up to date anymore</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> with the current state of the actual project.</p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Ok, I found it, it's a feature:</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;"><a href="https://invent.kde.org/utilities/kate/-/commit/678e8a3bd98d5110da21091aefef00aa9cf3097f">https://invent.kde.org/utilities/kate/-/commit/678e8a3bd98d5110da21091aefef00aa9cf3097f</a></p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">TBH, this feels like a bug.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">I add a new target in cmake, and it doesn't appear in the build plugin.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">I remove a target, it's still there.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">There is no indication that this was read from a file, and that the input from the project plugin is ignored now.</p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">I understand the motivation: the user changes something, so this should be kept.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Nevertheless, how about removing this questionable feature ?</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">This would make the code a bit simpler.</p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Or, keep it, but instead of storing the full override, just store what has been changed ? E.g. "target foo moved 2 rows up" or "command target for target bar edited" etc. and then apply those modifcation to what comes from the project plugin. Sounds like it would result in relatively complicated code.</p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Or, maybe store a hash of the targets as they come from the project plugin, store the hash together with the override, and only use the override if the targets from the project plugin still have the same hash ?</p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Something else ?</p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Alex</p>
<br /></body>
</html>