Several UDL xml files can be loaded to allow to manage/share UDL more easily.
1. The old file userDefineLang.xml is kept in its old location and is still used.
2. The new folder userDefineLangs is added beside of the old UDL default file. Any UDL xml file can go into the folder userDefineLangs and will be loaded as UDL.
3. A UDL xml file must contain one (or several) user defined language(s).
4. The created UDL via UDL dialog and imported UDL are saved in userDefineLang.xml (default UDL file).
https://notepad-plus-plus.org/community/topic/17072/new-enhancement-for-user-defined-language-system
Unexpect behaviour: if "<NppDir>\...dll" and/or "<NppDir>\plugins\..dll" exist, they will be loaded because Notepad++ try to load "<NppDir>\pluginName\pluginName.dll" as plugin, in our case "<NppDir>\plugins\..\...dll" and "<NppDir>\plugins\.\..dll" respectively.
The fix is excluding both directories ".." & "." to not load mentionned above unwanted dll.
Loading plugin list location is changed from %LOCALAPPDATA%\Notepad++\plugins\Config\ to
%PROGRAMDATA%\Notepad++\plugins\Config\
Enhance API NPPM_GETPLUGINSCONFIGDIR
While plugins are in %PROGRAMDATA%, we need admin's rights to modify them. This PR detects the plugins installation in %PROGRAMDATA%, then launch wingup with UAC.
The new message NPPM_GETPLUGINHOMEPATH allows plugins to get plugin home root path. It's useful if plugins want to get its own path by appending <pluginFolderName> which is the name of plugin without extension part.
Simply plugins loading emplacement:
NPPM_GETAPPDATAPLUGINSALLOWED to check to see if loading plugins from "%APPDATA%\..\Local\Notepad++\plugins" is allowed.
If doLocalConf no
else yes
1. Load plugins only from the new plugin folder structure. example: Notepad++\plugins\myAwesomePlugin\myAwesomePlugin.dll
2. Load plugins from only one directory. If doLocalConf.xml is present, then it will be <NPP_INSTALLATION_DIR>\plugins\
otherwise %USERPROFILE%\AppData\Local\Notepad++\plugins\
Short problem description:
Drag/drop a tab with the mouse to another position,
then all other tabs can't be activated with clicking anymore.
Also a missing include was added, that prevented compilation
Fix#4885, close#4886
As a follow up to my previous pull request, this PR fixes the last remaining improper format specifiers. This allows to remove /Wv:18 compilation flag completely, since (presumably) the only reason it was added in the first place were those format specifier warnings, introduced in VS2015.
Effectively, all this PR does is applying fixes suggested by the compiler (included in those warnings).
Close#4604
Make Updater run sync for removing & restoring plugin info from & to the
plugin lists while the Plugin Admin's operation of installation, update and removal.
This changes the line operations "Sort as Integers Ascending" and "Sort as Integers Descending" to sort by Natural Sort Order, in which consecutive numerals are considered as one character. This causes "2" < "10", just like in the old Integer sort, but also "foo 2" < "foo 10", which was not previously available functionality. In cases where every line is a single integer, Natural Sort functions exactly the same as Integer Sort; when every line begins with a single integer, it is a valid Integer Sort.
Close#4413, fix#2025
in the same time issue
Fix Unicode file name comparision to match Windows behaviour (as opposed to doing a linguistic filename comparision)
Fixes#3820, closes#4141
The Access Violation while closing Notepad++:
https://github.com/notepad-plus-plus/notepad-plus-plus/issues/3961
could be due to SCN_UPDATEUI sending after NPPN_SHUTDOWN, that makes
plugins treat SCN_UPDATEUI on the released handle.
To avoid such situation, once NPPN_SHUTDOWN has been sent, no more
message will be sent to plugin.
Fixes#3961, fixes#4021
V746 Object slicing. An exception should be caught by reference rather than by value. filedialog.cpp 183
V746 Object slicing. An exception should be caught by reference rather than by value. nppbigswitch.cpp 110
V746 Object slicing. An exception should be caught by reference rather than by value. pluginsmanager.cpp 259
Load plugin only when plugin name match to plugin folder name.
For example: "NppPluginDemo.dll" can be loaded only when it in the
folder named "NppPluginDemo".
An issue has been found by using PVS-Studio analyzer.
Analyzer warning: V501 There are identical sub-expressions to the left
and to the right of the '!=' operator: subject != subject.
Closes#3399
It seems REBARBANDINFO.cbSize initialization logic got broken after
migration to VS 2013 (last working version - 6.6.9)
That leads to various problems related to toolbar logic (like missing
chevron - #3385 or incorrect plugin toolbar placement #3094)
Closes#3386, fixes#3385, fixes#3094
winmain: move local functions to anonymous namespace
winmain: remove redundant static keyword
winmain: add newline at the end of file
winmain: move UAC related code to anonymous function
winmain: declare MSGFLT_ADD/MSGFLT_ALLOW only if not already defined
winmain: check only for emptiness
parameters: move winKeyDefs & scintKeyDefs & PGNSI to anonymous names
parameters: remove redundant static/inline keywords
misc: remove unused source code
Closes#3030
- corrections for interface of bufferID, as x64 requires usage of UINT_PTR aka WPARAM instead of INT
- used new EolType instead of formatType
- removed commented NPPM_ADDREBAR, NPPM_UPDATEREBAR, NPPM_REMOVEREBAR not available in n++ code
- corrected typos
Closes#2920
Fixed block uncomment in undoStreamComment func, new argument.
tryBlockComment is to avoid loop call.
Fixed typo in doStreamComment func.
Fixes#1200, fixes#1714, fixes#2125, fixes#2854, closes#2875
1. GetLastErrorAsString is moved from PluginsManager.cpp to Common.h and common.cpp and also function signature is changed
2. Below method were already defined in common.cpp, but not declared in common.h
generic_string intToString(int val);
generic_string uintToString(unsigned int val);
3. Updated RunDlg.cpp to show error if ShellExecute fails
Closes#2626, Fixes#2179