Two suggestions



  • @Ekopalypse Thanks. I’ve just found the plugin you mentioned :-) This indeed solves my first problem (though the plugin’s a bit fiddly to set up)… but only for 32 bit, apparently. Well, that shows it’s doable and perhaps it needs just to be recompiled for 64 bit. I may have a look if I have some more time.

    The second thing… trying to do that via a script is certainly feasible… if the scripting API is powerful enough. I’ve tried to do something similar with the geany editor and its Lua plugin and failed miserably. I have installed NPP’s LuaScript plugin and certainly will have a look.

    Again thanks.



  • @favdish

    quick info before I have to go back to work.
    Without having tested I would assume you first check
    if it is a rectangular selection, then get all start end end position from that selection and convert that into multiple selections. I’m not a Lua expert but if there is a problem,
    I guess I can show you how this could be solved via python.



  • @favdish @Ekopalypse

    I also am a big fan of changed-line indications, due to some editors I used before Notepad++ having that.
    LocationNavigate is not perfect with its marking but it is way better than nothing.
    I would have a hard time dealing with it if it were suddenly taken away from me somehow.
    It sure seems like the big question is, why isn’t this feature built into Scintilla?

    I think someone attempted to write a script before to do the changed-lines marking.
    It is not a hard algorithm…until you consider undo/redo; then it all goes out the window.



  • @Alan-Kilborn said in Two suggestions:

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

    :-D Challenge accepted :-)

    Just to be sure what needs to be done.

    • Mark each line that has been changed since the last save.
    • Once saved, mark them differently.
    • Make sure that Undo/Redo changes the marker accordingly
    • Reload document resets everything
    • No persistence, i.e. at Npp startup there is a clean document aka no markers.

    Anything else?



  • @Ekopalypse

    I think that covers everything.

    Don’t you have enough on your plate right now; thinking of:

    • themes stuff
    • PySnack
    • column mode prefix / suffix
    • other stuff I’ve forgotten… perhaps something regarding bookmarks… memory fails me


  • @Alan-Kilborn said in Two suggestions:

    other stuff I’ve forgotten

    • updating the MESSAGE and NOTIFICATION documentation

    :-)



  • @Ekopalypse

    Yea! What Peter said too!

    But, seriously, if you could make a changed-lines thingy, and have time to, THAT would be an extremely cool and useful thing. And I’ve got to believe others would fall in love with it too.



  • Don’t you have enough on your plate right now; thinking of:

    :-D you are right and I should stop doing such thing :-)
    but this one is interesting

    themes stuff
    PySnack
    column mode prefix / suffix
    other stuff I’ve forgotten… perhaps something regarding bookmarks… memory fails me
    You’re right, and I should stop doing that :-), but this is interesting.

    PySnack dies before it’s born. PythonScript
    with Python3 has its first alpha release and it looks very promising.

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

    Themes - yes - I am not finished with the theory yet. :-(

    MESSAGE and NOTIFICATION documentation - will certainly be finished this week, and if it means I have to do it on Father’s Day, I will do it.



  • @Ekopalypse said in Two suggestions:

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

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



  • @Alan-Kilborn said in Two suggestions:

    Me?

    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:

    LocationNavigate

    :-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 …

    Cheers.



  • @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.

    Cheers.



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


Log in to reply