Support for custom plugin repository
-
Hello all,
I work in a company that has very strict security controls and blocks npp plugins downloads. This is for multiple and very sensible reasons that target the containment of information within the internal network and issues related to security and controls on software sourced from the internet.
Downloading manually and installing them in the plugins folder is out of the question.Is there a way to setup a custom internal git repo so the plugins can be downloaded/verified by authorized people and placed in the internal plugin repo?
This would help a large of number of developers that are using notepad++, allowing them to use some very useful and safe plugins available.
Kind regards,
Luis -
I forgot to put the actual question.
Is there a way of changing where does notepad++ looks for the list of plugins and where to download them from?
If yes, where could I find the documentation related to this?
Thanks!
-
Natively, there is no way to configure that.
However, the plugin list that Plugins Admin uses is derived from a DLL (nppPluginList.dll) which is shipped with each version of Notepad++. Your I.T. organization might be able to compile their own version of the DLL, and put that in the
<installdir>\Plugins\Config
folder instead of the one that ships with the public Notepad++. I have never tried that, so I don’t know if Notepad++ does a signing check on the nppPluginList.dll or not (I believe it does on the included Scintilla DLL, so it wouldn’t surprise me if it did on the plugin DLL , too), but a decent IT group would be able to figure that out.Alternatively, you said,
Downloading manually and installing them in the plugins folder is out of the question.
I disagree. If your IT organization wanted to, they could do the download and verify plugins, and set up a “safe plugins” site where they store copies of the “safe” ones. For example, put it on some internal website or some shared network drive. Then they (as admins) or individual users (if users have the permissions to write to the plugins folder) could copy the desired plugins from the “safe plugins” location to the installed Notepad++ instance.
Edit: add link to nppPluginList.dll repo = https://github.com/notepad-plus-plus/nppPluginList/
-
Hello, @peterjones and All,
The plugins, listed in the
Markdown
files, below, do not contain all the data ( For instance, the folder name andSHA-256
checksum are missing )https://github.com/notepad-plus-plus/nppPluginList/blob/master/doc/plugin_list_x86.md
https://github.com/notepad-plus-plus/nppPluginList/blob/master/doc/plugin_list_x64.md
These last days, I was trying to easily get a complete table of N++ plugins which contains all data from the initial
json
files. Here is this method.Just one constraint : you must have the
Elastic TabStops
plugin, of Justin Dailey ( aka @Dail ), installed in your N++ configuration !Note that the final plugins’ table will contain eight columns :
| Plugin name | Author | Homepage | Folder Name | Version | Link | Description | SHA-256 |
Let’s go :
- Click on one of these two files, below :
https://github.com/notepad-plus-plus/nppPluginList/blob/master/src/pl.x86.json
https://github.com/notepad-plus-plus/nppPluginList/blob/master/src/pl.x64.json
-
Click on the
Raw
button, at right of theGitHub
page -
Select all contents (
Ctrl + A
) -
Copy to the clipboard (
Ctrl + C
) -
Start Notepad++
-
Open a new tab (
Ctrl + N
) -
Paste the clipboard contents (
Ctrl + V
) -
Save it, as a normal
.txt
file. For instance,PluginsList_32.txt
orPluginsList_64.txt
-
Make sure that the last line is followed with a line-break ( This should always be the case, even if you extracted these files from the last
nppPluginList-x.y.z.zip
! ) -
If necessary, remove the N++ Word Wrap mode (
View > Word wrap
) -
Run the menu command
Plugins > Elastic Tabstops > Enable
and verify that the lineEnable
is checked -
Make a normal selection of all the text below, written in free-spacing mode, from
(?x-si)
tillGroup 10
(?x-si) # FREE-SPACING mode, DOT matches STANDARD chars, Search SENSITIVE to CASE # Header ^ \h+ "name" :\x20 " .+ " , \R \h+ "version" :\x20 " (.+) " , \R # Group 1 \h+ "arch" :\x20 " (.+) " , \R # Group 2 \h+ "npp-plugins" :\x20 \[ \R | # OR ^ \h* [{}\x5b\x5d] ,? \R # Delimiters : { } [ ] , at ANY level, POSSIBLY followed with a COMMA | # OR # Each JASON MULTI-lines RECORD {••••••••}; ^ \h+ "folder-name" :\x20 " (.+) " , \R # Group 3 \h+ "display-name" :\x20 " (.+) " , \R # Group 4 \h+ "version" :\x20 " (.+) " , \R # Group 5 \h+ "id" :\x20 " (.+) " , \R # Group 6 \h+ "repository" :\x20 " (.+) " , \R # Group 7 \h+ "description" :\x20 " (.+) " , \R # Group 8 \h+ "author" :\x20 " (.*) " , \R # Group 9 \h+ "homepage" :\x20 " (.*) " \R # Group 10
- Open the Replace dialog (
Ctrl + H
)
=> The
Find what:
zone should be filled up with this search- Depending on whether the current file is a Windows (
CRLF
) or Unix (LF
) file, use the appropriate following replacement :
REPLACE ( Win )
(?1\r\n\x20\x20\x20\x20NPP-PluginList - $2 bits - Version $1\r\n\r\n)?3|\x20\x20$4 \t|\x20\x20$9 \t|\x20\x20$10 \t|\x20\x20$3 \t|\x20\x20$5 \t|\x20\x20$7 \t|\x20\x20$8 \t|\x20\x20$6 \t|\r\n
REPLACE ( Unix )
(?1\n\x20\x20\x20\x20NPP-PluginList - $2 bits - Version $1\n\n)?3|\x20\x20$4 \t|\x20\x20$9 \t|\x20\x20$10 \t|\x20\x20$3 \t|\x20\x20$5 \t|\x20\x20$7 \t|\x20\x20$8 \t|\x20\x20$6 \t|\n
-
Tick the
Wrap around
option -
Select the
Regular expression
search mode -
Click on the
Replace All
button
=> You should get, at once, a nice table with all the columns lined up ( Click on the
Show All Characters
icon )-
Now, run the menu command
Plugins > Elastic Tabstops > Convert Tabstops to Spaces
( IMPORTANT ) -
And, either, add this header, below, to the beginning of your
32 bits
plugin’s table :
•------------------------------------•------------------------------------------------------•---------------------------------------------------------------------------•----------------------------------•-------------------•------------------------------------------------------------------------------------------------------------------------------------------------------------------------•----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------•--------------------------------------------------------------------• | Plugin name | Author | Homepage | Folder Name | Version | Link | Description | SHA-256 | •------------------------------------•------------------------------------------------------•---------------------------------------------------------------------------•----------------------------------•-------------------•------------------------------------------------------------------------------------------------------------------------------------------------------------------------•----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------•--------------------------------------------------------------------•
- Or add this header to the beginning of your
64 bits
plugin’s table :
•------------------------------------•------------------------------------------------------•------------------------------------------------------------------------•----------------------------------•-------------------•------------------------------------------------------------------------------------------------------------------------------•----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------•--------------------------------------------------------------------• | Plugin name | Author | Homepage | Folder Name | Version | Link | Description | SHA-256 | •------------------------------------•------------------------------------------------------•------------------------------------------------------------------------•----------------------------------•-------------------•------------------------------------------------------------------------------------------------------------------------------•----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------•--------------------------------------------------------------------•
- Finally, save the contents of your
PluginsList_32.txt
orPluginsList_64.txt
file
Here we are. Nice isn’t it ?. Note you’ll probably have to ajust these title lines a bit, in later releases ;-))
Best Regards
guy038
-
Hi @peterjones and All,
While playing around with the
.md
and.json
files of the Plugins List, I came across two small irregularities but I don’t exactly know to which person I should report it !
- In the
plugin_list_x86
file, below :
https://github.com/notepad-plus-plus/nppPluginList/blob/master/doc/plugin_list_x86.md
At the beginning of the description of the
SQL
plugin, there is an weirdFF
character in the string Allows to search\filter a CSV formatted text …, because the\f
is wrongly detected as aForm Feed
char !
- In both files
pl.x86.json
andpl.x64.json
, below :
https://github.com/notepad-plus-plus/nppPluginList/blob/master/src/pl.x86.json
https://github.com/notepad-plus-plus/nppPluginList/blob/master/src/pl.x64.json
The link of the
Preview HTML
plugin seems to contain a wrong%##
syntax. Indeed, the underscore character, after.zip
, should be translated as%5F
and not as%3F
!?https://fossil.2of4.net/npp_preview/zip/PreviewHTML32.zip%3Fname%3D%26uuid%3Dv1.3.2.0-32
BTW, I verified that all other
%##
syntaxes, which refer to a space char (%20
) or the + char (%2B
) are correct !BR
guy038
- In the