Feature request: Modify Lines dialog for adding prefix/suffix to lines



  • I am using Notepad2 too and I find the Modify Lines dialogue very useful since I’m using it a lot.
    “Edit -> Block -> Modify Lines…”

    You can use it to quickly add a prefix or suffix (or both) to the selected lines. Very useful stuff indeed.

    I would like to place a feature request to implement this, if not in the main Notepad++ program, then in a plugin.



  • Here’s a screenshot with this dialog:
    http://oi65.tinypic.com/33asdht.jpg
    OR
    http://es.tinypic.com/r/33asdht/9



  • So in Notepad++ there are at least a couple of ways to prefix a block of lines:

    #1

    • get a column caret (a zero-width rectangular selection) in column 1 (some ways to do it: Alt+Shift+arrows, Alt+Lclick+drag with mouse, there are others…)

    • type the text you want…it is added at the start of every line

    #2

    • do a regular expression replacement for ^ with the text you want to prefix every line with

    There are also a few ways to add a suffix, one is native and one uses a plugin:

    #1

    • do a regular expression replacement for $ with the text you want to suffix every line with

    #2

    • get a column caret (a zero-width rectangular selection) in column 1 and, using the Better Multiselection plugin press the End key – you will now have a caret at the end of each line and you can go ahead and type or paste your desired text

    Anyway, here’s how to do a proper Feature Request: https://notepad-plus-plus.org/community/topic/15741/faq-desk-feature-request



  • Thanks for your reply.
    Indeed, it is possible to add suffix/suffix in other ways.
    But it’s simply much faster to just push a hotkey (Alt+M in this case) and do introduce the values for the prefix and the suffix. It’s increasing the productivity a lot.

    Thanks for pointing to the right direction for filling feature requests.
    But maybe I’ll post my suggestions here first and only after that in the issues-sf sub-forum.



  • @SuperCPU

    I forgot to mention a #3 for both prefixing / suffixing: You could script this behavior with one of the scripting plugins.

    I wish you Good Luck with your feature request.



  • Here’s an example of a scripting-based solution, with Pythonscript.

    When you run the script, it walks you through your choices to get the job done:

    Step A:
    Imgur

    Step B:
    Imgur

    Step C:
    Imgur

    Here’s the short script, which I call PrefixOrSuffixLines.py:

    def POSL__main():
    
        title = 'MODIFY LINES - Prefix or Suffix'
    
        result = notepad.messageBox(
            'PREFIX {} lines (the alternative being to SUFFIX ) ?'.format('all' if editor.getSelectionEmpty() else 'selected'),
            title,
            MESSAGEBOXFLAGS.YESNOCANCEL
            )
        if result == MESSAGEBOXFLAGS.RESULTYES:
            prefix_or_suffix = 'pre'
        elif result == MESSAGEBOXFLAGS.RESULTNO:
            prefix_or_suffix = 'suf'
        else:
            return
    
        result = notepad.messageBox(
            'Apply {}fixing to EMPTY lines ?'.format(prefix_or_suffix),
            title,
            MESSAGEBOXFLAGS.YESNOCANCEL
            )
        if result == MESSAGEBOXFLAGS.RESULTYES:
            do_empty_lines = True
        elif result == MESSAGEBOXFLAGS.RESULTNO:
            do_empty_lines = False
        else:
            return
    
        user_text = notepad.prompt(
            'TEXT to {}fix all {}lines with:'.format(prefix_or_suffix, '' if do_empty_lines else 'non-empty '),
            title,
            ''  # have input box start out empty
            )
        if user_text == None: return
    
        editor.rereplace(r'(?-s)^(.' + ('*' if do_empty_lines else '+') + ')',
            lambda m: (user_text + m.group(1)) if prefix_or_suffix == 'pre' else (m.group(1) + user_text),
            0,
            editor.positionFromLine(editor.getUserLineSelection()[0]),
            editor.positionFromLine(editor.getUserLineSelection()[1])
            )
    
    POSL__main()
    

Log in to reply