Commit Graph

247 Commits (e1e180397f35fc25f2d01eb7dde2de2f18058803)

Author SHA1 Message Date
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
Ashfaaq18 36d0d29cc7 Add path column in Document list panel
Fix #9679, close #10539
2021-09-12 15:18:22 +02:00
Ivan Ustûžanin 156784722a Make number of languages and and styles unlimited and independent
A clean version of #10483 thanks to @ozone10 and @chcg.
The proper fix for #10206 without any compile-time limits.

Fix #10483, fix #10206, close #10491
2021-09-05 16:31:18 +02:00
Don Ho 88ee2eddb0 Fix the crash regression due to the array size increase
LexerStylerArray contains a MAX_LEXER_STYLE-element array (currently 100) of LexerStyler objects. Every one of them in turn via inheritance from StyleArray contains a SCE_STYLE_ARRAY_SIZE-element array (I tested with 99) of Style objects each at least 56 bytes in size. This in my test case requires over 550k of memory, and if LexerStylerArray is allocated on stack, the stack becomes corrupted. (Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/10454#issuecomment-908732786)

Inline arrays are a part of an object and increase its size while std::vector uses memory from the heap and stores internally only a pointer to a chunk of memory, thus the size of an object with a vector is substantially smaller than the one with an inline array. (Ref: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/10454#issuecomment-908780106)

Fix #10454, fix #10206
2021-08-31 01:38:55 +02:00
Don Ho 84c1505fab Add custom date time insert
Make Insert date time customizable.
Also make date time order reversable for short & long format.

Fix #10445, close #10453
2021-08-29 19:42:05 +02:00
Don Ho 4cc3d9fd1a Add Markdown UDL of dark mode in release packages
Add Markdown UDL of dark mode and the ability to apply it:
After dark mode being swiched in, all files with extension .md will be opened by applying Markdown UDL of dark mode.
When light mode is switched back, the default Markdown UDL (of light mode) will be applied to the new opened .md file.
Please note that all .md files opened before switching to new mode, will remain in the previous mode. User has to close and reopen these files to have the right Markdown UDL applied.

Fix #10196, close #10347
2021-08-08 03:22:15 +02:00
Don Ho 831d3ba9cc Add customizing dynamically dark mode colors capacity
Let users customize whole set of dark mode colors (except title bar, menu items and scroll bar colors).

Close #10145
2021-07-14 03:33:36 +02:00
Don Ho 39b9090b96 Make Notepad++ dark mode colors customizable
Add 6 more color choices.

Close #10128
2021-07-10 14:18:36 +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
Don Ho 7bb39a08f1 Open a file from command line by applying an existent UDL via UDL name
Add command line flag -udl="UDL name" to open a file by applying an existent UDL via its name.

Close #10102
2021-07-04 19:03:52 +02:00
Don Ho 3347044595 Fix edit zone not being applied to dark mode issue
Problem:
After installing Notepad++ v8.1 under an user account (with admin privilege), then switch to another user account (with or without admin privilege), launch Notepad++ and turn dark mode on. The dark theme on edit zone won't be applied.

Solution:
Notepad++ installer copies all theme files in installed directory instead of "%APPDATA%\Notepad++\themes\".
When theme is choosen or modified, it'll be saved in "%APPDATA%\Notepad++\themes\", and the saved theme file will override the original theme in installation directory.

New behaviour of theme:
Any theme selected via Style Configurator will be copied from its installation directory (C:\Program Files\Notepad++\themes\) into "%APPDATA%\Notepad++\themes\".
If the theme exists in "%APPDATA%\Notepad++\themes", the original one in s installation directory (C:\Program Files\Notepad++\themes) will be ignored.

Fix #10076, close #10077
2021-06-27 16:42:01 +02:00
Don HO 4aa459ef47 Switch to default dark theme as dark mode is enabled
1. Add default dark theme.
2. Switch to default dark theme when dark mode is enabled considering both situations:
   Style Configurator is or ont launched.

Close #9847
2021-05-10 09:56:35 +02:00
Don HO cd1a468b1c Make select text foreground color setting optional
Make selected text with syntax highlighting as default behaviour.
To override the default behaviour, user can add an empty xml file named "enableSelectFgColor.xml" (beside of "config.xml") to set the select foreground color in Style Configurator.
2021-05-01 20:02:09 +02:00
Scott Sumner 0dbdef320f Add MarkAll Preference settings for case and word
Fix #9751 #5148, close #9796
2021-04-26 12:05:35 +02:00
Scott Sumner a0177e8d05 Add pref setting to allow Replace to stop after replacement
Fix #4437, close #9801
2021-04-26 10:26:47 +02:00
Adam D. Walling 5a3bf49c86 Add Dark Mode for not attracting bugs
Toolbar, status bar, tab bar, menu bar, dark scrollbar, handle switching between light and dark, docking splitters and headers, flicker fixes. Minor tweaks to DarkMode.h. Mostly handles the dark mode request for the main interface for #7692 and also follows the windows system theme settings like #9183.

Fix #9183, fix #7692, close #9587
2021-04-23 16:22:57 +02:00
Don HO d0afc51621 Add ARM64 support for auto-update feature 2021-04-22 05:20:54 +02:00
Don HO 15b7a26c87 Remove unecessary const type qualifier 2021-04-16 02:37:05 +02:00
Don HO 1a9307b02d Add padding options in the edit zonze
Fix #2323
2021-04-11 19:59:30 +02:00
Don HO cbf3d2c9cb Add new feature "Distraction Free Mode" 2021-04-09 19:55:55 +02:00
Scott Sumner cae2f77daf Add command line parameter for adding specified string to app title bar
Fix #9539, #9704
2021-03-28 04:18:23 +02:00
Scott Sumner 874f0d0140 Add ability to avoid accumulating multiple search results
Fix #8777, close #9653
2021-03-27 18:19:54 +01:00
mere-human dc106a4c95 Add Cloud Config and Command Line Arguments to Debug Info
Fix #9598, close #9607
2021-03-26 15:33:01 +01:00
Udo Hoffmann 5c884a80c6
Add "Find in Projects" features
Close #8125, close #9534
2021-02-27 23:58:17 +01:00
mere-human 6e43ba6ea5
Add an option to mute all sounds in preferences dialog
Fix #7950, close #9507
2021-02-19 03:46:52 +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
Don HO a2ee3e6254
Fix a memory leak issue in NppParameters::writeSession
Solution: simplify the method NppParameters::getSessionFromXmlTree by removing unecessary variable member NppParameters::_pXmlSessionDoc.
2021-01-17 19:47:45 +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
Don HO b6a66ba2b1
Add "-settingsDir" argument for overriding default settings path
Currently the settings directory could be:

1. Notepad++ installation dir if doLocalConf.xml is present.
2. %APPDATA%\Notepad++ if doLocalConf.xml is absent.
3. The path defined in \cloud\choice in Notepad++ installation or in %APPDATA%\Notepad++, it depends on the existence of doLocalConf.xml.

In this PR "-settingsDir" argument is added for overriding above settings paths:
4. Overrided by command line argument -settingsDir="E:\my NppSettings\" : All the above configurations will be ignored, Notepad++ will load (and write) config.xml and the other configuration xml files from (into) "E:\my NppSettings\". Note that double quotes is not necessary if there's no white space in the given path.

The priorities are: 1. -settingsDir 2. Cloud 3. %APPDATA%\Notepad++ or Notepad++ installation dir.
If the given path "E:\my NppSettings\" is not a valid directory (it doesn't exist or it's a file), this argument is ignored and the settings dir will fall back to Cloud (or to %APPDATA%\Notepad++ or Notepad++ installation dir, if settings on Cloud is not defined).

Close #4696, close #9287
2020-12-21 16:03:05 +01:00
Don HO c9c2d1e376
Add an option for displying constant line number width
1. Add an option for displying constant line number width in Preferences dialog.
   This option set the line number constant width according the total line number in the document (minimun 4 digits).
   It ensures no unexpected visual effect while scrolling content vertically.
   If the document content is modified and the total number of lines is increased or decreased, more digits will be added or removed according the number of digits in total number of lines.

2. Add new plugin messages NPPM_GETLINENUMBERWIDTHMODE & NPPM_SETLINENUMBERWIDTHMODE for getting or setting LINENUMWIDTH_DYNAMIC / LINENUMWIDTH_CONSTANT.
   So plugins may send NPPM_SETLINENUMBERWIDTHMODE message with LINENUMWIDTH_CONSTANT to Notepad++ for avoiding some unexpected visual effect (while scrolling).

Fix #5670
2020-12-06 16:38:53 +01:00
Don HO 4b29971168
Add GUI in preferences dialog for adding URI customized schemes
And add default supported url schemes.
Related: 5168bdb and #9155

Close #9195
2020-11-25 03:19:30 +01:00
Udo Hoffmann 5168bdb7c5
Allow custom URL schemes
Fix #9155, close #9190
2020-11-22 18:06:37 +01:00
Don HO bbeb66aa56
Fix crash issue while passing argument "-export=functionList"
This regression is due to commit 7399257f56
(7399257f56)
2020-11-11 02:23:24 +01:00
Don HO 7399257f56 Fix docked panels appear with "-nosession" cmd line parameters
Fix #8005
2020-11-09 04:19:37 +01:00
Scott Sumner bbde64c308
Add preference for save type of normal text files
Fix #8866, close #8948
2020-10-05 00:26:48 +02:00
Scott Sumner 79cf60f498
Add alternative icon set for tab bar
Close #8068, close #8871
2020-09-30 03:04:06 +02:00
Don HO a2264e5b36
Restore Folder as Workspace's latest selected item of last session on start up
Fix #8353
2020-09-19 00:36:03 +02:00
Udo Hoffmann 84430809df Add back hovered blue underlined URLs
Fix #8654, close #8713
2020-08-23 12:28:14 +02:00
Scott Sumner 209ccb97ec Add confirmation preference for Replace All in All Opened Documents operation
Close #8527, close #8708
2020-08-16 16:15:21 +02:00
Scott Sumner 3a2edb99c4 Add word-wrap option to find-results context menu
Close #8624, close #8681
2020-08-13 17:17:22 +02:00
Scott Sumner 33f042932f Make (Find) dlgAlwaysVisible a true Preference setting
Close #7908, close #8651
2020-08-12 23:50:47 +02:00
Scott Sumner f1b059414b
Add an option to prevent right-click from canceling selection
Fix #8563, close  #8564
2020-08-06 20:11:10 +02:00
Udo Hoffmann 0a821b60e2
Add an option to improve rendering special Unicode characters
... by using Scintilla's DirectWrite technology.
It allows ligature support if the font needed (for exemple "Fira Code") is installed.

Fix #2287, close #8326
Fix #442, fix #675, fix #813, fix #870, fix #1621, fix #3458, fix #4056, fix #4086, fix #4490, fix #8305
2020-06-12 19:16:39 +02:00
Don HO 5e262c8122
Add an non-UI option to allow regEx backward search
Set "regexBackward4PowerUser" to "yes" in config.xml to eanable this option.
2020-06-05 00:56:25 +02:00
Don HO c3ec0cbf6e
Make vertical edge (column marker) usage easier
Simplify the UI to make vertical edge easy to use.
2020-04-17 16:20:34 +02:00
Don HO cc2c9b7740
Implement multi-line edge feature
Close #3128
2020-04-13 04:15:32 +02:00
Don HO 3de506bf48
Update copyright
Close #5919
2020-04-04 23:03:18 +02:00
Scott Sumner 4cc6215e63
Implement issue 905 to make Find window remember its position across runs
Close #905, close #7898
2020-02-07 23:31:29 +01:00