• Login
Community
  • Login

NppExec v0.6.2 has been released!

Scheduled Pinned Locked Moved Notepad++ & Plugin Development
6 Posts 3 Posters 774 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.
  • V
    Vitaliy Dovgan
    last edited by guy038 Feb 26, 2021, 7:40 PM Feb 26, 2021, 5:35 PM

    NppExec v0.6.2:

    • changed: now NppExec uses CreateFile+FILE_FLAG_WRITE_THROUGH while writing
      files to avoid filling with zero bytes on system shutdown.
    • changed: now NppExec changes the current directory to %TEMP% when an unnamed
      file (such as “new 1”) is activated and “Follow $(CURRENT_DIRECTORY)” is on.
      To revert to the old behavior (the current directory is not changed when an
      unnamed file is activated), set the manual option “Cd_UnnamedFile” to 0.
    • added: now NppExec supports “cloud location path” in Notepad++'s settings.
      With cloud location path specified in Notepad++'s settings, NppExec does
      the following:
      • On start, NppExec tries to read its configuration files from the cloud
        location path. If these files do not exist or are filled with NULs,
        NppExec reads its configuration from $(PLUGINS_CONFIG_DIR).
      • When NppExec saves its configuration files, first they are saved to
        $(PLUGINS_CONFIG_DIR) and then copied to the cloud location path. Thus,
        NppExec always has copies of its current configuration files within the
        $(PLUGINS_CONFIG_DIR) folder.
      • NppExec’s saved scripts - the “npes_saved.txt” file - are monitored in
        the cloud location path. So, if you manually edit the “npes_saved.txt”
        within the cloud location, NppExec detects it. If, however, you manually
        edit the “npes_saved.txt” within the $(PLUGINS_CONFIG_DIR) folder, it is
        ignored.
        When the cloud location path is not specified in Notepad++'s settings,
        NppExec reads and stores its configuration within $(PLUGINS_CONFIG_DIR).
        And the “npes_saved.txt” is monitored in that folder.
    • added: $(NPP_FULL_FILE_PATH), $(CLOUD_LOCATION_PATH)
    • added: indirect variable reference, e.g. $($(name)). Examples:
      set local c = 123 // $(c) = 123
      set local b = c // $(b) = c
      set local a = $($(b)) // $(a) = $($(b)) = $(c) = 123
      set local $($(b)) = 456 // $(c) = 456
      unset local $($(b)) // deletes $(c)
      set local i = # // $(i) = #
      set local j = 1 // $(j) = 1
      echo $($(i)$(j)) // echo $(#1)
    • changed: now the variables $(ARGC), $(ARGV), $(ARGV[1]) and so on support
      the indirect variable reference (see above)
    • added: Ctrl+Break in the Console aborts the currently running script

    As always, get it either here:
    https://github.com/d0vgan/nppexec/releases/tag/v062
    or here:
    https://sourceforge.net/projects/npp-plugins/files/NppExec/NppExec Plugin v0.6.2/

    Have fun!

    M 2 Replies Last reply Feb 26, 2021, 6:07 PM Reply Quote 6
    • M
      Michael Vincent @Vitaliy Dovgan
      last edited by Feb 26, 2021, 6:07 PM

      @Vitaliy-Dovgan said in NppExec v0.6.2 has been released!:

      NppExec v0.6.2:

      Already installed and experimenting. I like the indirect variable references - probably need to relook at some of my scripts - I know that would have come in handy in the past.

      Thanks for continued support of this great plugin!

      Cheers.

      1 Reply Last reply Reply Quote 2
      • G
        guy038
        last edited by Feb 26, 2021, 7:57 PM

        Hello, @vitaliy-dovgan and All,

        As administrator, I took the liberty to modify slightly your post, because of a side-effect of the Markdown syntax !

        Indeed, when you write :

        set local c = 123 // $(c) = 123
        

        we get this sentence:

        set local c = 123 // $© = 123

        And so, I modified this sentence, and the other ones containing $(c), with :

        set local c = 123 // $\(c\) = 123
        

        which correctly displays :

        set local c = 123 // $(c) = 123


        Many thanks for your continued support and enhancements of this main N++ plugin !

        Best Regards,

        guy038

        1 Reply Last reply Reply Quote 3
        • M
          Michael Vincent @Vitaliy Dovgan
          last edited by Feb 26, 2021, 10:25 PM

          @Vitaliy-Dovgan

          Maybe not possible, maybe an enhancement if not - can I get the return “value” of an NppExec script? I see I can get the exit status:

          $(LAST_CMD_RESULT)  :  result of the last NppExec's command
                                   (1 - succeeded, 0 - failed, -1 - invalid arg)
          

          It would be incredible if I could run an NppExec script as a “subroutine” for input to another:

          SET LOCAL RESULT = NPP_EXEC my_script
          

          My thought would be to create a getopt-like script similar to:

          ::getopt
          SET LOCAL START = 0
          SET LOCAL END ~ $(ARGC) - 1
          IF $(START)==$(END) GOTO END
          :LOOP
          ECHO $(ARGV[$(START)])
          SET LOCAL START ~ $(START) + 1
          IF $(START)<=$(END) GOTO LOOP
          :END
          

          Instead of ECHO, I could concat the args into a variable and return that - just thinking about uses for the new indirect variable reference expansion.

          Cheers.

          V 1 Reply Last reply Feb 27, 2021, 9:52 AM Reply Quote 0
          • V
            Vitaliy Dovgan @Michael Vincent
            last edited by Feb 27, 2021, 9:52 AM

            @Michael-Vincent
            If I understand the idea correctly, the same goal can be achieved by setting a non-local variable within a script. E.g.

            set x = 1
            set s = abc ded
            

            will make these variables available everywhere (inside a script, outside a script, inside other scripts) until unset is called for them.

            M 1 Reply Last reply Feb 27, 2021, 1:52 PM Reply Quote 2
            • M
              Michael Vincent @Vitaliy Dovgan
              last edited by Feb 27, 2021, 1:52 PM

              @Vitaliy-Dovgan said in NppExec v0.6.2 has been released!:

              achieved by setting a non-local variable within a script

              I hadn’t considered that but yes, that would do it. NPP_EXEC returns to where it was called acting like a subroutine call and we can use SET (not LOCAL) to store the return value.

              Thanks for that!

              Cheers.

              1 Reply Last reply Reply Quote 1
              3 out of 6
              • First post
                3/6
                Last post
              The Community of users of the Notepad++ text editor.
              Powered by NodeBB | Contributors