141 Commits

Author SHA1 Message Date
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
Don Ho
bdb06d5c10 Add JSON5 support
Currently, it's only JSONC (with js comment supported).
It will be enhanced in the future.

Usage: set your file to JSON5 via language menu, or change file extension to .json5 or .jsonc.
Note that the keywords and stylers are shared with JSON.

Fix #11676, fix #11713, close #12761
2023-01-06 14:25:19 +01:00
Don Ho
c0e2073280 Enhance Properties file: add/improve the syntax folding/highlighting
And make the description more accurate on status bar.

Ref:
3fb9c7195f (r93126447)
2022-12-15 16:21:54 +01:00
Don Ho
5867025842 Fix 32 bits build error 2022-10-30 11:47:45 +01:00
Don Ho
513ee3e3fe Use Scitilla default 64 bits symbol 2022-10-30 01:09:52 +02:00
Adrian
4b3ee9c4ea Fix line hiding issues
Fix #12184, fix #8149, close #12250
2022-09-29 15:32:58 +02:00
Don Ho
848b412cf7 Fix Change History margin visual glichy under dark mode
Ref: https://community.notepad-plus-plus.org/topic/23510/notepad-v8-4-6-release-candidate/2?_=1663857801779
2022-09-22 19:28:08 +02:00
Don Ho
6a801cc0a4 Make Change History margin colour configurable
Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/pull/12165#issuecomment-1250899679
2022-09-19 19:24:57 +02:00
Don Ho
fc32fbdcce Add Change History markers for saved/unsaved/undone modification
Implement Change History by using the new abilities of Scintilla v5.3.0.

Fix  #12164, close #12165
2022-09-18 23:57:36 +02:00
ozone10
2da5c5b393 Code enhancement
Fix parentheses, misleading-indentation, sign-compare, some conversion-null warnings.

Fix #12139, close #12140
2022-09-11 18:22:51 +02:00
ozone10
ebe7648ee1 Code improvement, remove unnecessary part
Fix pedantic warnings, add initializers.

Close #12093
2022-09-07 17:49:56 +02:00
Don Ho
6077604380 Fix erasing part of content make hanging issue
Deletion of one line where there's folding didn't show the hiden lines in the old version of Scitilla.
It's not anymore the case in the new (current used) version of Scintilla (which manages such situation correctly).
Therefore the redundant notification for the current used version of Scintilla can be removed, and it solves hanging problem.

Fix #10193, close #11946
2022-07-26 15:43:37 +02:00
Don Ho
f85a9c45e9 Add reduce mode in Find/Replace dialog
Add a button on the bottom-right corner of Find/Replace dialog to switch between collapsed & complete mode.

Fix #11780, close #11937
2022-07-23 01:07:47 +02:00
Christian Grasser
ed4bb1a93e Update lexilla to 5.1.7 & Scintilla to 5.2.3
Use new interfaces SCI_FORMATRANGEFULL, SCI_GETTEXTRANGEFULL, SCI_FINDTEXTFULL from scintilla 5.2.3

Close #11734
2022-06-28 16:19:19 +02:00
Don Ho
79e766755d Make EOL (CRLF) display customizable
Fix #11413, close #11773
2022-06-12 19:41:09 +02:00