Notepad++ is a free source code editor. It supports several languages and has replaced Notepad. It runs in the MS Windows environment. GPL License governs the use of it in general.
Notepad++ is written in C++ and is based on the powerful editing component Scintilla. It is a text and source code editor for use with Microsoft Windows. It supports tabbed editing, which allows working with multiple open files in a single window. The project’s name comes from the C increment operator.
It uses pure Win32 API and STL which provides higher execution speed and smaller program size. It features syntax highlighting, code folding and limited auto-completion for programming, scripting and markup languages.
Notepad is a default text editor shipped with Windows. You may want to use NP++ instead of the early version of NP. However, there’s no obvious way to do it. From the version 7.6.6 you can run the following command to make NP++ replace NP (run in cmd.exe with Administrator privileges):
Note that you may need to use “%ProgramFiles%\Notepad++\” to substitute for “%ProgramFiles(x86)%\Notepad++\” if you have Notepad++ 64-bit installed, or use other path if your Notepad++ is installed in a non-default location.
Use the following comment to undo the replacement:
Ghost typing can be used to launch NP++ with an auto-typing text. Use command line arguments -qn, -qt or -qf to trigger it.
This feature was used in the Je Suis Charlie edition, and its effect is one of the controversial arguments. Some people did panic because of unusual behavior. However most of the time the true hackers try to keep a low profile. We are not in a Hollywood movie….Enough blabla, here is the usage of Ghost typing:
Syntax: notepad++.exe -qnEasterEggName EasterEggName: the name of an easter egg. Use %20 to replace space character.
notepad++.exe -qtText [-qSpeedX] [-lLang] Text: given text. Use %20 to replace space character.
notepad++.exe -qfContentFilePath [-qSpeedX] [-lLang] ContentFilePath: The path of file, absolute or relative. Use %20 to replace space character in ContentFilePath. The content (in ASCII or Unicode) of the file will be shown.
-qSpeedX: optional, won’t be applied on -qn. Use this flag if you want to control your display speed. X could be 1 (slow), 2 (fast) or 3 (fastest). -lLang : optional, won’t be applied on -qn. It will make ghost typing apply the syntax highlighting of Lang of your choice.
By the request of the community, a built-in Plugins Admin is available in Notepad++ v.7.6. Plugins Admin shows the list of available plugins, allows users to install new plugins and to update/remove installed plugins.
Test your plugins’ installation/update locally For testing your plugin for listing, installation, removal and update under Plugin Admin, you need Notepad++ binary in debug mode 32-bit or 64-bit, the latest version of wingup 32-bit or 64-bit and nppPluginList.json (you should rename it from pl.x64.json or pl.x86.json, according to your plugin’s architecture). Replace notepad++.exe and GUP.exe of your Notepad++ installation by downloaded ones, copy pl.x64.json or pl.x86.json to %PROGRAMDATA%\Notepad++\plugins\Config\nppPluginList.json (or <NPP_INST_DIR>\plugins\Config\nppPluginList.json – see New Plugins Home), then you’re all set – the menu item “Plugin Admin” will be under menu “Plugin” of your debug mode notepad++.exe. Launch this command will launch the Plugin Admin dialog and the rest should be intuitive.
Rules for adding your plugins into list
Architecture: your 32-bits plugin should be added to pl.x86.json, 64-bits plugin should be added to pl.x64.json.
Unicity: the value of “folder-name” of your plugin should be unique in the list. it means if there’s already another same name plugin in the list, you have to rename your plugin’s folder-name (and your plugin). Keep in mind that your plugin binary name (w/o the extension .dll) should be always the same as the folder name, otherwise your plugins won’t be loaded.
Security: the value of “id” is plugin package’s (zip file) fingerprint in SHA-256. This id is checked with the downloaded dll to avoid MITM. You can use Notepad++ to get your plugin’s SHA-256 hash (Menu: Tools->SHA-256>Generate from files… coming soon) or some online sha256 generators.
Update info: the value of “version” is exactly the version of your plugin binary version which you want to be deployed. This version will compare with the installed plugin’s version to decide if an update should be applied. Please check Microsoft’s document about binary version for setting the version correctly onto your DLL.
Download location: the value of “repository” is the URL where Plugin Admin can download the plugin to install/update it.
Packaging: Only zip package is supported. Your plugin (DLL) should have the same name as the “folder-name” and the plugin DLL file should be placed at the root level of the ZIP file. Otherwise, Plugin Admin won’t install it. Any additionals files (dll or data) can be placed at the root level or in an arbitrary subfolder.
Do your PR to join plugin list Once your test has been done, and everything is ok, you can fork and do your PR on: https://github.com/notepad-plus-plus/nppPluginList/. Only the json part you should modify. The JSON file will be built into the binary (nppPluginList.dll), which will be signed (for the sake of security) and be included in the official distribution.
Questions & support Ask your questions here: https://notepad-plus-plus.org/community/topic/16789/support-for-plugins-admin-npppluginlist-round-2