TabWell Release Notes
A native macOS source-code editor for people moving to the Mac from Windows. Built with Swift/AppKit and TextKit 2, syntax-highlighted with tree-sitter, sandboxed for the Mac App Store, and localized in English and Spanish.
Requires macOS 14.0 or later. Universal (Apple Silicon + Intel).
1.2.0
A focused feature update. Adds side-by-side file compare, a Swift symbol outline, an optional code minimap, and mouse-wheel zoom.
Compare files
- Edit ▸ Compare Files… (⇧⌘D) opens a read-only, two-column diff of two open documents; Compare With File… compares the active document against a file you pick from disk.
- Added, removed, and changed lines are marked in distinct Light/Dark colors, with synchronized scrolling, previous/next-change navigation, and Swap. The comparison never edits your files.
Reading & navigation
- The Symbols outline now covers Swift — classes, structs, enums (with cases), protocols, actors, extensions, methods, initializers, and properties — alongside Python, JavaScript, and TypeScript.
- New optional code minimap: View ▸ Show Minimap (⌃⌘M) or Preferences, off by default.
Editing
- Zoom with the mouse wheel: hold ⌘ (or Ctrl) and scroll to zoom the editor font, in sync with ⌘+ / ⌘- / ⌘0.
1.1.0
A substantial feature update. Adds a secure folder workspace, current-document Symbols, polished native window controls, and broader editing and navigation tools.
Editing
- Selecting text passively highlights its other exact occurrences.
- Toggle Comment and Indent/Unindent now have native Mac shortcuts.
Files & tabs
- Compact native toolbar with an always-visible sidebar toggle plus visually distinct Open File and Open Folder controls, New, Save, and Find.
- Tabs gained dedicated unsaved indicators, clearer selected/hover states, and automatic reveal when many tabs overflow.
- Save All, Reopen Closed Tab (20-entry stack), unsaved-tab rename, and a tab context menu.
- New: a one-root, read-mostly folder workspace in a collapsible/resizable Files sidebar — lazy-loaded sorted tree, safe restoration, exclusions, Refresh, file context actions (Open/Reveal/Copy Path/Find in This Folder), and existing-tab reuse.
- Finder/Open With launch events now reliably open registered files, including
.json.
Find & navigation
- Mark All and navigable Find All results for the current or all open documents.
- Find in Files gained optional include/exclude glob filters.
Reading aids
- Syntax highlighting now covers 20 modes, adding TSX and the XML family.
- New filterable Symbols outline for the active Python, JavaScript, or TypeScript document — nested declarations, export indicators, exact navigation, and stale-result protection while editing or switching tabs.
Appearance
- Light / Dark / System now applies instantly to every TabWell-owned window, not just the editor.
- Simplified, responsive status bar: line/column and language stay put while lower-priority details yield cleanly in narrow windows.
Known limitations added this release
- The workspace supports one read-mostly root; file management, Git status, terminals, and build tasks remain in Finder or dedicated developer tools.
- Symbols cover the active Python/JavaScript/TypeScript document only, not project-wide indexing, semantic analysis, references, diagnostics, or rename.
1.0.1
Polish and store-compliance update. Refreshed app icon, a new text-margin preference, in-app Release Notes, and documentation cleanup — no editing-behavior changes.
1.0
The first public release.
Editing
- Fast native editor with a monospaced font, undo/redo, and the standard Cut/Copy/Paste/Select All.
- Multiple carets: ⌘-click to add carets and type everywhere at once.
- Column (rectangular) selection: ⌥-drag.
- Select All Occurrences (⌃⌘G): edit every match of a word or selection together.
- Per-tab word wrap.
Files & tabs
- Multi-tab editing; each tab is fully independent (its own text, language, encoding, wrap).
- Open, Save, Save As, and Open Recent that keeps working after relaunch (sandbox-safe bookmarks).
- "File changed on disk" banner with Reload / Keep Editing.
- Prompts to save unsaved work when closing a tab or quitting.
Encodings & line endings
- Detects and shows encoding (UTF-8, UTF-8 BOM, UTF-16 …) and line endings (LF/CRLF/CR).
- Preserves them on save, with no silent changes.
- Reinterpret as (re-read bytes) vs Convert to (rewrite bytes), with a guard against lossy conversions.
Find & navigation
- Find/Replace bar with regex, match case, whole word, and in-selection scope; live match counts; Replace All as a single undo.
- Find in Files (⌥⌘F): streaming folder-wide search that keeps the UI responsive and skips
node_modules/.git. - Go to Line (⌘G).
- Bookmarks (⇧⌘B) with next/previous navigation; persist across relaunch.
Line operations
- Sort, remove duplicates, trim trailing whitespace, change case, move/duplicate/join lines, and convert tabs ↔ spaces, each a single undo step.
Reading aids
- Syntax highlighting for 18 languages (Swift, Python, JS, TypeScript, JSON, YAML, Markdown, HTML, CSS, Shell, SQL, Java, C, C++, Go, Rust, Ruby, PHP).
- Line numbers, a fold ribbon (click to fold), and show-whitespace marks.
- Large-file safeguards so multi-megabyte files stay responsive.
Preferences & appearance
- Live preferences: font/size, zoom (⌘+ / ⌘- / ⌘0), tabs-vs-spaces & tab width, default encoding/EOL/wrap for new files.
- Light / Dark / System appearance, applied instantly.
Session restore
- Reopens your tabs, active tab, positions, languages, encodings, and bookmarks on launch (toggleable). Untitled scratch text is preserved across quit.
Privacy
- No network access, no telemetry, no accounts. Nothing leaves your Mac.
Notes for people migrating from Windows
Most muscle memory carries over with ⌘ in place of Ctrl. A few deliberate parity choices: ⌘G = Go to Line (not Find Next, which is ⌘K), and ⇧⌘B toggles a bookmark. The migration table in the User Guide maps the rest.
Thanks for using TabWell.