Make workspace (project) & session xml setting files consistent while their file extensions are defined in Preferences dialog:
1. If I specify a session file in the command line (, or if I double-click a session file in the Explorer), not the session file itself is opened, but the session stored in it.
2. If I specify a workspace file in the command line (, or if I double-click a workspace file in the Explorer), not the workspace file itself is opened, but the Project Panel 1 switches to the specified workspace file.
3. If I specify a session file in the `File` menu `Open Ctrl-O`, not the session file itself is opened, but the session stored in it.
4. If I specify a workspace file in the `File` menu `Open Ctrl-O`, not the workspace file itself is opened, but the Project Panel 1 switches to the specified workspace file.
5. If I drag a session file to Npp, not the session file itself is opened, but the session stored in it.
6. If I drag a workspace file to Npp, not the workspace file itself is opened, but the Project Panel 1 switches to the specified workspace file.
That means that once an user extension is defined for these 2 types of file, Notepad++ stores only the session or the workspace but not opens the file itself. The session and workspace setting files are not supposed to be edited manually.
If a defined conflict happens (for example, a non session or workspace setting file with the defined extension), user can always remove the defined extension from Preferences dialog temporarily to open it.
cherry picked from commit 70e746b7a8fe44c9a1e724581ceb3b457138a474
Close#8374, fix#8324
... by using Scintilla's DirectWrite technology.
It allows ligature support if the font needed (for exemple "Fira Code") is installed.
Fix#2287, close#8326Fix#442, fix#675, fix#813, fix#870, fix#1621, fix#3458, fix#4056, fix#4086, fix#4490, fix#8305
Updated according to 924e4b2, 2b345c8, f637901, 2b713fb and 5a95153 commits. Hope nothing missed.
Close#8272
Btw, ``<replace-in-files-confirm-filetype value="For file type :"/>`` is that file type means like ``txt`` or ``type this``?
1. Add file extension automatically while changing file type via combobox in new style dialog.
2. Add file extension automatically for session files and workspace files while saving in new style dialog.
Fix#4876, close#8311, close#8312
Fix Mouse remains in clicked state after resizing docked windows:
The reason for the effect is the mouse hook procedure, which seems to be quite obsolete in contemporary systems: it catches the mouse messages and posts them a second time to the same window. I assume, that was ment to speed up the shifting of the splitters on "prehistoric systems" (That's what you call every system not supporting transparent windows). I see no regression without this hook.
What happens is, the hook catches the WM_LBUTTONUP message and posts it to DockingSplitter::runProc. Here, the hook is released and ReleaseCapture() is called. All fine.
But Windows fails to update its internal key state, when the WM_LBUTTONUP comes as an posted-by-a-hook message. So, if you call GetKeyState(VK_LBUTTON) after ReleaseCapture() in the original code, then it is still in a pressed state. Which confuses the Document Map later.
Fix#8285, close#8286
This PR fixes the following effects:
1. Document map overlay remains visible after minimize to tray.
2. Document map overlay is left behind on current monitor after moving Npp with Windows+Shift+Arrow to another monitor.
3. Document map overlay escapes to another monitor without Npp, when Windows+Shift+Arrow is pressed while the input focus is at the document map.
Fix#1317, close#8280
The current bug: the unconnected network or USB drive while loading a file from it is not detected. As a result Notepad++ opens an empty or uncomplete document.
This commit fix it by not opening anything and showing error box, if file reading fails.
Fix#3381, close#8267
The full story, debated before, is that regular expression searching in a backward direction from the caret position causes matches that the user does not expect. The best thing that was decided to do (group decision) is to fully disable upward searching.
Fix#3640, close#8269
Due to the mysterious reason, change the icon in About box makes application icon display incorrectly (in explorer & on taskbar).
This reverts commit 3a46a6c23d.
I recently went through a bunch of my own source code as well as about half of Mozilla's source code for Firefox. As I found CSS keywords that were not included in Notepad++, I added them locally.
I then merged them with existing keywords, and sorted the combined list alphabetically.
The result is reflected in this pull request.
I hope it helps you and others.
Close#8028
Any setting other than the default setting "for new opened document - UTF8 apply to opened ansi files" will cause C/C++ and other some languages (not for xml though) folding lost on startup.
Fix#4103
"&R" keyboard shortcut for "Replace in Files" is in conflict with one for "Replace", and there's no more available shorcut for "Replace in Files". So let's just remove this useless shortcut.
Fix#3539
Shift the allocation of TreeView item's "lParam" member from TreeView class to the derived class, so "lParam" could be the pointer of anything, not necessary anymore the string pointer.
In the following commit (521ff86665) IDC_FINDNEXT & IDC_FINDPREV are removed from macro record and play. This change broke old macro playing if IDC_FINDNEXT or IDC_FINDPREV was recorded in the macro:
https://community.notepad-plus-plus.org/topic/19011/notepad-v7-8-5-released
Adding IDC_FINDNEXT or IDC_FINDPREV & making them treated as IDOK make fix this broken issue.
This patch adds an active monitor to detect changes on files since Windows isn't honoring FILE_NOTIFY_CHANGE_SIZE or FILE_NOTIFY_CHANGE_LAST_WRITE on ReadDirectoryChangesW correctly if the file writer keep it opened.
This solution is based on GNU tail for Windows does. It does it at
static void tail_forever (struct File_spec *f, int nfiles, double sleep_interval) on tail.c.
Fix#3142, fix#4955, fix#4527, close#7969
If Windows 10 update needs to restart, and Notepad++ has one (some) dirty document(s), and "Enable session snapshot and periodic backup" is not enabled, then WM_ENDSESSION is send with wParam == FALSE, not waiting for WM_QUERYENDSESSION's treatment finish. In this case Notepad++ should quit after saving its current session.
Fix#6086, fix#5831, fix#7854
Regression: Double click a found in files result while Word-Wrap is on, if file hasn't been opened, then file will be opened but Notepad++ doesn't go to the found word position.
Fix#7865, close#7872
If you switch between tabs while wrap mode is enable, text jump to another lines.
It's an old bug, fixed in v7.5.9, but it had performance regression so it was reverted in v6.0.0.
It's been one year, and I'm back.
This works whatever the size of the file.
There isn't any performance regression because we don't use SCI_ENSUREVISIBLE scintilla command.
In case wrap option on, The restore position function is done in **twice** steps.
- First step: set selection, set anchor, set xoffset...
- Second step: once Scintilla has send the notification SCN_PAINTED, we can scroll several lines to set the first visible line to the correct wrapped line.
Keep in mind that Line wrapping is a background activity that takes time, specially for huge file.
Fix#2078, fix#2576, fix#3570, fix#4825, fix#4881, close#7781
Updater's Proxy settings needs Administrator privilege. This enhancement prevents from launching Updater's Proxy settings and displays an explicite message to user if Notepad++ is not in Admin mode.
Close#7779
File association feature under Windows 10 needs the Administrator's preivilege.
This commit add an explicit message to users who want to use this feature, and disable this feature if Notepad++ has no Administrator's preivilege.
Fix#4984, fix#5192, fix#4542
When there are several files to save, the same doSaveOrNot dialog which cotains 5 buttons (Yes, No, Cancel, Yes to All and No to All) is shown. But if there is only one file to save, then it's better to not show Yes to All and No to All buttons to make a consistent user interface.
Fix#7762
Add "commandLineInterpreter" setting in config.xml
No UI to set it, user has to add the fowllowing line into config.xml:
<GUIConfig name="commandLineInterpreter">powershell</GUIConfig>
(Use your shell to replace powershell)
Close#7737, close#7738
The issue:
While running "close all" command the 2nd save dialog is shown for a unsaved cloned doc, but user has repplyed "No" to the unsaved original doc.
This comit make save dialog show once if user's answer is No.
Fix#7523, close#7558
Fix tab dragging issues related to switching off TCS_BUTTONS under multi-line tabs mode (per AngryGamer's suggestions)
Fix#6274, fix#6273, fix#4339, close#6278
The commit fce74dd894 (which reverts 8342da3) does not solve dragging tab problem(#7509), and it made a regression (#3545 is reproduced again).
This reverts commit fce74dd894.
Old behaviour:
While "Close all but This" operation, if user answer Yes or No for some files to Save dialog, then cancel for a file to save dialog, all files will be kept.
New behaviour:
The files for which user has answered for saving will be close, even the cancel answer at the end.
Fix#7553
Description of the Issue
Improve "Close all to the left/right" functionality.
This is an enhancement request. Similar request was made in past #2555, but has been closed during tracker cleanup process.
Steps to Reproduce the Issue
1. Create 4 tabs says (tab 1, tab 2, tab 3, tab 4)
2. Make all the tab dirty (I mean type, something in each tab, but don't save any).
3. Now right click on tab 1 and choose "Close All to the right"
4. Three popup for asking to save file will appear (For tab 4, tab 3 and tab 2)
5. Click "No" for tab 4 and tab 3. And click cancel for tab 2.
Expected Behavior:
After step 5, tab 4 and tab 3 should be closed. And for Remaining tabs, operation should be cancelled.
Actual Behavior:
Nothing happens after step 5.
Same defect reproduction steps are applicable for "Close all to the left".
Fix#7501, close#7502
In the case of backup feature being disabled, if Notepad++ has a modified file, and it is reduced into the nofitication zone, closing Notepad++ via notification zone will trigger doSave dialog, then Notepad++ stuck after closing the dialog.
Fix#7508
Issue is because of Tool window being used instead of normal window for these 2 dialogs- "Close All" and "Rename"
Known issue already discussed on- https://stackoverflow.com/questions/3760571/showdialog-makes-app-window-disappear-from-windows-alt-tab-list
Excerpt from https://docs.microsoft.com/en-us/windows/win32/winmsg/extended-window-styles -
WS_EX_TOOLWINDOW 0x00000080L The window is intended to be used as a floating toolbar. A tool window has a title bar that is shorter than a normal title bar, and the window title is drawn using a smaller font. A tool window does not appear in the taskbar or in the dialog that appears when the user presses ALT+TAB. If a tool window has a system menu, its icon is not displayed on the title bar. However, you can display the system menu by right-clicking or by typing ALT+SPACE.
DS_MODALFRAME is added for "Close All" dialog, because after making it normal window, it started showing default empty windows file icon.
Fix#6244, close#6252
x64 installer set installation path in "C:/Program Files/Notepad++/" but "don't use %APPDATA%" is enabled.
This commit fix this issue (make it disabled)
Fix#6243
Fixed command line parsing logic error.
Root cause:
When you double click a file (where NPP has already replaced original Windows Notepad.exe) command like something like below is generated -
-notepadStyleCmdline -z "C:\WINDOWS\system32\NOTEPAD.EXE" F:\FakePath\PowerEditor\bin\change.log
After processing this command line, final command line is left as " F:\FakePath\PowerEditor\bin\change.log while others are ignored. Notice, quote " here just before the actual file path.
Later on, MS PAI ::PathIsRelative treats it as relative path because of quote " rather considering single file. It is expected too as per input to this API.
Now, notepad++ tries to open all the file from path F:\FakePath\PowerEditor\bin\ (in above case) along with file F:\FakePath\PowerEditor\bin\change.log.
Close#6215, fix#6211