<p></p>
<h3 dir="auto">Suggestion</h3>
<p dir="auto">The debug information at <code>Help > Debug Messages</code> should report the Scintilla version Geany was linked against.<br>
Lexilla should have its own entry as well, given its <a href="https://groups.google.com/g/scintilla-interest/c/1VWWqoJ_kmA/m/mfqpF1tjAgAJ" rel="nofollow">divergent release cadence</a>.</p>
<h3 dir="auto">Example</h3>
<p dir="auto"><a target="_blank" rel="noopener noreferrer" href="https://user-images.githubusercontent.com/59004801/150536019-eb8a50ea-7eea-46ee-9ecc-f6c77c618633.png"><img src="https://user-images.githubusercontent.com/59004801/150536019-eb8a50ea-7eea-46ee-9ecc-f6c77c618633.png" alt="geany_enhanced_debug_msgs" style="max-width: 100%;"></a></p>
<h3 dir="auto">Motivation</h3>
<p dir="auto">Issues could be more easily traced to a precise library version.<br>
Users could locate this otherwise obscure information without leaving the app.</p>
<h3 dir="auto">Implementation</h3>
<p dir="auto">The main problem is how to expose the libraries' versions at compile time. I've had some luck with the following approach:</p>
<ol dir="auto">
<li>
<p dir="auto">write a script to parse the content of <code>scintilla[/lexilla]/version.txt</code> and return the appropriate version (based on input) in semver format</p>
</li>
<li>
<p dir="auto">call the script in <code>configure.ac</code> via the <a href="https://www.gnu.org/software/m4/manual/html_node/Esyscmd.html#index-esyscmd" rel="nofollow"><code>m4_esyscmd</code></a> macro, assigning the script output to preprocessor definitions for each version</p>
</li>
<li>
<p dir="auto">use the definitions in <code>src/libmain.c</code> to extend Geany's debug output</p>
</li>
</ol>
<h3 dir="auto">Questions</h3>
<p dir="auto">My concern is that step <em>2</em> may be disruptive to the build workflow. Some potential issues that come to mind:</p>
<ul dir="auto">
<li>
<p dir="auto">builds targeting Windows would need access to a POSIX shell (if they don't already . . . I've never tried to package Geany <g-emoji class="g-emoji" alias="blush" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f60a.png">😊</g-emoji>)</p>
</li>
<li>
<p dir="auto">calling <code>m4_esyscmd</code> on a failing script does not crash <code>autoreconf</code> <sup><a href="#user-content-fn-1-c3ba5dafc2c298b87520e6b7961fe381" id="user-content-fnref-1-c3ba5dafc2c298b87520e6b7961fe381" data-footnote-ref="" aria-describedby="footnote-label">1</a></sup>. But aborting in that case might be better than generating an incomplete <code>config.h</code> header</p>
</li>
</ul>
<p dir="auto">This thread is here to gather input, especially with regard to the acceptability of using <code>m4_esyscmd</code> in the build.</p>
<p dir="auto">A search for similar topics found only an open RFC about <a href="https://github.com/geany/geany/issues/2517" data-hovercard-type="issue" data-hovercard-url="/geany/geany/issues/2517/hovercard">documenting lexer properties</a>.</p>
<section data-footnotes="" class="footnotes"><h2 id="footnote-label" class="sr-only">Footnotes</h2>
<ol dir="auto">
<li id="user-content-fn-1-c3ba5dafc2c298b87520e6b7961fe381">
<p dir="auto">"The error output of <em>shell-command</em> is not a part of the expansion: it will appear along with the error output of m4." <a href="https://www.gnu.org/software/m4/manual/html_node/Esyscmd.html#index-esyscmd" rel="nofollow">https://www.gnu.org/software/m4/manual/html_node/Esyscmd.html#index-esyscmd</a> <a href="#user-content-fnref-1-c3ba5dafc2c298b87520e6b7961fe381" data-footnote-backref="" class="data-footnote-backref" aria-label="Back to content"><g-emoji class="g-emoji" alias="leftwards_arrow_with_hook" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/21a9.png">↩</g-emoji></a></p>
</li>
</ol>
</section>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />Reply to this email directly, <a href="https://github.com/geany/geany/discussions/3108">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AAIOWJ6Y7MXQ5VGP4TSFKXTUXFRCFANCNFSM5MPS4YVA">unsubscribe</a>.<br />Triage notifications on the go with GitHub Mobile for <a href="https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675">iOS</a> or <a href="https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub">Android</a>.
<br />You are receiving this because you are subscribed to this thread.<img src="https://github.com/notifications/beacon/AAIOWJ4DID3CDSQUEK5IZADUXFRCFA5CNFSM5MPS4YVKYY3PNVWWK3TUL52HS4DFVJCGS43DOVZXG2LPN2VGG33NNVSW45C7NFSM4AB2JFJQ.gif" height="1" width="1" alt="" /><span style="color: transparent; font-size: 0; display: none; visibility: hidden; overflow: hidden; opacity: 0; width: 0; height: 0; max-width: 0; max-height: 0; mso-hide: all">Message ID: <span><geany/geany/repo-discussions/3108</span><span>@</span><span>github</span><span>.</span><span>com></span></span></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/geany/geany/discussions/3108",
"url": "https://github.com/geany/geany/discussions/3108",
"name": "View Discussion"
},
"description": "View this Discussion on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>