Community
    • Login

    [New plugin] Columns++

    Scheduled Pinned Locked Moved Notepad++ & Plugin Development
    69 Posts 9 Posters 16.5k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Alan KilbornA
      Alan Kilborn @Mark Olson
      last edited by

      @Mark-Olson said in [New plugin] Columns++:

      Add Numbers and Average Numbers commands is to make it very clear that the command copies the result to the clipboard

      Currently it pops up a box with the result; perhaps having this box have 2 buttons, “OK” and “Copy”, would be an acceptable way around doing an automatic (and perhaps unwanted) copy.

      1 Reply Last reply Reply Quote 0
      • Bas de ReuverB
        Bas de Reuver @Coises
        last edited by

        @Coises said in [New plugin] Columns++:

        One of the features I hope to add at some point is conversion between tab-separated and comma-separated values files.

        fyi that is something my CSV Lint plug-in can also do

        1 Reply Last reply Reply Quote 1
        • Alan KilbornA
          Alan Kilborn @Alan Kilborn
          last edited by

          @Alan-Kilborn said in [New plugin] Columns++:

          And…it didn’t hit all of my e characters from the starting column block selection.

          I was eating dinner and I had the horrible thought: What if my script solution I pointed out before did the same behavior I complained about earlier? I would have had to have a nice dessert of humble pie. :-)

          Thankfully, the script didn’t:

          4c2fa20e-2ca2-4d31-b7ec-faf841c50bc8-image.png

          But yes, from the screenshot, the blocking is no longer a nice simple rectangular block.

          1 Reply Last reply Reply Quote 0
          • Alan KilbornA
            Alan Kilborn
            last edited by Alan Kilborn

            Also, I felt a bit “uncomfortable” doing a bunch of Find Next s through a column-block that I could no longer see. I felt much better doing it after redmarking the block:

            16be2de0-3eda-4975-881a-e59545f20aea-image.png

            using this PythonScript, which I called RedmarkAllSelections.py:

            # -*- coding: utf-8 -*-
            
            from Npp import *
            
            #-------------------------------------------------------------------------------
            
            class RAS(object):
            
                def __init__(self):
            
                    self.SCE_UNIVERSAL_FOUND_STYLE = 31
                    self.redmark_clear_range(0, editor.getLength())
                    for n in range(editor.getSelections()):
                        s = editor.getSelectionNStart(n)
                        e = editor.getSelectionNEnd(n)
                        self.redmark_fill_range(s, e)
            
                def redmark_clear_range(self, start_pos, end_pos):
                    editor.setIndicatorCurrent(self.SCE_UNIVERSAL_FOUND_STYLE)
                    editor.indicatorClearRange(start_pos, end_pos - start_pos)
            
                def redmark_fill_range(self, start_pos, end_pos):
                    editor.setIndicatorCurrent(self.SCE_UNIVERSAL_FOUND_STYLE)
                    editor.indicatorFillRange(start_pos, end_pos - start_pos)
            
            #-------------------------------------------------------------------------------
            
            if __name__ == '__main__': RAS()
            

            It’s a bit subtle, but I could see the selected hit text “beneath” the redmarking:

            7fba3c2f-76de-4aa6-b21a-4def3ca06071-image.png

            I don’t know…I just felt better being able to see the “bounds” of the block I was searching in, during the selecting of each hit after each Find Next press.

            CoisesC 2 Replies Last reply Reply Quote 1
            • CoisesC
              Coises @Alan Kilborn
              last edited by Coises

              @Alan-Kilborn Well, that’s interesting. I did not know about “marking” blocks of text. Is this something that would interfere with other ways people use this feature (if Notepad++ exposes it at all) if I were to mark the block upon the first search, and leave it marked until either the user makes a new selection, or the dialog is closed?

              Alan KilbornA 1 Reply Last reply Reply Quote 1
              • Lycan ThropeL
                Lycan Thrope @Coises
                last edited by

                @Coises ,
                Yeah, I tried that, but it didn’t seem to work either.
                I’m going to admit, It looks good in the animation, but I really don’t understand what it’s supposed to be doing and how. Like @Alan-Kilborn mentions, I can see value in the sort selection aspect also, but for now, I think I’ll just have to chew on figuring out and reading the documentation…more closely to figure out what I’m supposed to be doing.
                :-)

                1 Reply Last reply Reply Quote 0
                • Alan KilbornA
                  Alan Kilborn @Coises
                  last edited by

                  @Coises said in [New plugin] Columns++:

                  I did not know about “marking” blocks of text.

                  At a user level, the general marking feature is on the Mark tab of the Find family of windows, invoked by Ctrl+m by default. A similar but less powerful user-level feature to get different colors onto literal text is at Search menu > Style …

                  The Scintilla feature controlling both is called indicators.

                  Is this something that would interfere with other ways people use this feature (if Notepad++ exposes it at all) if I were to mark the block upon the first search, and leave it marked until either the user makes a new selection, or the dialog is closed?

                  If I were you, I’d consider allocating a new indicator exclusively for your plugin’s use for this purpose, if you like the general idea. Going that route, you wouldn’t have to be concerned about “interference”.


                  By the way, I had an admittedly brief look at your source code for the plugin, and it looks excellent; nice job.

                  Your help html file is also a joy to look at; other programs could use such a concise and well-written help file as a model. I’m curious what tool you might have used to assist in producing this?

                  CoisesC 1 Reply Last reply Reply Quote 5
                  • CoisesC
                    Coises @Alan Kilborn
                    last edited by

                    @Alan-Kilborn said in [New plugin] Columns++:

                    The Scintilla feature controlling both is called indicators.

                    Thank you. I will study that and see if I can use it. Perhaps it will even help solve the problem of “non-rectangular rectangular selections” that arises in cases like your example with repeated replace where the old and new text lengths differ.

                    By the way, I had an admittedly brief look at your source code for the plugin, and it looks excellent; nice job.

                    Your help html file is also a joy to look at; other programs could use such a concise and well-written help file as a model. I’m curious what tool you might have used to assist in producing this?

                    Thank you, Alan. The HTML/CSS/Javascript is hand-written in Notepad++, proofing in Firefox. I used what I wrote when I re-designed my personal web site about six years ago as a model, so there are probably some left-overs in the CSS that don’t look “purpose-built” only because I didn’t factor out all of the complexity I had needed for more diverse pages.

                    1 Reply Last reply Reply Quote 0
                    • CoisesC
                      Coises @Mark Olson
                      last edited by

                      @Mark-Olson said in [New plugin] Columns++:

                      One change I would consider making to the Add Numbers and Average Numbers commands is to make it very clear that the command copies the result to the clipboard. Some users will probably be unhappy that you overwrote their clipboard data without telling them that that’s what you were going to do.

                      Good point. I’ve been using a clipboard manager for so long, I’d forgotten how upsetting it can be to lose the contents of the clipboard at the wrong time.

                      OTOH, stating that clearly would result in some more cumbersome verbiage that lacks the nice simplicity of the current command names.

                      @Alan-Kilborn said in [New plugin] Columns++:

                      Currently it pops up a box with the result; perhaps having this box have 2 buttons, “OK” and “Copy”, would be an acceptable way around doing an automatic (and perhaps unwanted) copy.

                      This makes sense. I fussed about with that little pop-up a lot. The one thing I knew I didn’t want was what I’d seen in some other plug-in: the result displayed in a dialog box with no way to put it into the document, or anywhere else, other than to recite the numbers in my head and try to type them before I forget them. I tried just copying, along with inserting the results if space was left at the end of the selection, but it seemed like there had to be some visual indication that something had happened, especially if there was no place to insert results, or if that place was not visible. So I came up with this little pop-up that tells you what happened and then disappears on its own when you click anywhere, without consuming the click unless you click on the pop-up. (I meant for it to do the same with typing, but haven’t yet gotten that to work as intended.)

                      I will replace that peculiar little pop-up with a more standard dialog box offering options to copy or not copy the results.

                      Alan KilbornA 1 Reply Last reply Reply Quote 0
                      • Alan KilbornA
                        Alan Kilborn @Coises
                        last edited by

                        @Coises said in [New plugin] Columns++:

                        I will replace that peculiar little pop-up with a more standard dialog box offering options to copy or not copy the results.

                        Maybe 3 choices: Copy, Insert (if conditions are right), or simply close.

                        1 Reply Last reply Reply Quote 1
                        • CoisesC
                          Coises @Bas de Reuver
                          last edited by

                          @Bas-de-Reuver said in [New plugin] Columns++:

                          Sounds like an interesting plug-in, but tbh it’s unclear to me how to use it. I assume it only works with tab-separated or fixed width files, so not comma or semicolon separated data?
                          […]
                          It looks promising, but I think the github main page should make clear which type of data files are supported and maybe add a screenshot explaining some of the functions.

                          I added Purpose and Limitations sections to the main Github page, and a Purpose and limitations section to the help file.

                          Updating Columns++ to better handle the situation where nothing happens because there is no appropriate rectangular selection will take a little longer, but I will do it.

                          Thank you again for your observations.

                          1 Reply Last reply Reply Quote 0
                          • CoisesC
                            Coises @Mark Olson
                            last edited by

                            @Mark-Olson said in [New plugin] Columns++:

                            One change I would consider making to the Add Numbers and Average Numbers commands is to make it very clear that the command copies the result to the clipboard. Some users will probably be unhappy that you overwrote their clipboard data without telling them that that’s what you were going to do.

                            OTOH, stating that clearly would result in some more cumbersome verbiage that lacks the nice simplicity of the current command names.

                            Thank you again for this suggestion. I changed those two commands so that they open a typical dialog box including buttons for a “Yes” or “No” response to “Copy these results to the clipboard?” at the bottom. Also added is some control for formatting with thousands separators and whether or not to insert the results directly into the document. That’s in release 0.0.2.3-alpha.

                            Mark OlsonM 1 Reply Last reply Reply Quote 2
                            • Mark OlsonM
                              Mark Olson @Coises
                              last edited by

                              @Coises
                              Nice, looks great!

                              It looks like you meant to say Copy these results to the clipboard and forgot the word clipboard, though.

                              153bb876-40b9-469c-bcec-51458cb73f3c-image.png

                              CoisesC 1 Reply Last reply Reply Quote 1
                              • CoisesC
                                Coises @Mark Olson
                                last edited by

                                @Mark-Olson said in [New plugin] Columns++:

                                @Coises
                                Nice, looks great!

                                It looks like you meant to say Copy these results to the clipboard and forgot the word clipboard, though.

                                Thanks! Corrected.

                                1 Reply Last reply Reply Quote 1
                                • CoisesC
                                  Coises @Bas de Reuver
                                  last edited by

                                  @Bas-de-Reuver said in [New plugin] Columns++:

                                  At first I clicked Sort ascending (numeric) assuming that it would base the column on the current cursor position, but nothing happened. After a while I figured out that you first have to column-select part of the data file, and then select the “Sort ascending” option from the plugin menu. Maybe add a popup warning message when the user clicks a menu item but no column-selection was made.

                                  Thank you again for your suggestions. I’ve made some changes to address this, which are available in version 0.1.0.5-alpha. Instead of just doing nothing, a dialog box comes up stating that the command requires a rectangular selection, and (depending on what selection, if any, already exists) offering to create one. I hope it’s comprehensible; feedback, as always, is welcome.

                                  Mark OlsonM 1 Reply Last reply Reply Quote 1
                                  • Mark OlsonM
                                    Mark Olson @Coises
                                    last edited by

                                    @Coises
                                    Just tried out the new pop-up to make a rectangular selection. The one with 9 images took me a moment to figure out, but only a moment. I think it’s an awesome design, better than I would have thought to ask for.

                                    I thought of raising a feature request in the GitHub repo asking for a GUI that made it easy to create column selections. The 9-image GUI fills that role admirably, and I kinda feel like it should just be accessible as a default plugin command rather than something that people only discover by accident when they try to use a functionality without anything selected.

                                    CoisesC 1 Reply Last reply Reply Quote 0
                                    • CoisesC
                                      Coises @Mark Olson
                                      last edited by

                                      @Mark-Olson said in [New plugin] Columns++:

                                      Just tried out the new pop-up to make a rectangular selection. The one with 9 images took me a moment to figure out, but only a moment. I think it’s an awesome design, better than I would have thought to ask for.

                                      Thank you. I’m glad it seems to be working.

                                      I thought of raising a feature request in the GitHub repo asking for a GUI that made it easy to create column selections. The 9-image GUI fills that role admirably, and I kinda feel like it should just be accessible as a default plugin command rather than something that people only discover by accident when they try to use a functionality without anything selected.

                                      I wondered about that: perhaps a Select Rectangle… command that does just that and nothing else? If I did that, would it be better to “click and go” the same way these dialogs do, or should clicking the button “preview” the selection in the document, but wait for you to click OK to apply it or Cancel to revert to the state when you opened the dialog?

                                      Mark OlsonM 1 Reply Last reply Reply Quote 0
                                      • Mark OlsonM
                                        Mark Olson @Coises
                                        last edited by

                                        @Coises said in [New plugin] Columns++:

                                        If I did that, would it be better to “click and go” the same way these dialogs do, or should clicking the button “preview” the selection in the document, but wait for you to click OK to apply it or Cancel to revert to the state when you opened the dialog?

                                        That would be a good way to go about it!
                                        Probably the best way to go about it, although maybe too technically demanding, would be to preview the selection when you hover the mouse over the option, but only finalize the selection when you click on it.

                                        1 Reply Last reply Reply Quote 0
                                        • CoisesC
                                          Coises @Alan Kilborn
                                          last edited by

                                          @Alan-Kilborn said in [New plugin] Columns++:

                                          And I attempted to “walk through” and replace, using only the Replace button (I pressed nothing else, no did anything else in between presses).

                                          And…it didn’t hit all of my e characters from the starting column block selection. Maybe try my example and see what you think.

                                          @Alan-Kilborn said in [New plugin] Columns++:

                                          Also, I felt a bit “uncomfortable” doing a bunch of Find Next s through a column-block that I could no longer see.

                                          I made some significant changes to the way the search function works.

                                          I followed the path on which you started me by mentioning indicators. Search now uses an indicator, rather than a selection, to define the region to be searched. You can (and usually would) still start with a rectangular selection, which is used to define the indicated region.

                                          I could not find any way to know what indicators other plugins might be using (DSpellCheck, for example, just hard-codes 19); there does not seem to be any protocol for negotiating this between plugins. Consequently, I made it a user option; you can choose an indicator number to use (18 is default) or you can use the Find Mark indicator or one of the five Styles. Others’ experience will have to tell me whether this is a choice that mostly stays out of the way. Options for the “custom” indicator number and color are on the Options dialog.

                                          The downside of all this is that it’s harder to explain. I think it makes sense once you use it, but I’m not quite sure folks are going to understand what is happening right off the bat.

                                          The new stuff is in Pre-release 0.2.0.6-alpha.

                                          By the way, was the issue you posted about stale text on the Search dialog resolved in subsequent releases?

                                          Alan KilbornA 1 Reply Last reply Reply Quote 1
                                          • Alan KilbornA
                                            Alan Kilborn @Coises
                                            last edited by Alan Kilborn

                                            @Coises said in [New plugin] Columns++:

                                            I could not find any way to know what indicators other plugins might be using

                                            You are not alone; see HERE.


                                            was the issue you posted about stale text on the Search dialog resolved in subsequent releases?

                                            I have not seen it recur.


                                            The new stuff is in Pre-release 0.2.0.6-alpha.

                                            I will try it.

                                            EDIT: I gave it a spin, and I feel much more at ease about find-nexting through a column-block, now that I can see the block while the search is on-going. Nice job!

                                            Something new:

                                            I noticed when I try these links from the about box, nothing happens on my system:

                                            219e3e32-0640-4687-9044-318368bc1475-image.png


                                            CoisesC 3 Replies Last reply Reply Quote 2
                                            • First post
                                              Last post
                                            The Community of users of the Notepad++ text editor.
                                            Powered by NodeBB | Contributors