v7.9.2 NPPM_SETLINENUMBERWIDTHMODE
-
I am trying to implement the PerlScript wrappers for the new NPPM_SETLINENUMBERWIDTHMODE in v7.9.2.
I got the NPPM_GETLINENUMBERWIDTHMODE to correctly read the state of the Settings > Preferences > Margins/Border/Edge: Line Number toggle. But it seems to always ignore NPPM_SETLINENUMBERWIDTHMODE (or, rather, that message always reads as a failure (retcode = 0))While debugging, I tried with both raw SendMessage from Perl, and using NppExec’s npp_sendmsg, and both seemed to fail on the SET, with the GET
#define NPPM_SETLINENUMBERWIDTHMODE (NPPMSG + 99)
#define LINENUMWIDTH_DYNAMIC 0 #define LINENUMWIDTH_CONSTANT 1
// BOOL NPPM_SETLINENUMBERWIDTHMODE(0, INT widthMode)
// Set line number margin width in dynamic width mode (LINENUMWIDTH_DYNAMIC) or constant width mode (LINENUMWIDTH_CONSTANT)
// It may help some plugins to disable non-dynamic line number margins width to have a smoothly visual effect while vertical scrolling the content in Notepad++
// If calling is successful return TRUE, otherwise return FALSE.
#define NPPM_GETLINENUMBERWIDTHMODE (NPPMSG + 100)
// INT NPPM_GETLINENUMBERWIDTHMODE(0, 0)
// Get line number margin width in dynamic width mode (LINENUMWIDTH_DYNAMIC) or constant width mode (LINENUMWIDTH_CONSTANT)
With NppExec
script:
cls echo get original setting: npp_sendmsg 2124 0 0 echo $(MSG_RESULT) echo --------------------- echo try to set to 0 npp_sendmsg 2123 0 0 echo $(MSG_RESULT) echo and readback what I set npp_sendmsg 2124 0 0 echo $(MSG_RESULT) echo The 2123 (set) failed, and 2124 stayed with original value echo --------------------- echo try to set to 1 npp_sendmsg 2123 0 1 echo $(MSG_RESULT) echo and readback what I set npp_sendmsg 2124 0 0 echo $(MSG_RESULT) echo The 2123 (set) failed, and 2124 stayed with original value
When I have Settings > Preferences > Margins/Border/Edge: Line Number = Constant Width
get original setting: NPP_SENDMSG: 2124 0 0 1 --------------------- try to set to 0 NPP_SENDMSG: 2123 0 0 0 and readback what I set NPP_SENDMSG: 2124 0 0 1 The 2123 (set) failed, and 2124 stayed with original value --------------------- try to set to 1 NPP_SENDMSG: 2123 0 1 0 and readback what I set NPP_SENDMSG: 2124 0 0 1 The 2123 (set) failed, and 2124 stayed with original value
When I have Settings > Preferences > Margins/Border/Edge: Line Number = Dynamic Width =====
get original setting: NPP_SENDMSG: 2124 0 0 0 --------------------- try to set to 0 NPP_SENDMSG: 2123 0 0 0 and readback what I set NPP_SENDMSG: 2124 0 0 0 The 2123 (set) failed, and 2124 stayed with original value --------------------- try to set to 1 NPP_SENDMSG: 2123 0 1 0 and readback what I set NPP_SENDMSG: 2124 0 0 0 The 2123 (set) failed, and 2124 stayed with original value
With PerlScript
script:
print "==========\n"; print "0,1 => ", notepad->SendMessage( 2123, 0, 1), "\n"; print "get => ", notepad->SendMessage( 2124, 0, 0), "\n"; print "1,0 => ", notepad->SendMessage( 2123, 1, 0), "\n"; print "get => ", notepad->SendMessage( 2124, 0, 0), "\n"; print "1,1 => ", notepad->SendMessage( 2123, 1, 1), "\n"; print "get => ", notepad->SendMessage( 2124, 0, 0), "\n"; print "==========\n";
With dynamic, I get:
========== 0,1 => 0 get => 0 1,0 => 0 get => 0 1,1 => 0 get => 0 ==========
With Constant, I get
========== 0,1 => 0 get => 1 1,0 => 0 get => 1 1,1 => 0 get => 1 ==========
So, the GET message is working okay, but the SET message is not.
Can others confirm this behavior?
Or have I just misread the NPPM_SETLINENUMBERWIDTHMODE instructions from the source code, and I’m using it wrong?If it’s real, I’ll open a bug report on the new feature, but I wanted to confirm before opening a bug report.
-
Is a bug I guess
case NPPM_SETLINENUMBERWIDTHMODE: { if (lParam != LINENUMWIDTH_DYNAMIC || lParam != LINENUMWIDTH_CONSTANT) return FALSE;
should be && instead of || , right?
-
This post is deleted! -
@Ekopalypse said in v7.9.2 NPPM_SETLINENUMBERWIDTHMODE:
Is a bug I guess
should be && instead of || , right?Yes, that would make more sense. I’ll file a bug tomorrow (really hard to do from phone browser)
-
@PeterJones said in v7.9.2 NPPM_SETLINENUMBERWIDTHMODE:
I’ll file a bug tomorrow
Thanks for the research, @Ekopalypse