Community
    • Login

    New built-in Plugin Admin (Plugin Manager) is ready

    Scheduled Pinned Locked Moved Notepad++ & Plugin Development
    117 Posts 22 Posters 96.1k 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.
    • oleg-shilo81O
      oleg-shilo81
      last edited by

      In my previous post the item #3 is invalid. Please ignore it. I misinterpreted the @doho’s quote.

      @chcg, that’s great, I am glad you have aggregated all PluginManager plugins. But… does this mean that @doho will change his mind and update N++ implementation to allow plugin dll to be in the package root?

      Currently the official N++ plugin admin description requires this:

      Item #6: https://notepad-plus-plus.org/features/plugin-admin.html

      The package should contain the named folder and the same name dll plugin inside the folder (for example: \myExtraordinaryPlugin\myExtraordinaryPlugin.dll).
      
      1 Reply Last reply Reply Quote 2
      • donhoD
        donho
        last edited by

        In order to be compatible with the most of existent packages, here’s new package folder structure rule:
        The plugin (DLL) should be under the root of zip file (and only).

        There will be no old plugin manager’s copy instructions. I try to KISS in new design of PA.

        All the binaries are updated:
        https://notepad-plus-plus.org/pluginListTestTools/

        Please use them (both notepad++.exe & GUP.exe) to test with your plugin package, and let me know if any problem.

        Thank you for your pertinent suggestions.

        1 Reply Last reply Reply Quote 2
        • dinkumoilD
          dinkumoil
          last edited by

          @donho said:

          The plugin (DLL) should be under the root of zip file (and only).

          After testing the new binaries I want to precise this statement according to my experience.

          • The plugin DLL file should be placed at the root level of the ZIP file. It has to be the only DLL file on this level.
          • The root level of the ZIP file can also contain additional files and folders which will be copied to the users harddisk as well.
          • Everything what gets copied from the ZIP file will be stored under <Npp-installation-folder>\plugins\<plugin-name>.

          Presumption: Additional DLL files needed by the plugin have to be placed in an arbitrary subfolder because the destination folder <plugin-name> gets named after the DLL file placed on the ZIP root level.


          @oleg-shilo81 said:

          1. From plugin-admin.html: The json file will be built into the a binary (nppPluginList.dll), which will be signed (for thes sake of security) and be included in the official distribution.
            Does this mean that any plugin updates users will need to wait until Notepad++ is updated?

          @donho already answered this question here:

          The release of nppPluginList will be independent from the release of Notepad++, and in the future, Notepad++ will be notified once there’s a new release of nppPluginList and download it.

          As well, nppPluginList will be maintained and released by people of community, since I’ll have not much vacant time for it.

          donhoD 1 Reply Last reply Reply Quote 2
          • guy038G
            guy038
            last edited by guy038

            Hi, @don-ho, @chcg, @dinkumoil, @dail, @oleg-shilo81 and All

            Just a neophyte question, because I’m quite far from creating my own plugin: ;-))

            After reading all your posts and in order to summarize, if I understand you, correctly, for a plugin named, say, abcde.dll :

            • It should be placed in the folder ..\Plugins\abcde

            • All other files and folders, necessary for the plugin, which were, initially located under ..\Plugins\Config\abcde ( or elsewhere ! ), will, now, be located under ..\Plugins\abcde

            And so, in the long run, the config directory should disappear, shouldn’t it ?

            Personally, I think that, if this new organization were implemented, it would be better because everything, regarding, for instance, the abcde.dll plugin, would be included in its own folder ..\Plugins\abcde :-))

            Cheers,

            guy038

            1 Reply Last reply Reply Quote 2
            • dinkumoilD
              dinkumoil
              last edited by

              @guy038 said:

              a plugin named, say, abcde.dll :

              • It should b placed in the folder ..\Plugins\abcde

              That is correct.

              • All other files and folders, necessary for the plugin, which were, initially located under ..\Plugins\Config\abcde ( or elsewhere ! ), will, now, be located under ..\Plugins\abcde

              No, files in the config folder stay there. Nothing changes.

              And so, in the long run, the config directory should disappear, shouldn’t it ?

              Personally, I think that, if this new organization were implemented, it would be better because everything, regarding, for instance, the abcde.dll plugin, would be included in its own folder ..\Plugins\abcde :-))

              This would be a bad idea. At least for local installations of Npp the plugins own folder is stored in a proteced location (usually C:\Program Files\Notepad++\plugins\abcde). Thus the plugin wouldn’t be able to write to its own config file(s) because admin rights would be required to do that.

              1 Reply Last reply Reply Quote 3
              • guy038G
                guy038
                last edited by

                Hi @dail,

                Thanks, for all your clarifications :-)

                Regarding my last statement, I’m so used to have, on my laptop, several versions of N++, at a time, all located in a user-defined folder, not related with any system-protected area that I had just forgotten the particular case you were talking about !

                1 Reply Last reply Reply Quote 1
                • donhoD
                  donho @dinkumoil
                  last edited by

                  @dinkumoil said:

                  After testing the new binaries I want to precise this statement according to my experience.

                  The plugin DLL file should be placed at the root level of the ZIP file. It has to be the only DLL file on this level.
                  The root level of the ZIP file can also contain additional files and folders which will be copied to the users harddisk as well.
                  Everything what gets copied from the ZIP file will be stored under <Npp-installation-folder>\plugins<plugin-name>.
                  Presumption: Additional DLL files needed by the plugin have to be placed in an arbitrary subfolder because the destination folder <plugin-name> gets named after the DLL file placed on the ZIP root level.

                  Very accurate description you made. It will be included in the PA guide line if I’m allowed to use it.

                  1 Reply Last reply Reply Quote 0
                  • dinkumoilD
                    dinkumoil
                    last edited by

                    @donho said:

                    It will be included in the PA guide line if I’m allowed to use it.

                    Of course, feel free to do that.

                    1 Reply Last reply Reply Quote 1
                    • HsilgosH
                      Hsilgos
                      last edited by

                      Are you sure you did your last changes to both versions of GUP and Android++?
                      For me seems that x64 works with new scheme, but x86 works with old

                      donhoD 1 Reply Last reply Reply Quote 1
                      • dinkumoilD
                        dinkumoil
                        last edited by

                        @Hsilgos said:

                        For me seems that x64 works with new scheme, but x86 works with old

                        I’ve tested both 32 bit and 64 bit Notepad++ and both worked with the new scheme.

                        donhoD 1 Reply Last reply Reply Quote 2
                        • donhoD
                          donho @Hsilgos
                          last edited by

                          @Hsilgos

                          Are you sure you did your last changes to both versions of GUP and Android++?
                          For me seems that x64 works with new scheme, but x86 works with old

                          Because you use Android++ instead of Notepad++.

                          HsilgosH 1 Reply Last reply Reply Quote 0
                          • HsilgosH
                            Hsilgos @donho
                            last edited by

                            @donho Yes, Notepad++ for sure =D
                            The rest of message should be correct

                            1 Reply Last reply Reply Quote 0
                            • donhoD
                              donho @dinkumoil
                              last edited by donho

                              @dinkumoil Sorry, I didn’t read your description attentively. The correct info about packaging is following:

                              1. The plugin DLL file should be placed at the root level of the ZIP file.
                              2. The root level of the ZIP file can also contain additional files (DLL files or data files needed by the plugin) and folders which will be copied to the users harddisk as well.
                              3. Everything what gets copied from the ZIP file will be stored under <Npp-installation-folder>\plugins<plugin-name>.

                              The other DLLs can be at the root level with plugins DLL because Notepad++ will load only the dll has the same name as its containing folder. The other DLLs are just ignored.

                              1 Reply Last reply Reply Quote 1
                              • chcgC
                                chcg
                                last edited by chcg

                                Having a hash of the main plugin dll might be still of interest, if you want to provide a “safe” mode with just starting plugin dlls with correct sha-256 hash.

                                1 Reply Last reply Reply Quote 0
                                • pnedevP
                                  pnedev
                                  last edited by

                                  @donho ,

                                  I just noticed that when testing the NppGTags x86 plugin installation it was put in C:\Users\me\AppData\Local\Notepad++\plugins\NppGTags instead of C:\Program Files (x86)\Notepad++\plugins\NppGTags. It is working fine but I didn’t get the impression that it would be installed there.
                                  Is that the intended behavior?

                                  donhoD 1 Reply Last reply Reply Quote 1
                                  • dinkumoilD
                                    dinkumoil
                                    last edited by dinkumoil

                                    @pnedev said:

                                    it was put in C:\Users\me\AppData\Local\Notepad++\plugins\NppGTags instead of C:\Program Files (x86)\Notepad++\plugins\NppGTags

                                    I did my previous test with portable installations of NPP, with a local installation I can confirm this behaviour. My plugins partially fail to work correctly, they don’t find their own DLL (required for extracting version information for the About box) and their documentation file anymore.

                                    The current behaviour is caused by the fact that it was intentional to provide a method of plugin installation which requires no restart of Npp. Thus the plugin installer can’t copy the plugin files to the installation folder of Npp because usually this is a protected location and would require admin rights to do so.

                                    Since we already discovered that there is a high risc that a restart-free plugin installation will cause problems with certain plugins (NppFTP seems to be one of these) @donho stated here that this behaviour will be changed. Thus in the future the installation folder should be <Npp-installation folder>\plugins\<plugin-name> again.

                                    donhoD 1 Reply Last reply Reply Quote 0
                                    • donhoD
                                      donho @pnedev
                                      last edited by donho

                                      @pnedev

                                      Is that the intended behavior?

                                      Yes, I confirm it.
                                      From now on all plugins will be placed in its folder which has the same name, so that any data or dll that plugin needs can be placed arbitrarily in this folder.

                                      I invite you to check the guide for being included in plugins list, it’ll be updated as soon as there’s any change of specs.

                                      1 Reply Last reply Reply Quote 0
                                      • donhoD
                                        donho @dinkumoil
                                        last edited by

                                        @dinkumoil

                                        @donho stated here that this behaviour will be changed. Thus in the future the installation folder should be <Npp-installation folder>\plugins<plugin-name> again.

                                        Not sure about the point you’re talking about. Could you elaborate it?

                                        1 Reply Last reply Reply Quote 0
                                        • dinkumoilD
                                          dinkumoil
                                          last edited by dinkumoil

                                          @donho said:

                                          @dinkumoil
                                          Not sure about the point you’re talking about. Could you elaborate it?

                                          In this comment I stated:

                                          2.After plugin installation Notepad++ is not restarted. That seems to be nice at first glance but causes serious problems.

                                          Your answer in this comment was:

                                          The 2nd point you mentioned is a bug, will be fixed in the future.

                                          I interpreted this in that sense that in the future after plugin installation Npp will be restarted again to avoid problems with plugins which need this behaviour. We have seen that sending a NPPM_READY message to plugins after installation is not sufficient because @chcg reported in this comment that NppFTP still isn’t initialized correctly:

                                          @chcg said

                                          For NppFTP the NPPN_READY doesn’t solve it completely. Now the docking and the message window are constructed/ visible, but the content is still not there. Maybe there is another difference to the start of n++ itself.


                                          The thing @pnedev and I wanted to point out is that with a local installation (performed by installer exe) the plugins currently are not installed under C:\Program Files\Notepad++\plugins but under C:\Users\<user-name>\AppData\Local\Notepad++\plugins. This difference causes problems since it is only possible to query the installation folder of Npp but not the storage location of the plugin itself.

                                          My current algorithm to get the storage location of my plugin DLL file and its documentation file is as follows (if this algorithm is wrong please point me to the correct method to do that):

                                          1. Send NPPM_GETNPPDIRECTORY to Npp to query the installation folder of Npp.
                                          2. Append plugins.
                                          3. Append the plugin name.

                                          This would result in e.g. C:\Program Files\Notepad++\plugins\AutoCodepage. But currently there is no folder of this path since the plugin gets installed under C:\Users\<user-name>\AppData\Local\Notepad++\plugins\AutoCodepage.

                                          donhoD 1 Reply Last reply Reply Quote 3
                                          • donhoD
                                            donho @dinkumoil
                                            last edited by

                                            @dinkumoil

                                            The thing @pnedev and I wanted to point out is that with a local installation (performed by installer exe) the plugins currently are not installed under C:\Program Files\Notepad++\plugins but under C:\Users<user-name>\AppData\Local\Notepad++\plugins.

                                            Damn! I miss again!
                                            https://pbs.twimg.com/media/ChxfvQVVEAEQvXH.jpg

                                            I interpreted this in that sense that in the future after plugin installation Npp will be restarted again to avoid problems with plugins which need this behaviour.

                                            No, it’s not what I wanna do. I have added NPPN_READY, obviously it’s not enough, there is (are) other notification(s) missing we just need to add it (them).

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