Community
    • Login

    Question about cursor position

    Scheduled Pinned Locked Moved General Discussion
    7 Posts 2 Posters 5.9k Views 2 Watching
    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.
    • John ThompsonJ Offline
      John Thompson
      last edited by John Thompson

      Won’t be hard to figure out here, I guess I’d be considered a newbie. I’ve been using notepad++ for many years, but i never really dug in to get it set up the way i want.

      Using this to write some jQuery functions and I think there’s a way to do this but not sure.

      The smart editor adds end tags automatically right? so if I type a parenthesis open it automatically closes it. The problem is, it always puts the cursor between the two. more often than not I want the cursor to be after the closing tag. I know this might seem counter intuitive but for me it helps. For instance ‘function(’ would be ‘function()’ but my cursor would be between them. i want it to drop the closing tag before the cursor position

      Is there a way to configure this? I didn’t see it in the settings.

      Claudia FrankC 1 Reply Last reply Reply Quote 0
      • Claudia FrankC Offline
        Claudia Frank @John Thompson
        last edited by

        Hello John-Thompson,

        afaik it can’t be configured through settings. What I can propose is a python script solution,
        which means you need to install the python script plugin to make this work.
        What needs to be done would be

        • disable the autocompletion function from npp
        • write a script which listens for charadded event , do the completion and put the cursor behind the added char.

        Let me know if you want to go this way.

        Cheers
        Claudia

        1 Reply Last reply Reply Quote 0
        • John ThompsonJ Offline
          John Thompson
          last edited by John Thompson

          yes that makes sense. I would be happy to do that, unfortunately I know nothing about python. of course I could install the plugin

          just to explain a little more, I know this sounds counter intuitive, but my problem is I can’t seem to teach my brain to know I’m between them, so since I don’t always watch as I type I unconsciously hit the back arrow once when i open a tag. it’s a habit formed from a different editor I used to use that did just what I’m proposing

          Claudia FrankC 1 Reply Last reply Reply Quote 0
          • Claudia FrankC Offline
            Claudia Frank @John Thompson
            last edited by

            Hello John-Thompson,

            what needs to be done first is described here.

            The python script would be

            dict_complete_char = {'(':')','{':'}'}
            
            def callback_CHARADDED(args):
            
                if(args.has_key('ch')):
                    if dict_complete_char.get(chr(args['ch'])):
                        editor.addText(dict_complete_char.get(chr(args['ch'])))
                 
                
            editor.clearCallbacks([SCINTILLANOTIFICATION.CHARADDED]);
            editor.callback(callback_CHARADDED, [SCINTILLANOTIFICATION.CHARADDED])
            

            As said, disable auto insert by unchecking everything from
            Settings->Preferences->Auto-Completion -> Auto-Insert section
            like here.

            Once you saved the script with a meanigful name, restart npp.

            Open a file and click Plugins->PythonScript->Scripts->NAME_OF_SCRIPT
            now if you type a ( it should automatically add the ) char and the cursor is behind the ) char.

            Current script supports ( and { chars if you want to add additional pairs you need to modify the line

            dict_complete_char = {'(':')','{':'}'}
            

            e.g. you want to have < auto closed as well then you add it like

            dict_complete_char = {'(':')','{':'}','<':'>'}
            

            and so on.

            If you are fine with it and you a tired of running the script everytime you start npp,
            we can modify the startup.py, which is part of the python script pluign installation, to start
            this script automatically.

            Cheers
            Claudia

            1 Reply Last reply Reply Quote 1
            • John ThompsonJ Offline
              John Thompson
              last edited by

              Wow i didn’t expect you to write it for me, i figured I could research python a little. i installed the plugin after your reply so i’ll do this in the morning.

              Thank you SO much!

              Claudia FrankC 1 Reply Last reply Reply Quote 0
              • Claudia FrankC Offline
                Claudia Frank @John Thompson
                last edited by

                sorry for spoiling the party ;-)

                Cheers
                Claudia

                1 Reply Last reply Reply Quote 0
                • John ThompsonJ Offline
                  John Thompson
                  last edited by

                  Oh you didn’t spoil anything, you saved me a lot of time. lol i greatly appreciate it

                  1 Reply Last reply Reply Quote 0

                  Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                  Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                  With your input, this post could be even better 💗

                  Register Login
                  • First post
                    Last post
                  The Community of users of the Notepad++ text editor.
                  Powered by NodeBB | Contributors