NotepadLite is a lightweight Windows desktop text editor written in C#. The current implementation starts with a fast WPF shell, a UI-independent document core, and a syntax-definition pipeline that loads a practical subset of Notepad++ user-defined language XML files from disk.
- WPF desktop shell targeting
net10.0-windows - Open, edit, save, and save-as workflows
- AvalonEdit-based text surface with line numbers
- Runtime language-definition loading from built-in and user folders
- Import of a documented subset of Notepad++ UDL XML
src/NotepadLite.Appcontains the WPF shell and editor integration.src/NotepadLite.Corecontains document and file services.src/NotepadLite.Syntaxcontains the language-definition model and UDL importer.tests/NotepadLite.Syntax.Testscontains automated tests for the importer.assets/languagescontains built-in sample language definitions copied into the app output.
dotnet restore NotepadLite.slnx
dotnet build NotepadLite.slnx
dotnet run --project src/NotepadLite.App/NotepadLite.App.csprojTo open a file directly at startup:
dotnet run --project src/NotepadLite.App/NotepadLite.App.csproj -- "C:\path\to\file.json"dotnet test NotepadLite.slnxThe repository includes a self-contained Windows installer package. Running the packaged installer copies the app to C:\Program Files\NotepadLite, registers an uninstall entry, creates a Start menu shortcut, and adds a Windows Explorer right-click command named Open with NotepadLite for all files.
Build the installer package with:
powershell -ExecutionPolicy Bypass -File .\scripts\build-installer.ps1Outputs:
- Published application files:
artifacts\publish\NotepadLite\win-x64 - Installer package folder:
artifacts\installer\NotepadLite - Installer archive:
artifacts\installer\NotepadLite-Installer.zip
To install on a machine, open artifacts\installer\NotepadLite and run Install-NotepadLite.cmd. The installer will request elevation because it installs machine-wide.
Built-in language definitions are copied from assets/languages into the app output under Assets/Languages.
User-added definitions can be dropped into:
%LocalAppData%\NotepadLite\Languages
The current importer supports:
nameandextonUserLang- keyword groups under
Keywords - operators from a
Keywordsentry namedOperators - line comments and block comments from
Comments - symmetric string delimiters from
Delimiterelements
The current importer does not attempt full Notepad++ compatibility. Unsupported constructs are reported in the diagnostics area instead of being silently approximated.
Windows Explorer can launch the editor from a file right-click menu once the app accepts a file path argument. The installer package now creates this integration automatically.
If you need a manual fallback after copying the app to a stable path, use scripts/notepadlite-context-menu.reg, which points to the default installer location.
Example .reg content:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\*\shell\OpenWithNotepadLite]
@="Open with NotepadLite"
"Icon"="C:\\Program Files\\NotepadLite\\NotepadLite.App.exe"
[HKEY_CURRENT_USER\Software\Classes\*\shell\OpenWithNotepadLite\command]
@="\"C:\\Program Files\\NotepadLite\\NotepadLite.App.exe\" \"%1\""Notes:
- Replace the executable path if you install the app elsewhere.
- The installer package uses a machine-wide registration under
HKEY_LOCAL_MACHINE, while the.regfile usesHKEY_CURRENT_USERas a no-installer fallback.