Show only lines that contain a search term
-
@Alan-Kilborn and @Paul-Wormer
I have noticed that your line numbers don’t match my line numbers, e.g. my (correct) first occurence of
self.settings_by_viewfile_dict
is line 42.
I use the script https://community.notepad-plus-plus.org/post/82787 - Are you perhaps using a different script with potentially problematic changes? Does the problem also occur with this original version? -
@datatraveller1 said in Show only lines that contain a search term:
I have noticed that your line numbers don’t match my line numbers
I said before “(Don’t be concerned if my line numbers don’t match yours)”.
The reason for any mismatches would be because I’ve inserted some extra debugging statements in to possibly help solve the problem. As I’m seeing the undesired results with the original code or any variant, what I’ve changed isn’t causing the problem.
-
@Alan-Kilborn ok, sometimes debugging code can also contain errors, but this does not apply in your case.
I still get correct results no matter what I filter for :-)
-
@datatraveller1 , @Alan-Kilborn , @Paul-Wormer,
The first time I created the script, and ran it, it properly filtered (showed @datatraveller1’s screenshot). And every subsequent run in that load of Notepad++ worked properly.
I then restarted Notepad++, and the first run after restarting gave more lines (some of the comment lines). If I run it and do the clear (shift+OK), then run it to highlight again, it works correctly. If I restart NPP and re-run to get the extra lines, then run again with the same exact search string (not shifted), it filters correctly.
The sequence behaves the same when searching for
self.settings_by_viewfile_dict
or justself
.I set the debug flag to TRUE (set that line to a 1 not a 0), restarted Notepad++, and then ran with the longer search string again.
For the bad highlight:LFVH1<DBG>: view_plus_file: 0C:\Users\PJones2\AppData\Roaming\Notepad++\plugins\config\PythonScript\scripts\nppCommunity\23xxx\23929-AlanK-LineFilterViaHiding1.py LFVH1<DBG>: view_plus_file: 0C:\Users\PJones2\AppData\Roaming\Notepad++\plugins\config\PythonScript\scripts\nppCommunity\23xxx\23929-AlanK-LineFilterViaHiding1.py LFVH1<DBG>: L: [(1648, 1678), (2255, 2285), (2749, 2779), (2939, 2969), (4190, 4220), (4449, 4479), (5182, 5212), (5265, 5295), (5675, 5705), (6407, 6437), (6936, 6966), (7047, 7077), (9877, 9907), (9922, 9952)]
for the good highlight immediately after:
LFVH1<DBG>: view_plus_file: 0C:\Users\PJones2\AppData\Roaming\Notepad++\plugins\config\PythonScript\scripts\nppCommunity\23xxx\23929-AlanK-LineFilterViaHiding1.py LFVH1<DBG>: L: [(1648, 1678), (2255, 2285), (2749, 2779), (2939, 2969), (4190, 4220), (4449, 4479), (5182, 5212), (5265, 5295), (5675, 5705), (6407, 6437), (6936, 6966), (7047, 7077), (9877, 9907), (9922, 9952)]
There is no difference in the L list, which says that the problem doesn’t lie in the searching/list, but rather someplace else.
Additional datapoint: if I have the bad filter (with extra comments showing), switch to another tab, and switch back, it shows the correct filtering, with the debug info:
LFVH1<DBG>: BUFFERACTIVATED: {'code': 1010, 'bufferID': 3019234076800L} LFVH1<DBG>: view_plus_file: 0C:\Users\PJones2\AppData\Roaming\Notepad++\plugins\config\PythonScript\scripts\nppCommunity\23xxx\23929-AlanK-LineFilterViaHiding1.py
If I take original line#114 – the
self.freshen_user_view_of_active_tab()
at the end ofprompt_for_string_to_match()
's definition – and duplicate it, so it runs that freshen twice, on the first freshen, it shows wrong; on the second, it shows right.I’m wondering if before the “hide” side of that command, if you need to clear all the lineVisible flags to known values before your script does its hiding… maybe the active lexer or other NPP feature has already tagged some lines in a way that confuses your logic.
That’s probably all the time I’ll have for helping debug this today, but I hope some of that info turns out to be useful.
-
@Alan-Kilborn , in the other thread, said,
I don’t know if we should recommend that script at all until its shortcomings have been addressed.
I will admit I haven’t used it much (just the experiments I described yesterday). But my impression was that the redraw bug (which I can get around by changing tabs and back) and slowness (which is to be expected on something like this) were the issues. Was there anything else that would prevent it from being used?
-
@PeterJones said in Show only lines that contain a search term:
Was there anything else that would prevent it from being used?
Maybe my use of “…at all” came off as a little strong… I can’t see that it would corrupt data or do anything “bad”.
I think the downside to wider use is only the complaints that could arise in the form of “hey, this isn’t working right”. If a tool is supposed to do “X”, and it doesn’t do “X” correctly, well…
-
-
@Paul-Wormer said in Show only lines that contain a search term:
For a simple script
I don’t know that that script, being “simpler”, has anything over-and-above my “complicated”(?) one, given that it appears the strangeness with hidden lines continues in that script…
-
@Alan-Kilborn said
I don’t know that that script, being “simpler”, has anything over-and-above my “complicated”(?) one, given that it appears the strangeness with hidden lines continues in that script…
Your script has a fairly sophisticated UI, colors the margin of the displayed lines, and marks the strings found. My script has none of that. Therefore it has exactly 4 times less lines than yours. A quick fix for the “strangeness with hidden lines” is hiding all lines twice in a row. I’m very interested in hearing about cases where that fix breaks down. In the meantime I have tested the script a lot and so far the fix seems to work, but you never know …
-
@Paul-Wormer said in Show only lines that contain a search term:
A quick fix for the “strangeness with hidden lines” is hiding all lines twice in a row.
Meh.
-
Due to the problem seen earlier, I decided to take another approach, so that Notepad++ would cooperate better with the lines I was hiding in order to achieve the goals of the script.
Unfortunately, I’ve encountered too many bugs with the hidden lines feature, that it isn’t worth continuing. I think that, at least for now, I’m giving up on this idea…