Notepad++ release 8.6.4
-
@Ekopalypse said in Notepad++ release 8.6.4:
Or, maybe better, plugins have to register with Npp which Scintilla notifications are needed, and Npp then sets the appropriate mask at the end of the plugins loading.
Your suggestion is good, but consider that if your LSP server plugin needs 3 types of notification, there are surly other plugins need other notification types.
I prefer to remove all the restrictions - the goal is fixing the performance issue for Replace All - I do believe that the rest codes do the job.The fix has been already merged in master. Please check it and confirm me that the problem of you plugin is fixed.
-
@donho said in Notepad++ release 8.6.4:
Please check it and confirm me that the problem of you plugin is fixed.
Thank you and I will be able to let you know in about 2-3 hours.
-
@donho said in Notepad++ release 8.6.4:
Your suggestion is good, but consider that if your LSP server plugin needs 3 types of notification, there are surly other plugins need other notification types.
I prefer to remove all the restrictions - the goal is fixing the performance issue for Replace All - I do believe that the rest codes do the job.The fix has been already merged in master. Please check it and confirm me that the problem of you plugin is fixed.
Ah… so this explains the mysterious regression I observed while testing upcoming changes to my plugin! I make use of SC_MOD_BEFOREDELETE.
Replacing with a binary from CI_build #475 appears to restore expected operation in Columns++.
-
I can also confirm that my lsp client is working as expected again after a build with the latest changes.
-
@donho said in Notepad++ release 8.6.4:
The fix has been already merged in master. Please check it and confirm me that the problem of you plugin is fixed.
When you know yourself, would it be possible to give us notice of the approximate cut-off time to get new plugin versions created and pull requests added for the plugin list in order for them to be included in the version of Notepad++ that will implement NPPN_GLOBALMODIFIED?
I’m assuming auto-update for 8.6.3 and 8.6.4 will not be enabled, and we can ignore compatibility issues for those versions?
-
@Coises said in Notepad++ release 8.6.4:
When you know yourself, would it be possible to give us notice of the approximate cut-off time to get new plugin versions created and pull requests added for the plugin list in order for them to be included in the version of Notepad++ that will implement NPPN_GLOBALMODIFIED?
OK, I’ll do an independent announce in Announcement (in about 3 weeks) to notify plugin authors the cut off time (about 1 week) for Notepad++ Plugin List.
I’m assuming auto-update for 8.6.3 and 8.6.4 will not be enabled, and we can ignore compatibility issues for those versions?
It’s correct.
-
Hello @donho , all,
In Compare plugins I am monitoring SCN_MODIFIED with the following flags:
SC_MOD_BEFOREDELETE,
SC_PERFORMED_USER,
SC_PERFORMED_UNDO,
SC_PERFORMED_REDO,
SC_MOD_INSERTTEXT,
SC_MOD_DELETETEXTThanks for keeping them intact.
Some time ago I tried also using SC_MOD_CHANGEFOLD but I had never received such notification even when I explicitly enabled it with SCI_SETMODEVENTMASK.
I did a workaround so I don’t rely on it but I was curious if someone has managed to use it successfully. -
@donho ,
I have one question regarding the new NPPN_GLOBALMODIFIED.
It is written in the comment for that notification the following:scnNotification->nmhdr.hwndFrom = BufferID;
scnNotification->nmhdr.idFrom = 0; // preserved for the future use, must be zeroIs
scnNotification->nmhdr.hwndFrom
trully the buffer ID or it is the window handle?Thanks.
-
@pnedev said in Notepad++ release 8.6.4:
Is scnNotification->nmhdr.hwndFrom trully the buffer ID or it is the window handle?
It is the BufferID — I can verify because my plugin code uses it.
For Replace All, one NPPN_GLOBALMODIFIED message is sent after the replace is complete.
For Replace All in All Open Files, one NPPN_GLOBALMODIFIED is sent for each modified file. Since I have to process visible files (not just the active tab, but files visible in either view) differently than files that are open but not currently visible, I use this code to tell the difference:
UINT_PTR bufferID = reinterpret_cast<UINT_PTR>(nmhdr->hwndFrom); intptr_t cdi1 = SendMessage(nppData._nppHandle, NPPM_GETCURRENTDOCINDEX, 0, 0); intptr_t cdi2 = SendMessage(nppData._nppHandle, NPPM_GETCURRENTDOCINDEX, 0, 1); bool visible1 = cdi1 < 0 ? false : bufferID == static_cast<UINT_PTR>(SendMessage(nppData._nppHandle, NPPM_GETBUFFERIDFROMPOS, cdi1, 0)); bool visible2 = cdi2 < 0 ? false : bufferID == static_cast<UINT_PTR>(SendMessage(nppData._nppHandle, NPPM_GETBUFFERIDFROMPOS, cdi2, 1)); if (visible1 || visible2) { // code for visible files } else { // code for tabs that are not visible }
Edit: There was a problem with the code I posted originally; when a cloned tab was visible only in the second view, it was not detected as visible. The above code might not be perfect yet, but it does fix that mistake.
-
Is scnNotification->nmhdr.hwndFrom trully the buffer ID or it is the window handle?
It is the BufferID — I can verify because my plugin code uses it.
I confirm the reply of @Coises .
NPPN_GLOBALMODIFIED
could be triggered from different buffers while Replace All in all opened documents. So we use nmhdr.hwndFrom for containing BufferID. And nmhdr.idFrom value 0 for Relace All operation. -
Little problem in Shortcut Mapper
English keyboard layout ignored case for filter.
But other layouts are required. -
Notepad++ crashes when I type. In the event log:
Faulting application name: notepad++.exe, version: 8.6.4.0, time stamp: 0x65d3e0e7
Faulting module name: ntdll.dll, version: 10.0.19041.3996, time stamp: 0x39215800
Exception code: 0xc0000374
Fault offset: 0x00000000000ff349
Faulting process id: 0x47aa0
Faulting application start time: 0x01da6f301f541163
Faulting application path: C:\Program Files\Notepad++\notepad++.exe
Faulting module path: C:\WINDOWS\SYSTEM32\ntdll.dll
Report Id: e2b69282-7440-40fe-8ae2-6b605d543839
Faulting package full name:
Faulting package-relative application ID:Bu trying older versions I found that this started after "Notepad++ 8.3.3 (Make Apps, not war) " - i.e. in 8.3.3 it does not crash, but in 8.4 and every later one it crashes in the same manner. I open empty file, type about 5-7 characters, and the window disappears from the screen.
-
@vad-R ,
Bu trying older versions I found that this started after "Notepad++ 8.3.3 (Make Apps, not war) " - i.e. in 8.3.3 it does not crash, but in 8.4 and every later one it crashes in the same manner.
Thus, it is not a problem specific to the release of v8.6.4, and doesn’t belong in this discussion. The “Notepad++ release 8.6.4” Topic is only for issues that came about in v8.6.4 that didn’t exist in any version before v8.6.4.
I am using my moderator powers to make a copy of your post in the Help Wanted section – at https://community.notepad-plus-plus.org/topic/25557/notepad-crash-v8-4-through-v8-6-4 – where we can further discuss your particular issues before you make an official bug report. Please go there if you have anything more to say about this issue.
-
-
-
-
-
-