105 Commits

Author SHA1 Message Date
Don Ho
044296eea1 Fix Replace All crash & performance issue
Fix  #14630, close #14685
2024-02-08 02:20:57 +01:00
Don Ho
f7c44b4413 Restore Shift-DEL, Ctrl-INS and Shift-INS & fix Ctrl+V can't paste into the text fields of forms for certain plugins
This PR restores shortcuts Shift-DEL, Ctrl-INS and Shift-INS for Cut / Copy / Paste respectively.
the action to delete entire line without selection is removed in this PR due to its shortcut Shift-DEL has triggered several critical issues.

To delete entire line, the users are encouraged to use Scintilla default shortcuts set in Shortcut Mapper: Ctrl-Shift-L (SCI_LINEDELETE). User can remap it to another shortcut via Shortcut mapper.

Fix #14568, fix #14470, fix #14571, close #14557, close #14569
2024-01-11 05:34:55 +01:00
Don Ho
dc6f6d1103 Fix deleting in column mode also delete an unexpected EOL
Fix #14426, close #14536
2024-01-03 06:16:54 +01:00
Don Ho
4bde0d4b53 Fix incorrect code
ref: 8ae049afbc (r135905629)

And also add new entries to tabContextMenu_example.xml
2023-12-30 03:53:47 +01:00
Don Ho
8ae049afbc Use 64-bit positions instead of 32-bit obsolete ones
ref: https://github.com/notepad-plus-plus/notepad-plus-plus/pull/14359/files#r1437502252
2023-12-29 02:56:37 +01:00
Don Ho
3c4f0f9cb2 Make line copy/cut/delete while no selection optional
By adding disableLineCopyCutDelete.xml in "%APPDATA%\Notepad++\" directory (or in the Notepad++ installed directory in portable mode) to:
1. prevent hard coded Shift-DEL shortcut deletes whole line while no selection.
2. prevent Copy command (Ctrl-C) copies whole line (without selection).
3. prevent Cut command (Ctrl-X) cuts whole line (without selection).
4. add SCI_CUT (Shift-DEL), SCI_COPY (Ctrl-INS) & SCI_PASTE (Shift-INS) shortcuts

Note: the old disableHardCodedShiftDelete.xml (of 53b5055118caa5934b535c5521f04f991c13143b) is canceled, the new disableLineCopyCutDelete.xml is used instead.

Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/14296#issuecomment-1866679990
Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/14401#issuecomment-1833326429

Close #14513
2023-12-23 04:45:09 +01:00
Don Ho
53b5055118 Make hard-coded shortcut "Shift-DEL" be abled to be disabled
In order to disable the hard-coded shortcut "Shift-DEL" ability (new feature introduced in v8.6) which delete current line while no selection, users must add an empty file named "disableHardCodedShiftDelete.xml", in "%APPDATA%\Notepad++\" directory (or in the Notepad++ installed directory in portable mode) to prevent this behaviour.

Fix #14470, close #14481
2023-12-14 16:58:12 +01:00
Don Ho
aef0438180 Make column to multi-select be abled to be disabled
In order to disable the "Column to multi-select" ability (new feature introduced in v8.6), users must add an empty file named "noColumnToMultiSelect.xml", in "%APPDATA%\Notepad++\" directory (or in the Notepad++ installed directory in portable mode) to prevent this behaviour.

ref: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/14296#issuecomment-1848076816

Fix #14464, close #14476
2023-12-13 03:25:33 +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
0978b2e29f Fix visual glichy on multi-paste
This PR removes Shift-DEL Ctrl-INS & Shift-INS shortcut from Scintilla.
Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/14401#issuecomment-1830302635

Now for Copy/Cut/Paste commands and their shortcut are coherent. ie. if user remaps the shortcuts of these 3 commands, both single/multiple selection operation with the commands in question will follow the changed shortcuts.

It also fixes 2 bugs:
1. visual glitch problem of read-only while multi-pasting.
2. the shortcut **Ctrl-C** in Search results works now.

Fix #14410, close #14423
2023-11-29 23:21:11 +01:00
Don Ho
7deb12aeed Enable Copy & Cut commands on menu all the time
Before the implementation of e9c50ed967,
Copy & Cut command were disabled when there were no selection, which makes sense because there was nothing to be copied & cut.
Now users can copy/cut current line without selection.

Fix #14401, close #14415
2023-11-28 15:10:51 +01:00
Don Ho
9bc790b014 Prevent Direct Write being set if user uses RTL
Ref: 975d29b30b (commitcomment-132946815)

Close #14374
2023-11-22 02:06:01 +01:00
Don Ho
c62e222985 Fix Multi-edit DEL keystroke delete part of Unicode character
Fix https://community.notepad-plus-plus.org/topic/25150/notepad-v8-6-release-candidate/5?_=1700578401627
2023-11-22 00:17:26 +01:00
Don Ho
0917875034 Make all SCI_SETELEMENTCOLOUR message use 32 bits color 2023-11-20 04:59:40 +01:00
Don Ho
b24734df8f Fix backspace keystroke not working for multi-editing
Fix https://github.com/notepad-plus-plus/notepad-plus-plus/pull/14359#issuecomment-1815898951
2023-11-18 20:24:20 +01:00
Don Ho
975d29b30b Enable Direct Write Technology in Scintilla by default
And disable Direct Write under WINE, due to the performance issue.
Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/8510
2023-11-18 19:22:59 +01:00
Don Ho
c517985beb Fix DELETE key not working in multi-editing for EOL
Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/pull/14338#issuecomment-1813006657

Close #14359
2023-11-16 18:31:00 +01:00
Don Ho
3e7425f6b1 Fix a typo 2023-11-16 05:29:24 +01:00
Don Ho
1764758669 Enhance multi-edit paste and Enter key type
Also disable auto-indent during multi-editing.

Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/pull/14338#issuecomment-1809045648

Close #14355
2023-11-15 15:37:34 +01:00
Don Ho
812745d850 Make multi-select background & caret colour customizable
Fix #14302, close #14350
2023-11-14 05:40:08 +01:00
Don Ho
4ff9d77d2b Make multi-select Copy/Paste behaviour as same as column edit's one
Copy some multi-select texts and paste them make all text glued all together.
This commit makes pasted texts separated by EOL, as column selection's Copy/Paste behaviour.

Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/14266#issuecomment-1799203336

Close #14338
2023-11-11 00:04:36 +01:00
Don Ho
1fafd0dc0b Fix hasSelection wrongly detected
Fix #14322, close #14330
2023-11-07 03:26:14 +01:00
Don Ho
2fb8d7fc77 Fix the shortcut bug (a regression) in commit e9c50ed
Ref: e9c50ed967 (commitcomment-131870570)
2023-11-07 03:17:01 +01:00
Don Ho
e9c50ed967 Add 3 line operation (delete, copy & cut) shortcuts
* Shift-Delete: without selected text, it will delete the whole line.
* Ctrl-C: without selected text, it will copy the whole line.
* Ctrl-X: without selected text, it will cut the whole line.

Fix #14296, close #14298
2023-11-06 20:58:20 +01:00
Don Ho
b5730eea31 Multi-edit enhancement: column mode to multi-edit on HOME/END/Arrow keys
This feature transforms a rectangular selection to multiple edit mode, so it's manipulatable with HOME, END and Arrow keys without loosing the set carets.

Related issue: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/8203

Fix #14266, close #14313
2023-11-06 13:43:53 +01:00
Don Ho
cab4d40b3f Add multi-select commands
Add "Multi-select All" & "Multi-select Next" for 4 modes to multi-select the occurrences respectively:
1. Match Case Only
2. Match Whole Word Only
3. Match Case & Whole Word
4. Ignore Case & Whole Word

Add also 2 commands "Undo the Latest Added Multi-Select" & "Skip Current && Go to Next Multi-select" for undoing latest added slection & skipping current selection and do the next one.

Users can asign the shortcuts to these 10 commands so multi-occurrence can be easily selected via shortcuts and be modified silmutanously.

This feature is inspired by: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/8203#issuecomment-623712205

Fix #8203, close #14295
2023-11-01 03:40:54 +01:00
Adrian Kulawik
4ba92b04ec Fix "Hide lines" command hiding unselected lines issue
To solve this issue, lambda removeMarker can be set to only remove just begin or end marker. By doing so, the process of merging adjacent hidden sections is limited and as a result, lines that shouldn't be hidden remain visible.

Fix #14166, close #14167
2023-10-29 15:40:14 +01:00
mpheath
089f7d6935 Make JSON5 to use JSON keywords
Fix #14205, close #14223
2023-10-18 16:03:22 +02:00
cynthplusplus
c49692cb47 Fix hide lines merging to avoid merging across a visible line
Fix #12844, close #13681
2023-08-11 22:31:03 +02:00
cynthplusplus
9b7dff6fa9 Fix proper case conversion logic for single and smart single quotes
Changed all instances of TITLECASE to PROPERCASE for consistency.

Close #13584
2023-08-07 15:48:57 +02:00
Don Ho
fdae99e6c0 Fix new document number jumps from "New 1" to "New 3" issue
Solution from:
https://github.com/notepad-plus-plus/notepad-plus-plus/pull/13931#issuecomment-1653523758

Fix #13194, fix #8677, close #13960
2023-08-05 12:49:49 +02:00
Don Ho
dea388bf59 Simplify the logic in buffer creating 2023-08-02 21:11:55 +02:00
byronigoe
3bdefd88d0 Fix handling of URLs in JSON
Fix #13522, close 13907
2023-07-23 10:06:58 +02:00
Don Ho
9e24ec55db Improve lines sorting memory consumption
Use reference instead of copy for the sorting result.
Also improve lines sorting performance slightly: Sorting a 200 MB text file takes 13.71 seconds instead of 14.63 seconds.

Fix #10435, close #13852
2023-07-02 03:32:55 +02:00
ozone10
da8e48f67a Fix EOL symbol color/appearence being reset while changing encoding issue
Fix #13728, close #13763
2023-06-11 13:41:23 +02:00
ozone10
2d5c241e2b Fix Change history margin in black color issue
Use Line number margin style color for Change history margin, if not defined in 'theme.xml'.

Fix #12764, fix #13593, close #13594
2023-05-04 05:03:49 +02:00
ozone10
0cad36d636 Add hide/show ability of Control Characters (C0 & C1) and Unicode EOL
Fix #8111, close #13324
2023-04-11 15:35:35 +02:00
afalkenhahn
d21f7cbf5c Added Hollywood support
Close #13417
2023-03-26 23:39:47 +02:00
Alan Kilborn
7f54a4b959 Add ability to do leading spaces with ColumnEditor
Fix #11148, fix #13309, close #13336
2023-03-25 02:33:09 +01:00
zeltop
816fa3e414 Add GDScript language
Adds GDScript language support, autocomplete file, functionlist, default and dark themes.

Fix #13329, close #13335
2023-03-14 23:45:57 +01:00
Robert Di Pardo
01bbebf825 Add MS Transact-SQL
Add built-in support for Microsoft's SQL dialect, Transact-SQL, used by Microsoft SQL Server. This enables Lexilla's dedicated MS SQL lexer.
To preserve the current file extension mapping, the new lexer is mapped to the *.tsql file extension only.
Users can select "Microsoft Transact-SQL" from the Language menu to apply MS SQL Server style to scripts with the *.sql extension.

Keywords and styles copied from https://www.scintilla.org/mssql.properties

Fix #5940, fix #7988, fix #11718, fix #12610, fix #13160, close #13184
2023-03-14 01:03:37 +01:00
Alan Kilborn
5251d8477a Code enhancement: remove unnecessary hidden lines separator marker
Let Scintilla manage hidden lines separator and free marker 17 for plugins use.

Fix #12109, close #13223
2023-03-11 02:03:04 +01:00
Don Ho
25be5dd3b6 Code enhancement: remove some MSVS analysis warning (Part 2) 2023-03-06 19:33:36 +01:00
Don Ho
03a5c4795b Add new notification for lexer plugin
The NPPN_EXTERNALLEXERBUFFER is sent to plugins with buffer ID (idFrom) when a new lexer is applied to the buffer in question.

Fix #12351, close #13091
2023-02-11 19:20:57 +01:00
ozone10
f38195a0da Fix GCC conversion warnings
Fix #13055, close #13056
2023-02-06 20:06:56 +01:00
ozone10
aaab190763 Add show non-printable characters command
| Name                         | Codepoint | Abbreviation |
|------------------------------|-----------|--------------|
| No-Break Space               | U+00A0    | NBSP         |
| Ogham Space Mark             | U+1680    | OSPM         |
| Mongolian Vowel Separator    | U+180E    | MVS          |
| En Quad                      | U+2000    | NQSP         |
| Em Quad                      | U+2001    | MQSP         |
| En Space                     | U+2002    | ENSP         |
| Em Space                     | U+2003    | EMSP         |
| Three-Per-Em Space           | U+2004    | 3/MSP        |
| Four-Per-Em Space            | U+2005    | 4/MSP        |
| Six-Per-Em Space             | U+2006    | 6/MSP        |
| Figure Space                 | U+2007    | FSP          |
| Punctation Space             | U+2008    | PSP          |
| Thin Space                   | U+2009    | THSP         |
| Hair Space                   | U+200A    | HSP          |
| Zero-Width Space             | U+200B    | ZWSP         |
| Zero-Width Non-Joiner        | U+200C    | ZWNJ         |
| Zero-Width Joiner            | U+200D    | ZWJ          |
| Left-To-Right Mark           | U+200E    | LRM          |
| Right-To-Left Mark           | U+200F    | RLM          |
| Line Separator               | U+2028    | LS           |
| Paragraph Separator          | U+2029    | PS           |
| Left-To-Right Embedding      | U+202A    | LRE          |
| Right-To-Left Embedding      | U+202B    | RLE          |
| Pop Directional Formatting   | U+202C    | PDF          |
| Left-To-Right Override       | U+202D    | LRO          |
| Right-To-Left Override       | U+202E    | RLO          |
| Narrow No-Break Space        | U+202F    | NNBSP        |
| Medium Mathematical Space    | U+205F    | MMSP         |
| Word Joiner                  | U+2060    | WJ           |
| Left-To-Right Isolate        | U+2066    | LRI          |
| Right-To-Left Isolate        | U+2067    | RLI          |
| First Strong Isolate         | U+2068    | FSI          |
| Pop Directional Isolate      | U+2069    | PDI          |
| Inhibit Symmetric Swapping   | U+206A    | ISS          |
| Activate Symmetric Swapping  | U+206B    | ASS          |
| Inhibit Arabic Form Shaping  | U+206C    | IAFS         |
| Activate Arabic Form Shaping | U+206D    | AAFS         |
| National Digit Shapes        | U+206E    | NADS         |
| Nominal Digit Shapes         | U+206F    | NODS         |
| Ideographic Space            | U+3000    | IDSP         |
| Zero-Width No-Break Space    | U+FEFF    | ZWNBSP       |

Fix also issue with tooltips in preference dialog, when changing between dark/light mode.

Fix #827, fix #4731, fix #8284, close #13020
2023-02-05 04:20:25 +01:00
Alan Kilborn
07924528c4 Add Begin/End Select in Column Mode command
Fix #12833, fix #12832, close #13034
2023-02-04 04:46:24 +01:00
Don Ho
535bd8fa0e Use wide char version's function directely (part3)
ref: https://github.com/notepad-plus-plus/notepad-plus-plus/pull/12613#discussion_r1045153278
2023-01-21 21:28:23 +01:00
ozone10
8add866460 Code enhancement: use conformant code
Fix #12818, close #12819
2023-01-21 04:32:56 +01:00
Don Ho
432dcb7f15 Use wide char version's function directely (part1)
ref: https://github.com/notepad-plus-plus/notepad-plus-plus/pull/12613#discussion_r1045153278
2023-01-19 02:52:23 +01:00