Notepad++ v8.7.6 released
-
Please test this PR WITH your modified plugins:
https://github.com/notepad-plus-plus/notepad-plus-plus/pull/16120Please let me know if the PR works for you.
-
@Coises said in Notepad++ v8.7.6 released:
though it could still break existing plugins if their authors are not active and able to keep up with changes.
I think it’s not reasonable to stop evolving a project like Notepad++ due to unmaintained plugins.
How will this work in connection with NPPN_GLOBALMODIFIED ? Will SCN_MODIFIED messages requested by NPPM_ADDSCINTILLANOTIFS still be suppressed during Replace All operations?
There’s no connection between NPPM_ADDSCINTILLANOTIFS & NPPN_GLOBALMODIFIED. They work separately.
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.
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.
So I think it’s OK if one of factors (Scintilla notifications) is turned ON by plugins. The consequence is not significative IMO. -
@PeterJones
A regression issue has been created:
https://github.com/notepad-plus-plus/notepad-plus-plus/issues/16121 -
@donho said in Notepad++ v8.7.6 released:
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.
So I think it’s OK if one of factors (Scintilla notifications) is turned ON by plugins. The consequence is not significative IMO.At the risk of appearing argumentative… then why disable those events in the first place?
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:
https://github.com/notepad-plus-plus/notepad-plus-plus/pull/15981#issuecomment-2563388005
I think 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:
Set MODEVENTMASK_ON with SC_MOD_INSERTTEXT | SC_MOD_DELETETEXT only: Adding additional flags generates excessive and unnecessary event messages, degrading performance.
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.)
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?