301 Commits

Author SHA1 Message Date
Don Ho
a51e62c16d Fix cloned (modified & unsaved) document disassociated issue after Npp being relaunched
The bug has been fixed in v8.5.7 by PR #14003.
However the fix causes a regression #14164, the concerning commit is reverted.
Hence this fix.

Fix #10266, fix #10365
2023-12-05 04:55:49 +01:00
Don Ho
6f2e5d272c Revert "Fix cloned document disassociated issue after Npp being relaunched"
This reverts commit f4297f1a837c93e09962715c40ba932567d46aa2 for fixing regression of not restoring coloned document position.

Fix #14164
2023-12-05 04:36:10 +01:00
Don Ho
2724e0ddbb Make RTL per document & remembered across the sessions
This commit adds the ability of RTL/LTR per document (tab), and memorizes RTL setting of each file in the session.xml.

It also adds an attribute "editZoneRTL" in localization XML file. if "RTL" attribute is present and its value is "yes", then user can add  "editZoneRTL" attribute beside, and set the value of the attribute in question to "no", so Notepad++ GUI will be RTL, but Scintilla zone will be LTR by opening files.  Of course, user can set any direction they want afterward, and what they have set on document will be remembered across the sessions.

Fix #9665, fix #9950, fix #14385, close #14431
2023-12-02 17:49:09 +01:00
Don Ho
dd6140f8c0 Fix bugs for remembering inaccessible file of past session (placeholder)
Fix #14271, fix #14272, fix #14273
2023-10-27 17:31:21 +02:00
xomx
72c5175b33 Fix missing session invalid error for user session & enhance NPPM_GETNBSESSIONFILES
New specs of NPPM_GETNBSESSIONFILES (which is retro-compatible):

======================
NPPM_GETNBSESSIONFILES

Retrieves the number of files to load in the session sessionFileName. sessionFileName should be a full path name of an xml file.

Parameters:

wParam [out]
BOOL* isValidXML, if this pointer is null, then this parameter will be ignored. TRUE if XML is valid, otherwise FALSE.

lParam [in]
const TCHAR * sessionFileName

Return value:
Returns 0 if sessionFileName is an empty string/NULL, or XML session file is corrupted/invalid, else the number of files.
======================

Other minor improvements:
- checking also for a possible ShellExecute errors
- removing the isAllSuccessful boolean, as it is no longer needed.

Fix #14228, close #14232
2023-10-23 01:09:58 +02:00
Don Ho
08794510be Make session inaccessible files remembered (part 2/2)
Following the commit: 4248c2ae22e07a030c9dd0684de1fd38125e9dfd

If the user enables the option "Remember inaccessible files from past session" (disabled by default), and an opened session (the default session "session.xml" or a user session) contains one or several inaccessible files, a message dialog will appear, giving the user the choice to open or not open the placeholders. If the user chooses to open them, empty and read-only documents will be opened as placeholders for these inaccessible files.

Fix #12079, fix #12744, fix #13696, close #14252
2023-10-23 00:07:00 +02:00
molsonkiko
4248c2ae22 Make session inaccessible files remembered (part 1/2)
Add the ability of "placrholders" (the empty document) for the inaccessible files of past session.

The inaccessible files from the current (default) session (i.e., session.xml) will not be lost in the next startup of Notepad++.
Furthermore, if file status detection is enabled in Notepad++ (default setting: ON), and the previously inaccessible files become accessible again (e.g., USB drive is inserted or network drive is remounted), the resurrected files can be reloaded on-the-fly without restarting Notepad++. The user will be prompted to reload if the placeholder is switched in.

Fix #12079, fix #12744, fix #13696, close #14168
2023-10-23 00:00:01 +02:00
xomx
bbbf3e8dfc Fix empty message showing while cancelling session file saving dialog
Fix #14235, close #14237
2023-10-18 16:05:58 +02:00
Don Ho
8e43b0adba Fix user created session modified in multiInst mode
ref:
https://github.com/notepad-plus-plus/notepad-plus-plus/issues/12079#issuecomment-1763399514
2023-10-15 18:00:38 +02:00
Don Ho
85d5f972a8 Do not modify user created session even for inaccessible files
Fix partially #12079
2023-10-13 18:17:54 +02:00
Don Ho
e30ee852d6 Fix data loss issue due to no room on disk for saving
Fix #5664, fix #14089, close #14134
2023-09-12 14:50:52 +02:00
molsonkiko
f4297f1a83 Fix cloned document disassociated issue after Npp being relaunched
Fix #10266, close #14003
2023-08-24 23:55:40 +02:00
Don Ho
fc736d8afb Fix activating wrong file(s) issue after loading session file
... if some files are already opened in Notepad++.

Fix #14006, close #14028
2023-08-20 15:52:53 +02:00
Don Ho
391f4281ef Fix leading & tailling spaces being allowed after renaming tab issue
Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/13344#issuecomment-1665687932

Fix #13967, close #13967
2023-08-05 18:59:30 +02:00
Don Ho
d9b98681f4 Add change history navgation commands
Add Go to next/prev change & clear change history commands.

Fix #12248, close #13861
2023-07-07 21:44:04 +02:00
ozone10
a647991cd7 Fix some GCC and MSC warnings
-  optimize dark mode
-  add initializers

Fix #13867, close #13868
2023-07-07 19:51:39 +02:00
Don Ho
83d203561d Fix Change History wrong display after "Reload from Disk" command
The code for fixing is from Change Lines plugin:
https://github.com/vinsworldcom/nppChangedLines/blob/main/PluginDefinition.cpp

Fix #12319, fix #12261, fix #13735, close #13858
2023-07-04 03:12:01 +02:00
Don Ho
51bddf57ad Use multiple-files Save dialog in Document list
Fix #13768, fix #13178, close #13776
2023-06-17 13:24:13 +02:00
Don Ho
d2fdfd7b73 Fix defective detection for file read-only attribute removal via Explorer
The regression has been made by 5e2f5d79aa8325a3db9c3b811d80e9b7ce42b51c

Fix #13742
2023-06-17 13:24:13 +02:00
Don Ho
e61b20a7fe Small refactoring 2023-06-11 00:59:15 +02:00
Don Ho
dba15cfaf3 Fix document language not remembered through sessions issue
Fix document language not remembered through sessions due to languange being hidden from languages menu.

Fix #13743, close #13744
2023-06-06 02:07:19 +02:00
ozone10
052626ca99 GUI Enhancement: User Define dlgs
- main dlg shared part - tab focus reorder
- string dlg (User language name, New tab name) - make edit ctrl larger
- remove obsolete style
- add initializer
- fix override warnings
- optimize dark mode
- make translation consistent between source code and english lang xml files

Fix #13615, close #13616
2023-05-07 05:50:58 +02:00
ArkadiuszMichalski
a689635037 Make "Cannot open file" message translatable
Fix #13175, close #13190
2023-02-24 00:49:49 +01:00
Alan Kilborn
5e2f5d79aa Code enhancement: correct parameter error to call of doOpen
Fix #13150, close #13158
2023-02-20 23:21:59 +01:00
ozone10
37963ea21a Apply tab colors to document list items
and add groups to document list.

Fix #12155, fix #12689, cllose #13080
2023-02-14 14:15:13 +01:00
Alan Kilborn
0d9b16634d Fix Synch H/V Scrolling commands not sync with 2 views
Fix #5250, fix #13071, close #13069
2023-02-08 01:59:21 +01:00
Don Ho
6140865351 Use wide char version's function directely (part2)
ref: https://github.com/notepad-plus-plus/notepad-plus-plus/pull/12613#discussion_r1045153278
2023-01-19 04:12:29 +01:00
Don Ho
3ee8660c23 Replace N++ by Notepad++ and fix some typos
Fix also function "getWinVersionStr" not returning "Windows 11":
https://github.com/notepad-plus-plus/notepad-plus-plus/pull/12722#discussion_r1058510340

Fix #12708, fix #12709
2022-12-29 15:38:20 +01:00
xomx
4f1aa7b004 Fix crash on Win32 Namespace prefixed file name
Implement support for Win32 Namespace prefixed file name in Notepad++.
(Ref: https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#win32-file-namespaces)

Support the Win32-filenames escaped by \\?\ or \\?\UNC\, possible globbing in filenames (\\?\C:\fil?.txt) and shell links (\\?\C:\file.txt.lnk) included.

Unsupported (temporarily - it needs further patches for Notepad++):
- any raw filename with length exceeding the MAX_PATH.
- any nonstandard Windows OS filename: with 'dot' or 'space' char(s) at the name end, WinOS reserved ones: AUX, CON, PRN, NUL, COM1-9, LPT1-9 and the ones with invalid ASCII chars in it (0-31, <, >, | , ").

Fix #12453, close #12613
2022-12-14 15:02:04 +01:00
Don Ho
8ff003412a Make large file limit (for styling) configurable
Background: because styling large file can cause the performance issue, 200 MB (and bigger) file is not applied to its language (if any) while loading.
This PR makes large file restriction for styling and for other features (smart highlighting, brace match, etc...) configurable via the section Performance of Preferences dialog.

Fix #11389, fix #12260, fix #11670, close #12310
2022-10-15 18:18:06 +02:00
Chukwudumebi Smarty
dfa6c19d87 Make ESC Key abort "Move to Recycle Bin" confirmation prompt
Fix #12117, close #12239
2022-09-29 16:49:53 +02:00
ozone10
b29a9ce142 Code enhancement - removing gcc warning
Fix conversion-null, nonnull-compare, dangling-else, address warnings, add initializers.

Fix #12198, close #12199
2022-09-20 16:19:58 +02:00
spaxio
42d863dd9f Add setting colour ability for individual tab
Fix #2271, close #12098
2022-09-11 17:07:11 +02:00
Don Ho
13350a3d29 Fix minor error 2022-07-24 05:34:26 +02:00
Don Ho
f69a9093f9 Fix x64 build error 2022-06-14 15:39:10 +02:00
Don Ho
d0b2a9ff9d Skip save all warning dialg if only current editing file is dirty
Here is the behaviour of this commit:
1. If there's only one file dirty, and it's current editing one, then SaveAll dialog won't display.
2. If there's only one file dirty, and it's NOT current editing one, then SaveAll dialog WILL display.
3. If there's 1 editing file which is dirty, and its clone (dirty also) is on the other view, then SaveAll dialog WILL display.

Fix #10995
2022-06-14 02:52:52 +02:00
Don Ho
10f48e36ad Fix typos 2022-05-19 19:32:35 +02:00
Don Ho
9cc01de97c Fix "Reload from disk" loosing syntax highlighting regression
In Scintilla4 reloaded document keeps its syntax highlighting without re-applying the lexer for its syntax highlighting.
It seems the behaviour has been changed in Scintilla5. Hence this workaround to force to apply syntax highlighting after reloading.

Fix #11606, close #11610
2022-04-29 19:44:54 +02:00
Don Ho
252468c29b Revert "Remove the external lexer support"
This reverts commit 41a5bf0245b53e74186e49a21adec2c518587b5c.
2022-04-01 19:17:18 +02:00
Don Ho
41a5bf0245 Remove the external lexer support
SCI_LOADLEXERLIBRARY has been removed since Scintilla 5,
and I belive that Scintilla won't support it anymore:
https://sourceforge.net/p/scintilla/bugs/2236/

Close #11451
2022-03-30 18:52:47 +02:00
Don Ho
785453147b Inialize all memebers of struct (instead of its 1st member) to zero
The curly brace initiator in C/C++ is quite confusing (at least to me).
The C style array uses {0} for initializing all the array to 0,
whereas C++ struct uses {0} for initializing only the 1st member's value to 0.
If we want to set all members' value in a struct to 0, we should use {} instread of {0}.

This commit fix the error which initialize only the 1st member's value to 0 in the structures.

Ref:
1. https://docs.microsoft.com/en-us/cpp/cpp/initializing-classes-and-structs-without-constructors-cpp?view=msvc-170
2. https://en.cppreference.com/w/c/language/struct_initialization
2022-02-09 16:41:56 +01:00
Don Ho
44004d41d4 Enhance large file loading: disable 4 features for large files
Dur to the performaance issue, the loading of large files will disable automatically the following feature:
1. auto-completion (only for large files)
2. snapshot periode backup (only for large files)
3. backup on save (only for large files)
4. word wrap (persistent for all files. Need to enable it manually)

Ref: https://community.notepad-plus-plus.org/topic/22438/notepad-v8-2-2-release-candidate/6?_=1643194615292

Fix #8802
2022-01-27 16:12:50 +01:00
Don Ho
44c9a0561b Fix "Save As" command cannot be used as "Save" issue
If user tries to save a existing file as file itself by using "Save As" command,
then he/she chooses the same file from the Save As file dialog,
* old wrong behaviour: "Save As" action is rejected with the message "The file is already opened in Notepad++".
* new correct behaviour: "Save As" action is allowed.

Fix #10965, close #11008
2022-01-07 21:04:10 +01:00
Rajendra Singh
23b2a3fa8e Fix Recent Files List not revised issue after "Save As" command
Fix #10946, close #10994
2022-01-04 23:41:29 +01:00
Don Ho
c0989d472c Enlarge your name field size!
Rename current tab & Rename User Language name could be up to 63 characters now!
(Before this implementation the limit size is about 20 characters)

Fix #10961, fix #9849, close
2021-12-29 16:00:55 +01:00
Don Ho
a16930fffe Add auto save loaded session on exit feature
This new feature works only if Multi-instance settings is NOT set to "Default (Mono-instance)".

Fix #1646, fix #3241, fix #3574, fix #4228, close #10935
2021-12-24 17:32:08 +01:00
Don Ho
b5d646b4cd Add exclude folder(s) capacity in Find in Files
This PR allows users to provide the list of excluding folder names/patterns in "Filters" field.
Eclusion operator is alway "!" at the begining. In order to distinguish folder from file, "\" should be used as prefix of the folder name/pattern, following "!". That allows the exclusion of the directories under the root directory you want to search (the 1st level of matched directories).

If users need to exclude folders with the same name (or names matched the specific pattern) in all levels, the + should be put between "!" and "\" to exclude them recursively.

Here is a sample:
Filters: *.* !\bin !+\test !+\log*
Directory: c:\myProject\

So the excluded directories could be:

    c:\myProject\bin\
    c:\myProject\log\
    c:\myProject\logs\
    c:\myProject\src\log4j\
    c:\myProject\test\
    c:\myProject\src\test\

The following directories will not be excluded:

    c:\myProject\foo\tests\
    c:\myProject\foo\bin\

Note that "inclusion of folder" is not allowed, and such pattern will be ignored.

Fix #2433, fix #8350, close #10927
2021-12-21 18:39:22 +01:00
Don Ho
e5a800722b Make code more sanitary
Fix some vulnerable codes detected by VS's analyzing.

Close #10541
2021-09-12 18:50:30 +02:00
mere-human
55f2644953 Fix regression: no error message when locked file could not be saved
Show file locked warning.
This is a regression from commit 469fa62c0ebc438c8003c735e6a801c6d098df7c

Fix #9994, close #10487
2021-09-03 14:18:53 +02:00
Don Ho
deab93f9b5 Make "Confirm Save All" dialog more clear
Use "Always Yes" button instead of "Cancel", and whole dialog is translatble.

Fix #10339, close #10429
2021-08-25 16:31:51 +02:00