notepad-plus-plus / notepad-plus-plus/notepad-plus-plus
[Feature request] Integrate Default Syntax Highlighting Configuration Files into the EXE to Improve Startup Speed
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 29.4k
- Forks
- 5.4k
- PR merge metrics
- No merged PRs in 30d
Description
Is there an existing issue for this?
- I have searched the existing issues
Description of the Issue
The default syntax highlighting files include three XML files: stylers.model.xml, langs.model.xml, and DarkModeDefault.xml.
• By default, the first two files are loaded.
• When in dark mode, the latter two files are loaded.
By embedding these files into the notepad++.exe, the startup speed can improve by approximately 30ms compared to using external XML files.
• Compression: Use LZ4 compression for embedding the resources. When loading, the resources are decompressed. This reduces the XML loading time from approximately 60ms to 30ms.
• Without Compression: If LZ4 compression is not used, the loading time can be further reduced. However, this would increase the size of the EXE slightly.
If users modify these configurations, the changes will be saved to external XML files. On the next startup, the application will load the configuration from the external XML files instead of the embedded resources.
Describe the solution you'd like.
none
Debug Information
Notepad++ v8.7.1 (64-bit)
Build time : Oct 31 2024 - 00:48:56
Path : C:\Program Files\Notepad++\notepad++.exe
Command Line : -loadingTime
Admin mode : OFF
Local Conf mode : OFF
Cloud Config : OFF
Periodic Backup : ON
OS Name : Windows 11 Pro (64-bit)
OS Version : 23H2
OS Build : 22631.4541
Current ANSI codepage : 1252
Plugins :
JsonTools (5.4)
mimeTools (3.1)
NppConverter (4.6)
NppExport (0.4)
NPPJSONViewer (2.0.6)
qkNppReverseLines (1)
Remove Duplicate Lines (1.3)
XMLTools (3.1.1.13)
Anything else?
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Trace startup loading of stylers.model.xml, langs.model.xml, and DarkModeDefault.xml in notepad++.exe, including how modified external files are selected. Compare embedded-resource approaches with and without LZ4, then verify that unchanged defaults load from the executable, modified configurations still override them externally, and startup timing improves.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, xml
- Domain
- desktop, performance
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100