Two suggestions

  • @Ekopalypse said in Two suggestions:

    Bookmarks … hmm … what did I forget … wait … aren’t we
    waiting for someone else? :-D

    I thought I only promised something for THIS and I am still working on it.

  • @Alan-Kilborn said in Two suggestions:


    No, waiting for the OP. :-)

  • @Alan-Kilborn

    It is not a hard algorithm…until you consider undo/redo; then it all goes out the window.

    I too once tried to create a plugin to do this. It was several years ago and gave up because of this exact reason.

  • C’mon @dail , I haven’t even started and you’re already taking the wind out of my sails. :-D
    I thought memento pattern + deque list = solution.
    Phew - I guess I’m screwed now. ;-)

  • @Ekopalypse My naive approach was keep a counter per line. Increment when a change is made or a redo. Decrement when undo.

    This partially worked but once you start having to keep track of deleted lines, what to do when lines get merged, split, etc.

    My next attempt was to use the git diff core code to compute diffs in near real time but I didnt ever finish it.

  • Hmm … I see, what started to be a nice project while waiting on firmware compilation/update is becoming a “don’t walk alone in the dark and do not go into that lonely woodden cabin”

    Yes, I have also thought about Python’s difflib and using it together with the stored history of the document to avoid comparing large documents.
    Hmm… I will try and probably report in two days that I failed miserably. :-)

  • Any chance to have a look at LocationNavigate source and see how it handles it (undo/redo)?

  • @Alan-Kilborn said in Two suggestions:


    :-D - I’m currently doing this but there are a lot of ???
    Author seems to use a different encoding.

  • @Alan-Kilborn said in Two suggestions:

    Any chance to have a look at LocationNavigate source and see how it handles it (undo/redo)?

    What’s wrong with just using Location Navigate? I didn’t see that was a problem above (except lack of 64-bit version). I this just an attempt to implement with a script, or legitimately fix a problem with Location Navigate implementation?

    Just curious before I potentially throw my hat in the ring …


  • @Michael-Vincent

    What’s wrong with just using Location Navigate?

    Nothing, except:

    • It’s overkill for just the changed-lines functionality (I’ve never found any use for the other things – really the advertised main things – that LocationNavigate does)

    • It might be easier (says the guy that isn’t doing it) to recreate it than to understand the mass of what is there

    • It feels maybe wrong to “take over” someone else’s work (this is a very minor reason)

    Your hat is definitely welcome in the ring!

  • @Alan-Kilborn said in Two suggestions:

    It’s overkill for just the changed-lines functionality

    Agreed. And it’s not 64-bit. And even on 32-bit, it always made N++ crash on exit. So I “extracted” the line marker only parts and made it 64/32-bit in a more simple change lines marker plugin.

    @Alan-Kilborn said in Two suggestions:

    Your hat is definitely welcome in the ring!

    See Changed Lines. Again, it’s pretty much lifted right out of Location Navigate code so I do undo / redo they was Location Navigate does it. It’s not perfect, but works fine for me. One of the many reasons I’m reluctant to “announce” / “release” “my” plugins to the wild - they’re not my original work, they’re just tweaks to others’ and I don’t have the skill to support / fix bugs beyond really simple stuff.


  • Well, that means @Michael-Vincentsaved me the embarrassment then, fine, thank you. :-)

  • Thanks to all for a lively discussion. I’ll have a look at @Michael-Vincent’s plugin. LocationNavigate seems to do the job, after a quick test, but a plugin for both 32/64 is of course better.

    I’ve also discovered another contender, called cudatext. Looks also pretty good, this one, and has the added advantage to work natively with Linux (haven’t tested yet, just from the website blurb). What are the experiences with that one (if I can ask that in an NPP forum :-) )?

  • @favdish said in Two suggestions:

    What are the experiences with that one (if I can ask that in an NPP forum :-)

    There are tons of editors out there.
    VSCode, sublime, atom, geany, notepad2, pspad, eclipse… just to name a few
    and they all have their strengths and weaknesses, but in the end it all comes down to one simple question?
    Does it offer what YOU need, functionally and design-wise?

  • Hi, @michael-Vincent and All,

    I’ve just downloaded and tried your 32-bits plugin, on my Win XP SP3 with N++ v7.8.5 portable configuration. Wooow, amazing ;-))

    I do like :

    • The possibility of changing the Margin width and the highlight option, too ( I personally adopted highlight for change marker and default for save marker ! )

    • The two shortcuts Ctrl + ALt + Y and Ctrl + ALt + Z which allow to navigate :

      • from the beginning of each changed zone, in forward direction

      • from the end of each changed zone, in backward direction

    • The Changed Lines panel with the ability to double-click on any changed line to immediately move to the exact location in current file, in the same way it is, in the N++ Find result panel !

    Many thanks, Michael, for pointing us to this excellent plugin of yours ;-))

    Best regards,


  • @Michael-Vincent

    Thank you for your efforts.
    I’m currently checking it out as well.
    Question: What does the checkbox for Use N++ Colors do? I experimented with it but didn’t see any effect either way?

  • @Alan-Kilborn

    It should change the background color of the listview in the docking panel to the background color of your N++ theme. If you’re using the default theme (white background) you’ll see no effect. If you’re using something like Obsidian it’ll look like:





  • @guy038 said in Two suggestions:

    Many thanks, Michael, for pointing us to this excellent plugin of yours ;-))

    Your welcome - remember it’s not my original work - it’s basically just extracting the line marking logic from Location Navigate and putting just that in a plugin. The issue I had with Location Navigate recompiling in 64-bit was all the logic in tracking location as you navigate around the document. I ignore all that and don’t implement it. I only took the line marking “logic”.


  • @Michael-Vincent

    I have to agree with @guy038 after a day or so of working with ChangedLines replacing LocationNavigate. It seems to be working well. Many thanks.

    I’ve played a bit with the settings to customize it.
    One thing I like in a feature like this is that the changed but unsaved lines are REALLY emphasized, and the changed and saved lines are emphasized, but like they are an “afterthought”.

    To that end, I’ve adjusted the colors to my liking, sample:


    If you are looking for enhancement requests [ probably not! :-) ], maybe if the color settings could be presented in the Settings box, something like this:


    Truly not necessary, but if you want to play next time you are in the code! :-)

  • @Alan-Kilborn said in Two suggestions:

    Truly not necessary, but if you want to play next time you are in the code! :-)

    The location navigate plugin does this - colors its color selector buttons to the chosen color - but it looked complicated. My Win32 API understanding is very limited an consists of a lot of cut-paste examples. I haven’t looked at Changed Lines in a while because it’s been working nicely in the background for me but if i do revisit I’ll look at that part again.


Log in to reply