235 Commits

Author SHA1 Message Date
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
Don Ho
7c82c523b6 Add "Switch to Document List" command for shortcut
Fix #9015
2021-07-26 19:07:38 +02:00
mere-human
a0472fd7f2 Use current file directory in File Rename dialog
and fix "Remember last used directory" unexpected behaviour.

Fix #10095, fix #10115, close #10100
2021-07-06 16:05:20 +02:00
Ashfaaq18
80c285ee2d Add a Save all confirm dialog
and add also an option in Preferences dialog to enable or diable the dialog.

Fix #2124, fix #9931, close #9968
2021-07-06 03:56:29 +02:00
mere-human
6a4ef408f2 Fix GCC compiler warnings in Notepad++
Fix #10037, close #10048
2021-06-23 12:49:06 +02:00
Don HO
15b7a26c87 Remove unecessary const type qualifier 2021-04-16 02:37:05 +02:00
mere-human
e3dbeda4c9 Add "Append extension" checkbox to Save As dialog
Add "Append extension" checkbox to Save As dialog for replacing option "Save dialog file extension filter to *.*" in Preferences dialog.

Fix #9515, close #9732
2021-04-16 01:27:32 +02:00
Scott Sumner
f308539abe SaveAs moves original path to recent files history
Fix #9673, close #9678
2021-03-26 14:00:01 +01:00
Don HO
dbac42edd0
Use unary operator '!' instead of "not" 2021-02-20 04:44:34 +01:00
mere-human
e7079d57c6
Enhance FileDialog for allowing UNIX stile file path
And use modern CustomFileDialog istead of old FileDialog in Notepad++.

In the file dialog, override window procedure for "OK" button and
file name edit box to check for input.
Transform forward slash file name to a Window path after input.

Fix #9374, close #9403
2021-01-26 18:52:15 +01:00
Don HO
ab5c1d3e2a
Upgrade Notepad++ License
Update GPL version from v2 to v3.

Fix #9425, close #9441
2021-01-24 01:51:19 +01:00
Pavel Nedev
ce0012ab5c
Fix possible empty snapshot session on Windows reboot/shutdown
Save snapshot session immediately when needed (without incuring delay by using ::PostMessage).

Fix #7839 and latest user reported problems in #6133.
Close #9427
2021-01-20 19:25:16 +01:00
Don HO
3bf17ec697
Fix build error in MinGW
and fix a misuse of CopyFileEx function.
2021-01-20 04:55:42 +01:00
Don HO
051b17ca44
Enhance copy/move file Win32API functions to avoid system cach
Suggestion from:
https://github.com/d0vgan/nppexec/issues/29#issuecomment-761830889
2021-01-19 04:05:54 +01:00
mere-human
41c4180b2e
Make "Save Folder as Workspace" in Save Session dialog translatable
Fix #9375, close #9383
2021-01-12 00:36:15 +01:00
Scott Sumner
d5ad02521e
Improve option for setting save dialog filter to All Types
Fix #9325, close #9328
2021-01-08 04:34:23 +01:00
mere-human
b9f498f041
Add "save Folder as Workspace in session" option in save session dialog
Save FileBrowser root folders if it is visible.
When loading a session file (from menu or via the command line),
launch a FileBrowser from scratch and add folders from the file to it.
When loading an auto-saved session, ignore saved FileBrowser folders.

Store roots and selected item of FileBrowser in a Session class.

Add "FileBrowser" node to session XML.
It containts "latestSelectedItem" attribute and "root" child nodes.
This structure corresponds to the one from "config.xml".

Current save session behavior for Folder as Workspace (FaW) is like this:
1. FaW isn't opened, checkbox is greyed-out -> FaW info is not saved in session
2. FaW is opened, checkbox isn't checked -> FaW info isn't saved in session
3. FaW is opened, checkbox is checked -> FaW info is saved in session

Load session behavior:
1. FaW isn't open, session without FaW info -> FaW isn't shown after loading
2. FaW isn't open, session with FaW info -> FaW is shown after loading
3. FaW is open, session without FaW info -> FaW is kept as is without changes
4. FaW is open, session with FaW info -> FaW is shown with new directories from session

Fix #9165, close #9286
2021-01-08 00:02:52 +01:00