155 Commits

Author SHA1 Message Date
Don Ho
8793825b34 Fix FuncList not refresh correctly due to large files perf improving
Fix #16221 completely
2025-03-07 17:02:20 +01:00
Don Ho
ba3b955a45 Fix syntax hiliting err while switch lang on untitled doc regression
The regression was introduced by commit b2152d983e3b20aed7f687ba1d9e916ae6065b24

Fix #16250, close #16254
2025-03-06 21:39:20 +01:00
Don Ho
83755ca155 Improve folding/unfolding performance for large files
- Use the Scintilla dedicated command SCI_FOLDALL to replace the inefficient loop for "Fold All" command.
- Fix "Fold level" & switching back to large files folding performance.
- Refactoring the hide/show lines functions.

Note that there might be a regression of URL link:
https://github.com/notepad-plus-plus/notepad-plus-plus/pull/16200/files#r1961937279

The commit is based on code of #16064.

Fix #16064, close #16200
2025-02-22 17:23:58 +01:00
xomx
fd2157729a Make other existing Scintilla rendering technology modes accessible
Adding support for other Scintilla rendering modes:
* SC_TECHNOLOGY_DIRECTWRITERETAIN (2)
* SC_TECHNOLOGY_DIRECTWRITEDC (3)
* SC_TECHNOLOGY_DIRECT_WRITE_1 (4)

Fix #16126, close #16201
2025-02-19 18:42:39 +01:00
PeterCJ
4f295de864 Adds SAS programming language support
Enable Sctintilla's SAS lexer, populate langs.model, stylers.model, and themes.
(includes keyword lists from UDLs, notepad4, and SAS documentation)

Fix #16148, close #16183
2025-02-16 15:45:47 +01:00
Don Ho
7ac7f9a0e6 Remove unecessary lines for accelerating switching into large files
ref: #16064
2025-02-14 18:05:41 +01:00
Don Ho
0b98007883 Minor refactoring & rename varibles 2025-02-13 15:12:45 +01:00
Don Ho
5dfc9709c9 Fix a syntax highlighting regression while switching among UDL files
Fix #16154, close #16181
2025-02-13 02:40:38 +01:00
xomx
abbe60e74c Allow using the Scintilla DirectWrite in non-Core Windows Server
Fix #15916, close #15921
2025-02-09 12:28:06 +01:00
Don Ho
b2152d983e Optimize switching programming language performance for large files
Fix #16106, close #16109
2025-02-07 19:39:57 +01:00
Don Ho
6fd3830b42 Add NPPM_ADDSCNMODIFIEDFLAGS to fix regression for Plugins
Add **NPPM_ADDSCNMODIFIEDFLAGS** message for plugins which need the SCN_MODIFIED notification of other events.

BOOL NPPM_ADDSCNMODIFIEDFLAGS(0, unsigned long scnMotifiedFlags2Add)
Add needed SCN_MODIFIED flags so your plugin will recieve the notification SCN_MODIFIED of these events for your specific treatments.
By default, Notepad++ only forwards SCN_MODIFIED with the following 5 flags/events SC_MOD_DELETETEXT | SC_MOD_INSERTTEXT | SC_PERFORMED_UNDO | SC_PERFORMED_REDO | SC_MOD_CHANGEINDICATOR to plugins.
If your plugin need to process other events of SCN_MODIFIED, you should add the flags you need by sending this message to Notepad++, just after recieving NPPN_READY.
wParam: 0 (not used)
lParam[in]: scnMotifiedFlags2Add- Scintilla SCN_MODIFIED flags to add.
Return TRUE

Ref: https://community.notepad-plus-plus.org/topic/26588/notepad-v8-7-6-released/2?_=1738167940554

Fix #16121, close #16120
2025-01-31 18:25:04 +01:00
Don Ho
8042e50b19 Remove unnecessary calls to remedy the plugin issue (regression)
Ref: https://community.notepad-plus-plus.org/topic/26567/notepad-v8-7-6-release-candidate/6?_=1737703232720
2025-01-24 08:18:27 +01:00
Don Ho
e28324b8d0 Fix reload losing syntax highlighting regression
The regression is introduced by:
de9ffd2ea8

Fix #16027, close #16042
2025-01-11 04:48:57 +01:00
rdipardo
9e1db77f81 Fix literals wrong style for server side JavaScript
Add styles for SCE_HJ_TEMPLATELITERAL and SCE_HJA_TEMPLATELITERAL in styles.xml.

Fixes #15821, close #15822
2025-01-09 11:29:05 +01:00
Don Ho
c5dd85cd93 Improve performance: Optimize activateBuffer function
Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/15952#issuecomment-2567521808

Close #16010
2025-01-03 14:08:12 +01:00
Don Ho
de9ffd2ea8 Enhance large files with syntax highlighting performance
Fix #15952, close #15981
2024-12-30 16:06:35 +01:00
Don Ho
2f1cdbbef8 Fix nfo file losing modification issue (regression)
The regression is introduced by:
dd0b557e14 (diff-d88ddee57a027ab23daf332c4778ced0cee352edcb34efdda1b218e8a75c61b2R1864)

Fix #15964, close #15969
2024-12-20 10:58:33 +01:00
Don Ho
dd0b557e14 Fix encoding of nfo file cannot be changed bug
Fix #8823, fix #9153, fix #13905, close #15902
2024-12-03 17:00:53 +01:00
Alan Kilborn
b8224808bd Add ability to open/copy selected files from Search-results
Add ability to open/copy selected files from Search-results, not always ALL files.

Fix #15741, close #15763
2024-11-14 16:01:02 +01:00
Don Ho
ad34461261 Make left behide hide line close marker removable
Fix #15713
2024-10-18 03:57:03 +02:00
Adrian Kulawik
5d2bea5b97 Fix hanging issue while hiding lines
Fix #15630, close #15632
2024-10-18 03:55:50 +02:00
Don Ho
dc9f58ddac Reduce network file hanging issue due to win32API GetFileAttributes cache (unsynchronized).
STR:
1. Open a network file.
2. Close Notepad++ to have it in the session.
3. Disconnect the network, and launch Notepad++ immediately.
4. Around more than 1 minute's delay, then the "Error" dialog displayed.

The reason for the hanging is that the network file was incorrectly detected by doesFileExist (GetFileAttributesEx) as present, leading Notepad++ to attempt opening a non-existent file with _wfopen. This issue seems to stem from a caching mechanism within the IO function (GetFileAttributesEx). When the network disconnects, the cache is not immediately cleared, causing GetFileAttributesEx to falsely report that the file exists. Consequently, when Notepad++ is launched after a network disconnection, GetFileAttributesEx retains its cache, indicating the file exists, while _wfopen fails to locate the network resource, resulting in a hang.

Unfortunately, there's no efficient solution for this problem. The commit's remedy is to check if the file is on the network and whether its directory still exists. If the directory doesn't exist, we avoid calling _wfopen. We verify the directory's existence instead of the file itself because the cache issue with GetFileAttributesEx occurs before _wfopen is executed. Checking the directory avoids the cache problem due to the identical argument being used.

I've tested this remedy in debug mode, and it works fine. However, the problem persists in release mode. Despite this, I believe it's worth keeping this solution, as it provides some protection in a variable network environment, potentially mitigating the issue when it arises.

Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/pull/15658#issuecomment-2386662974

Improve #4306, #6178, #8055, #11388, #12553, #15540, close #15701
2024-10-15 21:27:44 +02:00
Don Ho
fb11abc5c0 Add TOML configuration file format
Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/pull/15564#issuecomment-2305174561

Fix #5631, close #15576
2024-08-26 05:04:06 +02:00
PeterCJ
9e4290094d Add user-defined keyword ability for some supported programming languages
Add new SubStyles and their available keyword lists to specific languages:
- Enable 8 Scintilla's SubStyles (each), which allow for new keyword lists and styles for the languages with SubStyles available: ActionScript, ASP, Bash, C, C++, C#, GDScript, Go, HTML, Java, JavaScript (standalone and embedded), JSP, Lua, PHP, Python, Resource (RC), Swift, TypeScript, and XML.
- The new SubStyles have been added to `langs.model.xml`, `stylers.model.xml`, and the themes, which means users can just use the StyleConfigurator for the SubStyles, just like they do for the original Styles.

Fix #15520, close #15537
2024-08-14 20:01:36 +02:00
Don Ho
bf72b5ec4a Several enhancements for code - part II 2024-08-05 21:22:45 +02:00
Don Ho
88bd09e67d Remove ambiguous symbols (part 7)
Relace TCHAR, generic_string & TEXT("") par wchar_t, wstring & L"" respectively.
Follow up: 94af271

Close #15381
2024-07-01 16:33:00 +02:00
Don Ho
3c897f892a Remove ambiguous symbols (part 5)
Relace TCHAR, generic_string & TEXT("") par wchar_t, wstring & L"" respectively.
Follow up: 94af271

Close #15379
2024-07-01 00:34:44 +02:00
xomx
3c3e7cdadd Fix Encoding "Convert to..." regression
Fix incorrect Clipboard handling. This commit fixes possibly #9426

Fix #15324, fix #15271, fix #3054, close #15346
2024-06-27 14:54:09 +02:00
Don Ho
6b441b738a Prevent DirectWrite from being ON under Windows Sever (Core) 2024-06-21 00:39:24 +02:00
Alan Kilborn
2e116251e2 Fix the Begin/End Select after deletion problem
Fix #15221, close #15278
2024-06-14 15:38:55 +02:00
Alan Kilborn
7a6768b029 Add Backspace unident option
Fix #15180, close #15277
2024-06-13 15:12:22 +02:00
Don Ho
df4e8f5b73 Fix integer overflow issue in Column Editor
Fix #15167, close #15222
2024-06-05 00:58:56 +02:00
cddiffz
0baac8af59 Fix extra space inserted issue with HEX mode in Column Editor
Fix extra space inserted when inserting hexadecimal numbers with Column Editor:
Remove rounding of odd number of digits.

Fix #15168, close #15176
2024-05-22 17:39:34 +02:00
Don Ho
382c33e99a Prevent the division by 0 in getNbDigits function
Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/pull/15152#discussion_r1605845654

Close #15157
2024-05-20 20:26:04 +02:00
cddiffz
d0e3a1a210 Fix crash in Column Editor
Avoid division by zero (due to an arithmetic overflow).

Fix #15144, close #15152
2024-05-19 04:39:55 +02:00
Don Ho
1e19719f8f Fix regression of multi-edit cursors placed wrongly issue
Fix #15126, close #15129
2024-05-12 15:58:22 +02:00
PeterCJ
da5f896de6 Language enhancement: allow custom tags in HTML
HTML Lexer, TAG Style: enable user-defined keywords
Implement and verify @mpheath solution from https://community.notepad-plus-plus.org/topic/25741/html-user-defined-keywords

Fix #15093, close #15094
2024-05-11 03:36:14 +02:00
PeterCJ
161bb41425 Add syntax highlighting for Raku
Based on SciTE, Go/Golang can use cpp lexer.
Use the Perl color scheme from each theme as the basis for the Raku color scheme.

Fix #4465, close #15000
2024-04-16 01:33:40 +02:00
xomx
18815de8ac Fix multi-edit resists escape after typing issue
Add Multi-Edit mode canceling by Esc possibility

Fix #14649, close #14956
2024-04-13 10:31:04 +02:00
PeterCJ
8f24e89824 Add syntax highlighting for Go/Golang
(as done in SciTE, Go/Golang can use cpp lexer)

Fix #8090, close #14966
2024-04-11 17:58:43 +02:00
Don Ho
9251955d10 Support template literal (template strings) in JavaScript
Fix #3822
2024-03-12 04:12:52 +01:00
Don Ho
aa0be9973b Add support for Change History in the text
This commit follows the commit:
fd1f785b89

Close #14838
2024-03-10 05:17:08 +01:00
ozone10
9d92b0a869 Fix some gcc warnings
Fix #14845, close #14846
2024-03-09 03:40:04 +01:00
Christian Grasser
9d09ee818a Fix a potential undefined behaviour & improve some codes
- init grabSize
- optimize WcharMbcsConvertor instance set
- remove unused var in TreeView::searchLeafRecusivelyAndBuildTree()
- missing nullpointer check in ScintillaEditView::init()

Close #14844
2024-03-08 21:00:17 +01:00
mpheath
fd1f785b89 Add Change History colour configuration
Fix #12321, fix #13915, close #14819
2024-03-06 15:48:15 +01:00
Don Ho
35deb8a303 Make "Prevent C0 input" feature optional 2024-02-29 17:51:27 +01:00
Alan Kilborn
40adc38201 Prevent typing control characters into document
Fix #13279, close #14766
2024-02-28 17:01:23 +01:00
Don Ho
d83d4c9239 Fix plugins not recieving some Scintilla notification types regression
Remove the restriction for Scintilla notification types for plugins.

Ref: https://community.notepad-plus-plus.org/topic/25497/notepad-release-8-6-4/9
2024-02-22 17:22:54 +01:00
Don Ho
827b08f6ff Fix regression that the view cannot be activated by mouse clicking
SCI_SETCOMMANDEVENTS cannot be set to false, because SCEN_SETFOCUS is being used by Notepad++

The regression was introduced by commit: 044296eea1

Fix https://community.notepad-plus-plus.org/topic/25490/notepad-release-8-6-3/7?_=1708380779619
2024-02-19 23:27:48 +01:00
Don Ho
f2d66170fc Restore multi-editing option on GUI
Make also Column To Multi-editing optional on GUI and cancel the usage of noColumnToMultiSelect.xml file.
For users who have added "noColumnToMultiSelect.xml" for disabling "Column To Multi-editing" feature,
please go to "Editing 2" section of Preferences to disable this feature.

Ref: https://community.notepad-plus-plus.org/topic/25364/notepad-v8-6-2-release/11?_=1707952609907
Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/14611#issuecomment-1937487607

Fix #14645, close #14734
2024-02-15 18:27:48 +01:00