A native macOS text and source-code editor inspired by Notepad++, written from scratch in Swift/AppKit and released under the GNU General Public License v3.
About the name. The
++is a nod to where the idea comes from, nothing more. MacPad++ is not an official Notepad++ release, not a Mac edition of it, and not connected to that project or its author in any way.What this is, honestly. MacPad++ is not a port of Notepad++. Notepad++ is a large C++ codebase written directly against the Windows-only Win32 API and the Scintilla control, which is why no official macOS build exists — the obstacle was always the code, never the licence (Notepad++ has been GPL from the start). MacPad++ is an original application that recreates the Notepad++ experience on macOS: the same menu structure, the same commands, the same muscle memory. It shares no source with Notepad++ and is not affiliated with or endorsed by that project or its author, Don Ho.
- In-window tab bar — dirty markers, drag-to-reorder, middle-click close, five tab tint colours, right-click menu (close others, rename, copy path, open containing folder)
- Split view — two independent editor panes
- Code folding — brace-based for C-family languages, indentation-based for Python/YAML; fold all, unfold all, fold to level 1–8
- Bookmarks — toggle, next/previous, cut/copy/remove bookmarked lines, remove unmarked lines, inverse bookmarks
- Auto-indent, soft/hard tabs, configurable tab width, auto-closing brackets
- Brace matching with highlight, jump to matching brace, select between braces
- Auto-completion from language keywords plus every word in the document
- Column editor — insert text or an incrementing number (decimal/octal/hex/binary, optional zero-padding) down a column
- Show whitespace, end-of-line marks, indent guides; current-line highlight
- Case conversion ×6 — UPPER, lower, Proper, Sentence, iNVERT, rAnDOm
- Line operations ×16 — duplicate, remove duplicates, delete, move up/down, join, split, remove empty, insert blank above/below, reverse order, randomize order, and six sort modes (lexicographic asc/desc, case-insensitive asc/desc, numeric asc/desc)
- Blank operations ×8 — trim trailing/leading/both, EOL to space, remove unnecessary blank + EOL, tabs↔spaces (leading and all)
- Comments — toggle line comment, block comment/uncomment, toggle block comment
- Insert date/time (short, long, custom format), copy filename/path/directory to clipboard
- Four-tab Find dialog — Find, Replace, Find in Files, Mark
- Normal / Extended (
\n,\t,\xHH) / Regular expression modes - Match case, whole word, wrap around, backward direction, in-selection
- Count, Find All, Replace All, Replace All in All Opened Documents
- Find in Files — recursive, glob filters, binary-file and VCS-directory skipping, cancellable, with a results panel grouped by file
- Mark All — style every occurrence; Bookmark All Matching Lines
Document Map (minimap) · Function List · Document List · Clipboard History · Character Panel (0–255) · Folder as Workspace (file browser) · Search Results
71 languages with syntax highlighting, comment definitions and function-list parsing — including C, C++, C#, Java, JavaScript, TypeScript, Python, Ruby, Swift, Go, Rust, PHP, Perl, Lua, SQL, HTML, CSS, XML, JSON, YAML, Markdown, Shell, PowerShell, Batch, Makefile, Dockerfile, Assembly, Fortran, COBOL, Pascal, Haskell, Erlang, Lisp, Scheme, MATLAB, R, Verilog, VHDL, TeX, Liquid (Shopify themes), and more.
ANSI, UTF-8, UTF-8-BOM, UTF-16 LE/BE with BOM, plus ~30 character sets across Western/Central European, Cyrillic, Greek, Turkish, Hebrew, Arabic, Baltic, Vietnamese, Thai, Japanese, Chinese and Korean. EOL conversion between Windows (CRLF), Unix (LF) and classic Mac (CR), with automatic detection on open.
- 8 themes — Default (follows system light/dark), Obsidian, Zenburn, Solarized, Solarized Light, Twilight, Deep Black, Mono Industrial
- Preferences, Style Configurator (live preview), Shortcut Mapper (reads the live menu bar)
- Macros — record, play back, run N times, save and reuse named macros
- Sessions — auto-restore on launch, plus explicit Save/Load Session
- Hash tools — MD5, SHA-1, SHA-256, SHA-512 of selection or document
- Run — launch a shell command with
$(FULL_CURRENT_PATH)substitution - Six-field clickable status bar; recent-files list; print support
Requires macOS 12+ and Xcode (or the Swift toolchain).
git clone https://github.com/HL-Apprentice/MacPad.git
cd MacPad++
./build.sh
open build/MacPad++.appDrag build/MacPad++.app into /Applications to keep it. The build is ad-hoc signed, so
Gatekeeper may ask you to confirm the first launch (right-click → Open).
To develop against it directly:
swift build && swift runMacPad++ can build its whole interface off-screen, drive it, and report:
swift build && "$(swift build --show-bin-path)/MacPad" --self-test77 checks covering the menu bar (dead items, colliding shortcuts), encoding and line-ending round-trips through disk, the Edit commands and undo, navigation and bookmarks, construction and drawing of all seven panels, split view, folding, every theme, the settings windows, and find/mark/replace. Exit status is 0 only when all of them pass, so it drops straight into CI.
Stated plainly rather than buried:
- Plugin system. Notepad++ plugins are Windows DLLs loaded via a Win32 ABI. That cannot be reproduced on macOS, and no plugin menu is shipped.
- Rectangular/column selection. The Column Editor (insert down a column) is implemented; free-form rectangular selection with multi-caret editing is not.
- Document Map renders a scaled text approximation, not a pixel-exact page thumbnail.
- Notepad++'s User Defined Language dialog is absent; languages are defined in Swift
(
Sources/MacPad/Languages/) and adding one is a small, self-contained edit. - Windows-specific items (Recycle Bin, file association registration, Windows shell integration) are replaced by their macOS equivalents or omitted.
MacPad++ bundles no third-party code and has no dependencies. The bundled colour schemes reproduce palettes from well-known terminal and editor themes, credited in THIRD-PARTY-NOTICES.md.
MacPad++ is free software: you may redistribute and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the Licence, or (at your option) any later version. It is distributed without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See LICENSE for the full text.
"Notepad++" is the work and trademark of its respective owner. MacPad++ takes inspiration from its feature set only.