<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Notepad++ v8.7.6 released]]></title><description><![CDATA[<p dir="auto"><strong>Notepad++ release 8.7.6 is available here:</strong><br />
<a href="https://notepad-plus-plus.org/news/v876-released/" rel="nofollow ugc">https://notepad-plus-plus.org/news/v876-released/</a></p>
<p dir="auto"><strong>Notepad++ release 8.7.6 change log:</strong></p>
<ol>
<li>Update to scintilla 5.5.3 &amp; Lexilla 5.4.1. (Fix <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/10528" rel="nofollow ugc">#10528</a>, <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/15801" rel="nofollow ugc">#15801</a>, <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/15817" rel="nofollow ugc">#15817</a>, implement <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/15982" rel="nofollow ugc">#15982</a>)</li>
<li>Enhance performance of syntax highlighting for large files. (Fix <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/15952" rel="nofollow ugc">#15952</a>)</li>
<li>Make “Show close/pin button on each inactive tab” optional. (Fix <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/15912" rel="nofollow ugc">#15912</a>, <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/16035" rel="nofollow ugc">#16035</a>)</li>
<li>Add ShortcutMapper Multilingual ability, allowing the use of specific keys for non-en-US keyboards.  (Fix <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/14395" rel="nofollow ugc">#14395</a>, <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/15966" rel="nofollow ugc">#15966</a>, <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/16071" rel="nofollow ugc">#16071</a>)</li>
<li>Fix vertical tab crashes when enabling/disabling the pin tab feature. (Fix <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/16033" rel="nofollow ugc">#16033</a>)</li>
<li>Fix crash when passing an invalid buffer with NPPM_SETUNTITLEDNAME. (Fix <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/15970" rel="nofollow ugc">#15970</a>)</li>
<li>Fix floating panels position resetting regression in multi-monitor configurations. (Fix <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/15498" rel="nofollow ugc">#15498</a>, <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/16077" rel="nofollow ugc">#16077</a>)</li>
<li>Fix incorrect “Replace all” behavior during the second replace in selection. (Fix <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/14897" rel="nofollow ugc">#14897</a>, <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/14624" rel="nofollow ugc">#14624</a>, <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/15992" rel="nofollow ugc">#15992</a>)</li>
<li>Fix backup file renaming bug for untitled tabs. (Fix <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/16043" rel="nofollow ugc">#16043</a>)</li>
<li>Enhance UX in “Find in file” action when the Directory field is empty. (Fix <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/16051" rel="nofollow ugc">#16051</a>)</li>
<li>Make the current line/position copyable in the Go to Line dialog. (Fix <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/15950" rel="nofollow ugc">#15950</a>)</li>
<li>GUI enhancement: hide right menu shortcuts on the fly. (Implement <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/16065" rel="nofollow ugc">#16065</a>)</li>
<li>Minor enhancements for JavaScript, CSS &amp; HTML. (Fix <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/15821" rel="nofollow ugc">#15821</a>, <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/15825" rel="nofollow ugc">#15825</a>, <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/16036" rel="nofollow ugc">#16036</a>)</li>
</ol>
<p dir="auto">Auto-update will be triggered in one week if no critical issue found.</p>
]]></description><link>https://community.notepad-plus-plus.org/topic/26588/notepad-v8-7-6-released</link><generator>RSS for Node</generator><lastBuildDate>Tue, 21 Jul 2026 23:29:03 GMT</lastBuildDate><atom:link href="https://community.notepad-plus-plus.org/topic/26588.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 28 Jan 2025 07:25:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Notepad++ v8.7.6 released on Sat, 01 Feb 2025 04:50:25 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/xomx" aria-label="Profile: xomx">@<bdi>xomx</bdi></a></p>
<blockquote>
<p dir="auto">“…instead of unnecessarily burdening all the present plugins with unsolicited notifications (for most of them), it would be better if plugins that want something like this, actively request (registered somehow?) that info being sent only to them by the N++.”</p>
</blockquote>
<p dir="auto">Indeed, it (adding a new API) will be the better solution than keeping all events of SCN_MODIFIED notification ON for some plugins which don’t need the all these events, or even for users WITHOUT any plugin.</p>
<p dir="auto">In the worst case, users get all the plugins which need ALL the events of notification SCN_MODIFIED and the performance will be equal as the old configuration (v8.7.5 and former versions), not worse.<br />
But in the most cases, the performance will always be better than before.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/99521</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/99521</guid><dc:creator><![CDATA[donho]]></dc:creator><pubDate>Sat, 01 Feb 2025 04:50:25 GMT</pubDate></item><item><title><![CDATA[Reply to Notepad++ v8.7.6 released on Fri, 31 Jan 2025 09:16:09 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/coises" aria-label="Profile: Coises">@<bdi>Coises</bdi></a> said in <a href="/post/99476">Notepad++ v8.7.6 released</a>:</p>
<blockquote>
<p dir="auto">At the risk of appearing argumentative… then why disable those events in the first place?</p>
</blockquote>
<p dir="auto">I remember e.g. this performance <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/14630#issuecomment-1909113806" rel="nofollow ugc">hint</a> from the Scintilla author:</p>
<p dir="auto">“Notepad++, unlike SciTE, leaves most notifications enabled so each replace operation will send 5 notifications [BeforeDelete, DeleteText, InsertCheck, BeforeInsert, InsertText]. Command events are also enabled which sends a WM_COMMAND:EN_CHANGE for each notification. These may not all be needed …”</p>
<p dir="auto">And <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/pull/16088#issuecomment-2603383344" rel="nofollow ugc">here</a> is my similar thought:</p>
<p dir="auto">“…instead of unnecessarily burdening all the present plugins with unsolicited notifications (for most of them), it would be better if plugins that want something like this, actively request (registered somehow?) that info being sent only to them by the N++.”</p>
]]></description><link>https://community.notepad-plus-plus.org/post/99506</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/99506</guid><dc:creator><![CDATA[xomx]]></dc:creator><pubDate>Fri, 31 Jan 2025 09:16:09 GMT</pubDate></item><item><title><![CDATA[Reply to Notepad++ v8.7.6 released on Fri, 31 Jan 2025 08:22:51 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/coises" aria-label="Profile: Coises">@<bdi>Coises</bdi></a></p>
<p dir="auto">The <strong>PR2</strong> which reverts the excluded SCN_MODIFIED events is here:<br />
<a href="https://github.com/notepad-plus-plus/notepad-plus-plus/pull/16128" rel="nofollow ugc">https://github.com/notepad-plus-plus/notepad-plus-plus/pull/16128</a></p>
<p dir="auto">I have done the test with a huge XML file (400 MB) to compare between the PR to revert &amp; the <strong>PR1</strong> with new API <code>NPPM_ADDSCNMODIFIEDFLAGS</code>, by doing the following steps:</p>
<ol>
<li>Open the huge XML and quit Notepad++ - so the huge XML file stays in the session.</li>
<li>Reopen Notepad++, make sure the 1st line is on the top. Immediatly hit <code>Ctrl-PageDown</code>. And use the timer to count the time to need to show the bottom text with syntax highlighting.</li>
</ol>
<p dir="auto">Here’s my result:</p>
<ul>
<li>
<p dir="auto">PR2 with WRAP_ON: <strong>39.72</strong> - 39.72 sec to get the bottom with syntax highlighting.</p>
</li>
<li>
<p dir="auto">PR2 with WRAP_OFF: <strong>38</strong> - the bottom line is reached immediately, and it takes 38 seconds to have syntax highlighting.</p>
</li>
<li>
<p dir="auto">PR1 with WRAP_ON: <strong>12.63</strong> - 12.63 sec to get the bottom with syntax highlighting.</p>
</li>
<li>
<p dir="auto">PR1 with WRAP_OFF: <strong>12.88</strong>   - the bottom line is reached immediately, and it takes 12.88 seconds to have syntax highlighting.</p>
</li>
</ul>
<p dir="auto">Conclusion, for the sake of performance, let’s use the PR1. And let plugins add the events they need for not overloading Notepad++ performance.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/99504</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/99504</guid><dc:creator><![CDATA[donho]]></dc:creator><pubDate>Fri, 31 Jan 2025 08:22:51 GMT</pubDate></item><item><title><![CDATA[Reply to Notepad++ v8.7.6 released on Fri, 31 Jan 2025 06:50:06 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/coises" aria-label="Profile: Coises">@<bdi>Coises</bdi></a> said in <a href="/post/99476">Notepad++ v8.7.6 released</a>:</p>
<blockquote>
<blockquote>
<p dir="auto">Set MODEVENTMASK_ON with SC_MOD_INSERTTEXT | SC_MOD_DELETETEXT only: Adding additional flags generates excessive and unnecessary event messages, degrading performance.</p>
</blockquote>
</blockquote>
<p dir="auto">More events, less performance.<br />
In absolute terms, it does make sense to me.</p>
<blockquote>
<p dir="auto">was the basis for changing the default event mask. I suspect this might have been a hasty remark, perhaps not considering that just because these events are unnecessary to Notepad++ itself does not mean that they are unnecessary to plugins. (The example given for overhead that the commenter claims could be skipped by suppressing unnecessary events is for an event, SC_MOD_CHANGEINDICATOR, that is included in the new defaults and won’t be disabled — so apparently it was necessary. In any case, if Notepad++ is doing unnecessary things in response to SCN_MODIFIED events, the sensible thing is to verify that they are unnecessary and remove that code. I suspect there isn’t a lot of code that was added for no reason at all… this logic seems suspect to me.)</p>
</blockquote>
<p dir="auto">It’s true while excluding unnecessary events for Notepad++, the needs of plugins were overlooked unintentionally.<br />
But since now there’s a new API for plugins to add the events they want to listen to, from my perspective, it might be a better way - especially since the plugins in question are not installed by all users.</p>
<blockquote>
<p dir="auto">I’m questioning whether there is any real evidence that changing which SCN_MODIFIED events are normally enabled (completely separate from temporarily disabling all events during certain activities internal to Notepad++) gains anything. And if anything, enough to warrant the disruption for existing plugins and creation of a new NPPM message?</p>
</blockquote>
<p dir="auto">That’s a good point. I will test it from my side.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/99503</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/99503</guid><dc:creator><![CDATA[donho]]></dc:creator><pubDate>Fri, 31 Jan 2025 06:50:06 GMT</pubDate></item><item><title><![CDATA[Reply to Notepad++ v8.7.6 released on Thu, 30 Jan 2025 17:21:56 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/donho" aria-label="Profile: donho">@<bdi>donho</bdi></a> said in <a href="/post/99453">Notepad++ v8.7.6 released</a>:</p>
<blockquote>
<p dir="auto">There are several factors come together to enhance large files’ syntax highlighting performance. Furthermore, it’s about only the performance of switching-in a large file.<br />
So I think it’s OK if one of factors (Scintilla notifications) is turned ON by plugins. The consequence is not significative IMO.</p>
</blockquote>
<p dir="auto">At the risk of appearing argumentative… then why disable those events in the first place?</p>
<p dir="auto">I cannot claim to have completely followed all the discussion behind the change to improve handling in large files, but it looks like the change to the SCN_MODIFIED event mask was based on this:</p>
<p dir="auto"><a href="https://github.com/notepad-plus-plus/notepad-plus-plus/pull/15981#issuecomment-2563388005" rel="nofollow ugc">https://github.com/notepad-plus-plus/notepad-plus-plus/pull/15981#issuecomment-2563388005</a></p>
<p dir="auto">I <em>think</em> the improvements to “the performance of switching-in a large file” were connected to turning off all SCN_MODIFIED events during loading. It looks like a note about restoring the environment after loading that said:</p>
<blockquote>
<p dir="auto">Set MODEVENTMASK_ON with SC_MOD_INSERTTEXT | SC_MOD_DELETETEXT only: Adding additional flags generates excessive and unnecessary event messages, degrading performance.</p>
</blockquote>
<p dir="auto">was the basis for changing the default event mask. I suspect this might have been a hasty remark, perhaps not considering that just because these events are unnecessary to Notepad++ itself does not mean that they are unnecessary to plugins. (The example given for overhead that the commenter claims could be skipped by suppressing unnecessary events is for an event, SC_MOD_CHANGEINDICATOR, that <em>is</em> included in the new defaults and won’t be disabled — so apparently it was necessary. In any case, if Notepad++ is doing unnecessary things in response to SCN_MODIFIED events, the sensible thing is to verify that they are unnecessary and remove that code. I suspect there isn’t a lot of code that was added for no reason at all… this logic seems suspect to me.)</p>
<p dir="auto">I’m questioning whether there is any real evidence that changing which SCN_MODIFIED events are normally enabled (completely separate from temporarily disabling all events during certain activities internal to Notepad++) gains anything. And if anything, enough to warrant the disruption for existing plugins and creation of a new NPPM message?</p>
]]></description><link>https://community.notepad-plus-plus.org/post/99476</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/99476</guid><dc:creator><![CDATA[Coises]]></dc:creator><pubDate>Thu, 30 Jan 2025 17:21:56 GMT</pubDate></item><item><title><![CDATA[Reply to Notepad++ v8.7.6 released on Thu, 30 Jan 2025 12:24:12 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/peterjones" aria-label="Profile: PeterJones">@<bdi>PeterJones</bdi></a><br />
A regression issue has been created:<br />
<a href="https://github.com/notepad-plus-plus/notepad-plus-plus/issues/16121" rel="nofollow ugc">https://github.com/notepad-plus-plus/notepad-plus-plus/issues/16121</a></p>
]]></description><link>https://community.notepad-plus-plus.org/post/99456</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/99456</guid><dc:creator><![CDATA[donho]]></dc:creator><pubDate>Thu, 30 Jan 2025 12:24:12 GMT</pubDate></item><item><title><![CDATA[Reply to Notepad++ v8.7.6 released on Thu, 30 Jan 2025 06:27:47 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/coises" aria-label="Profile: Coises">@<bdi>Coises</bdi></a> said in <a href="/post/99439">Notepad++ v8.7.6 released</a>:</p>
<blockquote>
<p dir="auto">though it could still break existing plugins if their authors are not active and able to keep up with changes.</p>
</blockquote>
<p dir="auto">I think it’s not reasonable to stop evolving a project like Notepad++ due to unmaintained plugins.</p>
<blockquote>
<p dir="auto">How will this work in connection with NPPN_GLOBALMODIFIED ? Will SCN_MODIFIED messages requested by NPPM_ADDSCINTILLANOTIFS still be suppressed during Replace All operations?</p>
</blockquote>
<p dir="auto">There’s no connection between NPPM_ADDSCINTILLANOTIFS &amp; NPPN_GLOBALMODIFIED. They work separately.</p>
<blockquote>
<p dir="auto">If excluding those notifications really does improve Notepad++ performance for large files, anyone with Columns++ installed would sacrifice that gain, even on files for which they were not using elastic tabstops (which is more likely to be the case with large files) — even those who never use that feature at all. Other plugins might face similar circumstances.</p>
</blockquote>
<p dir="auto">There are several factors come together to enhance large files’ syntax highlighting performance. Furthermore, it’s about only the performance of switching-in a large file.<br />
So I think it’s OK if one of factors (Scintilla notifications) is turned ON by plugins. The consequence is not significative IMO.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/99453</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/99453</guid><dc:creator><![CDATA[donho]]></dc:creator><pubDate>Thu, 30 Jan 2025 06:27:47 GMT</pubDate></item><item><title><![CDATA[Reply to Notepad++ v8.7.6 released on Wed, 29 Jan 2025 18:20:37 GMT]]></title><description><![CDATA[<p dir="auto">Please test this PR WITH your modified plugins:<br />
<a href="https://github.com/notepad-plus-plus/notepad-plus-plus/pull/16120" rel="nofollow ugc">https://github.com/notepad-plus-plus/notepad-plus-plus/pull/16120</a></p>
<p dir="auto">Please let me know if the PR works for you.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/99444</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/99444</guid><dc:creator><![CDATA[donho]]></dc:creator><pubDate>Wed, 29 Jan 2025 18:20:37 GMT</pubDate></item><item><title><![CDATA[Reply to Notepad++ v8.7.6 released on Wed, 29 Jan 2025 18:15:29 GMT]]></title><description><![CDATA[<p dir="auto">I recommend that one of the plugin authors involved in this discussion create an issue at this point (referencing this topic, of course): now that the problem is defined, there appears to need to be more technical discussion as to how a fix might be implemented, and that’s better suited to an Issue than the Forum.</p>
<p dir="auto">(The technical details might dissuade other users from posting other regressions in this discussion, and if the notification-discussion continues after someone <em>does</em> post another regression, their post may get lost in between posts about this issue.)</p>
]]></description><link>https://community.notepad-plus-plus.org/post/99442</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/99442</guid><dc:creator><![CDATA[PeterJones]]></dc:creator><pubDate>Wed, 29 Jan 2025 18:15:29 GMT</pubDate></item><item><title><![CDATA[Reply to Notepad++ v8.7.6 released on Wed, 29 Jan 2025 18:06:13 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/coises" aria-label="Profile: Coises">@<bdi>Coises</bdi></a> said in <a href="/post/99439">Notepad++ v8.7.6 released</a>:</p>
<blockquote>
<p dir="auto">How will this work in connection with <a href="https://npp-user-manual.org/docs/plugin-communication/#1030nppn_globalmodified" rel="nofollow ugc">NPPN_GLOBALMODIFIED</a>? Will SCN_MODIFIED messages requested by NPPM_ADDSCINTILLANOTIFS still be suppressed during Replace All operations?</p>
</blockquote>
<p dir="auto">What’s needed is a complelmentary set of <code>*_GET_*</code> and <code>*_SET_*</code> messages like Scintilla has for most properties.</p>
<p dir="auto">Proper usage would be sending the <code>*_GET_*</code> message first, masking the return value for the desired flag(s), then <em>restoring</em> the flags by sending the <code>*_SET_*</code> message with the old value after the plugin is finished modifiying them.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/99441</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/99441</guid><dc:creator><![CDATA[rdipardo]]></dc:creator><pubDate>Wed, 29 Jan 2025 18:06:13 GMT</pubDate></item><item><title><![CDATA[Reply to Notepad++ v8.7.6 released on Wed, 29 Jan 2025 17:55:34 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/donho" aria-label="Profile: donho">@<bdi>donho</bdi></a> said in <a href="/post/99425">Notepad++ v8.7.6 released</a>:</p>
<blockquote>
<p dir="auto">The change is for enhancing large files’ syntax highlighting performance:<br />
<a href="https://github.com/notepad-plus-plus/notepad-plus-plus/commit/de9ffd2ea8507d033f7f111d8b48762f7d3b9436" rel="nofollow ugc">https://github.com/notepad-plus-plus/notepad-plus-plus/commit/de9ffd2ea8507d033f7f111d8b48762f7d3b9436</a></p>
<p dir="auto">Since it’s for improving the performance &amp; not all the plugins use such notifications,  it won’t be reversed. Instead, I will add a new message <strong>NPPM_ADDSCINTILLANOTIFS</strong> for adding the notifications that plugins can add what they need, just after recieving <strong>NPPN_READY</strong></p>
</blockquote>
<blockquote>
<p dir="auto">What do you think?</p>
</blockquote>
<p dir="auto">I think it’s better than just removing functionality, though it could still break existing plugins if their authors are not active and able to keep up with changes. At least it would provide a quick way to restore compatibility when authors are available.</p>
<p dir="auto">How will this work in connection with <a href="https://npp-user-manual.org/docs/plugin-communication/#1030nppn_globalmodified" rel="nofollow ugc">NPPN_GLOBALMODIFIED</a>? Will SCN_MODIFIED messages requested by NPPM_ADDSCINTILLANOTIFS still be suppressed during Replace All operations?</p>
<p dir="auto">Another thought has come to me, but the implications are unpleasant.</p>
<p dir="auto">Columns++ only uses Scintilla notifications when implementing elastic tabstops, which can be enabled or disabled per document. By default, even after enabling it for one file, it is disabled when loading another file that is over 1000 KB or 5000 lines.</p>
<p dir="auto">If excluding those notifications really does improve Notepad++ performance for large files, anyone with Columns++ installed would sacrifice that gain, even on files for which they were not using elastic tabstops (which is more likely to be the case with large files) — even those who never use that feature at all. Other plugins might face similar circumstances.</p>
<p dir="auto">At present, I have no suggestion as to how that could be avoided in practice, though. For my plugin, since the loss of SC_MOD_BEFOREDELETE will cause degradation in responsiveness, rather than outright inaccurate behavior — and there may be another, more complex way to restore the responsiveness — I will have some design considerations to weigh with or without NPPM_ADDSCINTILLANOTIFS.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/99439</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/99439</guid><dc:creator><![CDATA[Coises]]></dc:creator><pubDate>Wed, 29 Jan 2025 17:55:34 GMT</pubDate></item><item><title><![CDATA[Reply to Notepad++ v8.7.6 released on Wed, 29 Jan 2025 14:23:32 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/donho" aria-label="Profile: donho">@<bdi>donho</bdi></a> said in <a href="/post/99432">Notepad++ v8.7.6 released</a>:</p>
<p dir="auto">Thank you, that sounds good to me.</p>
<blockquote>
<p dir="auto">Notepad++'s code is biodegradable ;)</p>
</blockquote>
<p dir="auto">Nice to know, I already have enough hazardous waste with my rusty code :-D</p>
]]></description><link>https://community.notepad-plus-plus.org/post/99433</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/99433</guid><dc:creator><![CDATA[Ekopalypse]]></dc:creator><pubDate>Wed, 29 Jan 2025 14:23:32 GMT</pubDate></item><item><title><![CDATA[Reply to Notepad++ v8.7.6 released on Wed, 29 Jan 2025 12:32:55 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/ekopalypse" aria-label="Profile: Ekopalypse">@<bdi>Ekopalypse</bdi></a> said in <a href="/post/99429">Notepad++ v8.7.6 released</a>:</p>
<blockquote>
<p dir="auto">ok, so just to be sure I understand this correctly, in my case I would call</p>
<p dir="auto">::SendMessage(nppData._nppHandle, NPPM_ADDSCINTILLANOTIFS, 0, SC_MOD_BEFOREDELETE | SC_MOD_BEFOREINSERT);<br />
to reactivate these notifications?<br />
And does this mean that these notifications are then globally available again?</p>
</blockquote>
<p dir="auto">Yes.</p>
<blockquote>
<p dir="auto">That is, if NppLspClient reactivates them, can PythonScript use them again?</p>
</blockquote>
<p dir="auto">Yes. But one plugin should not depend on other plugins’ registration.</p>
<blockquote>
<p dir="auto">Or are they then only forwarded to the respective plugin?</p>
</blockquote>
<p dir="auto">No.</p>
<p dir="auto">By default, <code>MODEVENTMASK_ON</code> will contain the value <em><strong>SC_MOD_DELETETEXT | SC_MOD_INSERTTEXT | SC_PERFORMED_UNDO | SC_PERFORMED_REDO | SC_MOD_CHANGEINDICATOR</strong></em></p>
<p dir="auto">In the case that both Columns++ &amp; NppLspClient are installed and both plugins have integrated <code>NPPM_ADDSCINTILLANOTIFS</code> message, and NppLspClient is loaded after Columns++:</p>
<p dir="auto">After Columns++'s registration, <code>MODEVENTMASK_ON</code> will contain the value <em><strong>SC_MOD_DELETETEXT | SC_MOD_INSERTTEXT | SC_PERFORMED_UNDO | SC_PERFORMED_REDO | SC_MOD_CHANGEINDICATOR | SC_MOD_DELETETEXT | SC_MOD_INSERTTEXT</strong></em>.</p>
<p dir="auto">But after NppLspClient’s registration, the value becomes <em><strong>SC_MOD_DELETETEXT | SC_MOD_INSERTTEXT | SC_PERFORMED_UNDO | SC_PERFORMED_REDO | SC_MOD_CHANGEINDICATOR | SC_MOD_DELETETEXT | SC_MOD_INSERTTEXT | SC_MOD_BEFOREDELETE | SC_MOD_BEFOREINSERT</strong></em>.</p>
<p dir="auto">And the latest registered value will be sent globally for all installed plugins.</p>
<blockquote>
<p dir="auto">Btw, fun fact, isn’t there a law in France against deliberate obsolescence :-D</p>
</blockquote>
<p dir="auto">I ensure you that it’s not deliberate obsolescence.<br />
Notepad++'s code is biodegradable ;)</p>
]]></description><link>https://community.notepad-plus-plus.org/post/99432</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/99432</guid><dc:creator><![CDATA[donho]]></dc:creator><pubDate>Wed, 29 Jan 2025 12:32:55 GMT</pubDate></item><item><title><![CDATA[Reply to Notepad++ v8.7.6 released on Wed, 29 Jan 2025 10:50:04 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/donho" aria-label="Profile: donho">@<bdi>donho</bdi></a></p>
<p dir="auto">ok, so just to be sure I understand this correctly, in my case I would call</p>
<pre><code>::SendMessage(nppData._nppHandle, NPPM_ADDSCINTILLANOTIFS, 0, SC_MOD_BEFOREDELETE | SC_MOD_BEFOREINSERT);
</code></pre>
<p dir="auto">to reactivate these notifications?<br />
And does this mean that these notifications are then globally available again? That is, if NppLspClient reactivates them, can PythonScript use them again? Or are they then only forwarded to the respective plugin?</p>
]]></description><link>https://community.notepad-plus-plus.org/post/99429</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/99429</guid><dc:creator><![CDATA[Ekopalypse]]></dc:creator><pubDate>Wed, 29 Jan 2025 10:50:04 GMT</pubDate></item><item><title><![CDATA[Reply to Notepad++ v8.7.6 released on Wed, 29 Jan 2025 10:38:41 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/ekopalypse" aria-label="Profile: Ekopalypse">@<bdi>Ekopalypse</bdi></a> said in <a href="/post/99426">Notepad++ v8.7.6 released</a>:</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/donho" aria-label="Profile: donho">@<bdi>donho</bdi></a> said in <a href="/post/99425">Notepad++ v8.7.6 released</a>:</p>
<blockquote>
<p dir="auto">NPPM_ADDSCINTILLANOTIF</p>
</blockquote>
<p dir="auto">Does this mean that a plugin registers with this new message when starting for certain notifications?</p>
</blockquote>
<p dir="auto">Yes</p>
]]></description><link>https://community.notepad-plus-plus.org/post/99427</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/99427</guid><dc:creator><![CDATA[donho]]></dc:creator><pubDate>Wed, 29 Jan 2025 10:38:41 GMT</pubDate></item><item><title><![CDATA[Reply to Notepad++ v8.7.6 released on Wed, 29 Jan 2025 09:55:49 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/donho" aria-label="Profile: donho">@<bdi>donho</bdi></a> said in <a href="/post/99425">Notepad++ v8.7.6 released</a>:</p>
<blockquote>
<p dir="auto">NPPM_ADDSCINTILLANOTIF</p>
</blockquote>
<p dir="auto">Does this mean that a plugin registers with this new message when starting for certain notifications?</p>
]]></description><link>https://community.notepad-plus-plus.org/post/99426</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/99426</guid><dc:creator><![CDATA[Ekopalypse]]></dc:creator><pubDate>Wed, 29 Jan 2025 09:55:49 GMT</pubDate></item><item><title><![CDATA[Reply to Notepad++ v8.7.6 released on Wed, 29 Jan 2025 10:39:52 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/coises" aria-label="Profile: Coises">@<bdi>Coises</bdi></a> <a class="plugin-mentions-user plugin-mentions-a" href="/user/ekopalypse" aria-label="Profile: Ekopalypse">@<bdi>Ekopalypse</bdi></a><br />
The regression is due to this line:<br />
<code>#define MODEVENTMASK_ON          SC_MOD_DELETETEXT | SC_MOD_INSERTTEXT | SC_PERFORMED_UNDO | SC_PERFORMED_REDO | SC_MOD_CHANGEINDICATOR</code><br />
<a href="https://github.com/notepad-plus-plus/notepad-plus-plus/blob/master/PowerEditor/src/ScintillaComponent/ScintillaEditView.h#L97" rel="nofollow ugc">https://github.com/notepad-plus-plus/notepad-plus-plus/blob/master/PowerEditor/src/ScintillaComponent/ScintillaEditView.h#L97</a></p>
<p dir="auto">The change is for enhancing large files’ syntax highlighting performance:<br />
<a href="https://github.com/notepad-plus-plus/notepad-plus-plus/commit/de9ffd2ea8507d033f7f111d8b48762f7d3b9436" rel="nofollow ugc">https://github.com/notepad-plus-plus/notepad-plus-plus/commit/de9ffd2ea8507d033f7f111d8b48762f7d3b9436</a></p>
<p dir="auto">Since it’s for improving the performance &amp; not all the plugins use such notifications,  it won’t be reversed. Instead, I will add a new message <strong>NPPM_ADDSCINTILLANOTIFS</strong> for adding the notifications that plugins can add what they need, just after recieving <strong>NPPN_READY</strong>, for the next release:</p>
<pre><code>extern "C" __declspec(dllexport) void beNotified(SCNotification *notifyCode)
{
	switch (notifyCode-&gt;nmhdr.code) 
	{

		case NPPN_READY:
		{
			::SendMessage(nppData._nppHandle, NPPM_ADDSCINTILLANOTIFS, 0, SC_MOD_DELETETEXT | SC_MOD_INSERTTEXT);
		}
		break;
...
</code></pre>
<p dir="auto">What do you think?</p>
]]></description><link>https://community.notepad-plus-plus.org/post/99425</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/99425</guid><dc:creator><![CDATA[donho]]></dc:creator><pubDate>Wed, 29 Jan 2025 10:39:52 GMT</pubDate></item><item><title><![CDATA[Reply to Notepad++ v8.7.6 released on Wed, 29 Jan 2025 07:58:18 GMT]]></title><description><![CDATA[<p dir="auto">Yes, I think it would be beneficial if plugin-related changes were announced with some lead time.<br />
That could trigger a discussion about how the functionality to be removed could be realized in other ways, but that would also mean that the lead time would have to be a bit longer than a few days.<br />
I’m thinking months, to be honest.</p>
<p dir="auto">Possibly introducing a subscription model would be performance relevant, but that would also mean that currently running but no longer maintained plugins would then be obsolete. (which is also true when removing plugin related functionality)</p>
<p dir="auto">Btw, fun fact, isn’t there a law in France against deliberate obsolescence :-D</p>
]]></description><link>https://community.notepad-plus-plus.org/post/99424</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/99424</guid><dc:creator><![CDATA[Ekopalypse]]></dc:creator><pubDate>Wed, 29 Jan 2025 07:58:18 GMT</pubDate></item><item><title><![CDATA[Reply to Notepad++ v8.7.6 released on Wed, 29 Jan 2025 07:44:19 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/donho" aria-label="Profile: donho">@<bdi>donho</bdi></a> said in <a href="/post/99407">Notepad++ v8.7.6 released</a>:</p>
<blockquote>
<p dir="auto">Yes, I think. Does your plugin need these notifications?</p>
</blockquote>
<p dir="auto">Yes, both messages ensure that I get the correct position data that I need to calculate and convert.<br />
I’m not saying it can’t be done with SC_MOD_DELETETEXT and SC_MOD_INSERTTEXT, but it’s definitely more difficult to get it right, at least in my case.</p>
<p dir="auto">EDIT: By the way, this also applies to script plugins such as PythonScript etc., as these normally export all available functions.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/99423</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/99423</guid><dc:creator><![CDATA[Ekopalypse]]></dc:creator><pubDate>Wed, 29 Jan 2025 07:44:19 GMT</pubDate></item><item><title><![CDATA[Reply to Notepad++ v8.7.6 released on Wed, 29 Jan 2025 06:14:13 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/mark-olson" aria-label="Profile: Mark-Olson">@<bdi>Mark-Olson</bdi></a> said in <a href="/post/99421">Notepad++ v8.7.6 released</a>:</p>
<blockquote>
<p dir="auto">So I guess the question is: assuming NPPM_SCINOTIFICATIONENABLED always accurately reflected what messages are broadcasted, do you see it being enough of a benefit to you and other similarly situated people that it would be worth adding?</p>
</blockquote>
<p dir="auto">No.</p>
<p dir="auto">I can really only speak for my own plugin. I had to figure out by trial and error what I could count on, because documentation isn’t all that precise. Experimenting with what I hope were realistic cases, I tried to figure out how I could maintain the desired display without lag. I found a way that works often enough. I chose a trade-off between complexity and results. I <em>could</em> make the implementation of elastic tabstops in Columns++ more responsive in more cases, but it wouldn’t improve the worst case, the typical case is already pretty good, and it would add a lot of complexity to the code and (in my estimation) make it more error-prone.</p>
<p dir="auto">That trade-off depends on which messages I get. If I won’t be getting a notification before delete, I have to rethink that trade-off. I’ll probably conclude that I have to add the complex, error-prone code I’ve not yet written, because a rather common case will become laggy without it. It will take time, because it is not simple.</p>
<p dir="auto">It wouldn’t be any help to find out dynamically what messages I will get. I need to know at design time what I can count on.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/99422</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/99422</guid><dc:creator><![CDATA[Coises]]></dc:creator><pubDate>Wed, 29 Jan 2025 06:14:13 GMT</pubDate></item><item><title><![CDATA[Reply to Notepad++ v8.7.6 released on Wed, 29 Jan 2025 05:56:09 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/coises" aria-label="Profile: Coises">@<bdi>Coises</bdi></a> said in <a href="/post/99413">Notepad++ v8.7.6 released</a>:</p>
<blockquote>
<p dir="auto">Would it be possible and practical for Notepad++ to have a way for plugins to tell it, at startup, what Scintilla notifications they need, so Notepad++ can avoid disabling them?</p>
</blockquote>
<p dir="auto">This makes me wonder if maybe Notepad++ could do the reverse: have an <code>NPPM_SCINOTIFICATIONENABLED(uint sciNotificationValue)</code> message that plugins could send to NPP, where NPP would return 1 if <code>sciNotificationValue</code> is broadcasted to plugins, 0 if it is not broadcasted, and -1 if it is not a valid Scintilla Notification value.</p>
<p dir="auto">The main downside I see of this hypothetical message is that Don Ho and others are somewhat likely to forget to update the function, and then it becomes worse than useless.</p>
<p dir="auto">So I guess the question is: <em>assuming <code>NPPM_SCINOTIFICATIONENABLED</code> always accurately reflected what messages are broadcasted,</em> do you see it being enough of a benefit to you and other similarly situated people that it would be worth adding?</p>
]]></description><link>https://community.notepad-plus-plus.org/post/99421</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/99421</guid><dc:creator><![CDATA[Mark Olson]]></dc:creator><pubDate>Wed, 29 Jan 2025 05:56:09 GMT</pubDate></item><item><title><![CDATA[Reply to Notepad++ v8.7.6 released on Tue, 28 Jan 2025 20:40:13 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/donho" aria-label="Profile: donho">@<bdi>donho</bdi></a> said in <a href="/post/99407">Notepad++ v8.7.6 released</a>:</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/ekopalypse" aria-label="Profile: Ekopalypse">@<bdi>Ekopalypse</bdi></a> said in <a href="/post/99403">Notepad++ v8.7.6 released</a>:</p>
<blockquote>
<p dir="auto">8.7.6 no longer forwards SC_MOD_BEFOREDELETE and SC_MOD_BEFOREINSERT. Will it stay that way?</p>
</blockquote>
<p dir="auto">Yes, I think. Does your plugin need these notifications?</p>
</blockquote>
<p dir="auto">Would it be possible and practical for Notepad++ to have a way for plugins to tell it, at startup, what Scintilla notifications they need, so Notepad++ can avoid disabling them? I don’t really know enough about why you sometimes choose to disable notifications we used to get, so I don’t claim to know if this idea makes any sense.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/99413</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/99413</guid><dc:creator><![CDATA[Coises]]></dc:creator><pubDate>Tue, 28 Jan 2025 20:40:13 GMT</pubDate></item><item><title><![CDATA[Reply to Notepad++ v8.7.6 released on Tue, 28 Jan 2025 20:32:55 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/alan-kilborn" aria-label="Profile: Alan-Kilborn">@<bdi>Alan-Kilborn</bdi></a> said in <a href="/post/99411">Notepad++ v8.7.6 released</a>:</p>
<blockquote>
<blockquote>
<p dir="auto">no longer forwards SC_MOD_BEFOREDELETE and SC_MOD_BEFOREINSERT</p>
</blockquote>
<p dir="auto">Maybe when the Release Candidate is published, such removals should be listed in a “beware plugin authors” (or some such) section.</p>
</blockquote>
<p dir="auto">This could help for things that the author would be willing to revert (as he did the layout cache change). Perhaps (and I hope) he will revert this as well. But by the time a release candidate is finalized, it’s already too late to update plugins and get new versions into the plugin list, so it wouldn’t help with changes that will not be reverted.</p>
<p dir="auto">We really need notice when potentially breaking changes become pull requests, so we can test and comment before they are accepted if we think they might adversely affect our plugins (and scramble to mitigate them if they are accepted anyway). I’m not sure how practical that is, though… it might be difficult for <a class="plugin-mentions-user plugin-mentions-a" href="/user/donho" aria-label="Profile: donho">@<bdi>donho</bdi></a> to recognize a potentially breaking change. The structure of the Notepad++ plugin facility makes plugins potentially very powerful, but also potentially fragile.The Notepad++ messages are documented, but there are no documented “promises” (or boundaries) as to much of anything else, so it’s probably hard to tell what even constitutes a potentially breaking change.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/99412</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/99412</guid><dc:creator><![CDATA[Coises]]></dc:creator><pubDate>Tue, 28 Jan 2025 20:32:55 GMT</pubDate></item><item><title><![CDATA[Reply to Notepad++ v8.7.6 released on Tue, 28 Jan 2025 19:45:24 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto">no longer forwards SC_MOD_BEFOREDELETE and SC_MOD_BEFOREINSERT</p>
</blockquote>
<p dir="auto">Maybe when the Release Candidate is published, such removals should be listed in a “beware plugin authors” (or some such) section.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/99411</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/99411</guid><dc:creator><![CDATA[Alan Kilborn]]></dc:creator><pubDate>Tue, 28 Jan 2025 19:45:24 GMT</pubDate></item></channel></rss>