Homebrew 默认装到 /Applications 可能要求管理员密码,可用 --appdir="$HOME/Applications" 规避;nve 命令行助手只随 GitHub 直装版提供,App Store 版没有;从源码构建需用 Xcode 打开工程并自行运行。
Neon-Vision-Editor
h3pdesignApache-2.0活跃维护用 Swift 原生实现的跨平台代码与 Markdown 编辑器,覆盖 macOS、iPadOS、iOS 和 visionOS,支持语法高亮,适合在苹果各设备上统一写作和改代码。
A native Swift editor for Code and Markdown across macOS, iPadOS, iOS, and visionOS.
brew install neon-vision-editorREADME 未说明显存或 GPU 要求;面向 Apple 平台,支持 Apple Silicon,目标兼容 macOS 26(Tahoe)与 macOS Sequoia。
原生 Swift 编辑器,在苹果全平台快速编辑 Markdown、笔记和代码,不臃肿
用 Swift 原生实现的跨平台代码与 Markdown 编辑器,覆盖 macOS、iPadOS、iOS 和 visionOS,支持语法高亮,适合在苹果各设备上统一写作和改代码。
核心能力
- 支持 macOS、iOS、iPadOS、visionOS 原生运行
- 用 Cmd+P 快速打开文件跳转
- Markdown 预览与 PDF 导出离线渲染 TeX 公式
- 内置正则查找替换与代码小地图导航
- 可选 Vim 模式,支持硬件键盘操作
容易踩的坑
- v2.2.0Neon Vision Editor v2.2.0最新正式版2026-11-09 · 2026-11-09 15:32 UTC
[v2.2.0] - 2026-11-09
Why Upgrade
- On iPhone Duo, a preview next to the editor starts at the fold, so the document and preview each get one half.
- The iPhone app updates Apple Watch only when your status changes, and network files aren't checked in the background.
- API Route is available as an optional AI provider.
Highlights
- On the Mac, a Text Replacement shortcut such as “omw” lists its phrase first, and Tab or Return replaces it.
- With Reopen Last Session, Mac tabs come back in the order you left them.
- The Neon Pulse inbox complication on Apple Watch updates as soon as you capture a note.
Fixes
- On iPhone Duo, a Markdown, JSON, YAML, web, image or PDF preview next to the editor starts at the fold. Without a reported fold, the split stays as before.
- API Route uses claude-haiku-4-5 by default, keeps its API key in the Keychain, and lets you set your own model id (#957).
- On the Mac, typing a Text Replacement shortcut such as "omw" lists its phrase first in the word list. Tab, Right Arrow or Return replaces the shortcut with the phrase (#959).
- With "Reopen Last Session", Mac tabs reopen in the order you left them instead of reversed (#940).
- The Neon Pulse inbox complication on Apple Watch updates as soon as you capture a note, instead of up to 30 minutes later.
- The iPhone app sends status to Apple Watch only when the document, unsaved changes, conflicts or last save change, not after every pause in typing, and Neon Pulse complications refresh only when their data changes.
- Documents on network and SMB volumes are no longer checked every 3 seconds while the app is in the background. They are checked as soon as you return, and every 10 seconds in Low Power Mode.
Breaking changes
- None.
Migration
- No migration required. Existing documents, sessions, and preferences are preserved.
Maintenance
- Development version 2.2.0 (build 1143).
- v2.1.7Neon Vision Editor v2.1.72026-11-07 · 2026-11-07 03:06 UTC
查看更新说明
[v2.1.7] - 2026-11-07
Why Upgrade
- On the Mac, words from the macOS dictionary and your Text Replacements appear in a list below the caret as you type.
- Markdown previews and PDF exports show TeX formulas offline, using a bundled copy of KaTeX.
- Typing in large documents on iPhone and iPad is faster, with far less delay per keystroke in files over 1 MB.
- Quitting the Mac app with several tabs open no longer crashes.
- Right Arrow accepts inline suggestions as the setting describes, and Tab also works with Caps Lock on.
- Cheaper Inference is available as an optional AI provider.
Highlights
- In the word list, Up and Down Arrow pick a word, Tab or Right Arrow accepts it, and Escape closes the list.
- Clicking a word in the list inserts it, and Return accepts a word you picked with the arrow keys.
- Cheaper Inference uses gpt-5.4-mini by default, keeps its API token in the Keychain, and lets you set your own model id.
- Markdown previews and PDF exports render inline and display TeX formulas offline with bundled KaTeX. Formula underscores are preserved, and document JavaScript remains disabled (#942).
Fixes
- Typing in large documents on iPhone and iPad is faster, with far less delay per keystroke in files over 1 MB.
- "Suggest Words from System Dictionary" on the Mac shows a list of matching words below the caret while you type. Up and Down Arrow pick a word, and Tab or Right Arrow accepts it. Return accepts it once you have picked a word with the arrow keys. Clicking a word inserts it, and Escape closes the list. Right Arrow now accepts inline suggestions as the setting describes, and Tab also works with Caps Lock on (#926).
- Quitting with several tabs open on the Mac no longer crashes when a tab's editor finishes opening while its window is closing (#875).
Breaking changes
- None.
Migration
- No migration required. Existing documents, sessions, and preferences are preserved.
Maintenance
- Development version 2.1.7 (build 1140).
- v2.1.6Neon Vision Editor v2.1.62026-11-01 · 2026-11-01 22:01 UTC
查看更新说明
[v2.1.6] - 2026-11-01
Why Upgrade
- On smaller Mac screens, every Settings page fits above the Dock again, and taller pages scroll.
- Typing and moving the caret on iPhone and iPad copies the document once per change instead of up to four times.
- On iPhone Duo's unfolded display, the editor toolbar no longer covers the clock and status icons.
Highlights
- Completion options have their own section in Mac Settings under Editor.
- Notes in Mac Settings wrap onto more lines instead of being cut off.
- Where iPhone Duo doesn't report the status bar's position, the editor toolbar moves to the bottom of the screen.
Fixes
- On iPhone Duo's unfolded display, the editor toolbar no longer covers the vertical status bar. Where the system doesn't report the status bar's position on that edge, the toolbar returns to the bottom of the screen (#891).
- Typing and moving the caret on iPhone and iPad copies the document once per change instead of up to four times, which keeps large files more responsive.
- On smaller Mac screens, Settings no longer extends behind the Dock. A Settings page taller than the screen now scrolls, and Editor › Completion has its own section so Editor › Behavior fits again (#898).
Breaking changes
- None.
Migration
- No migration required. Existing documents, sessions, and preferences are preserved.
Maintenance
- Development version 2.1.6 (build 1138).
- v2.1.5Neon Vision Editor v2.1.52026-10-26 · 2026-10-26 20:59 UTC
查看更新说明
[v2.1.5] - 2026-10-26
Why Upgrade
- Finish words on the Mac from the macOS dictionary and your Text Replacements by pressing Tab.
- Quick Open, Go to Symbol, and the outline no longer rescan your project or document on every keystroke.
- Compare two folders on iPhone and iPad, and open a changed file's diff in the editor.
Highlights
- The Mac table of contents sidebar reopens the way you left it after quitting.
- Settings on iPhone and iPad has a Close button, including on iPhone Duo's outer display.
- On iPhone, the editor status stays above the keyboard shortcut bar again.
Fixes
- Settings on iPhone and iPad has a Close button in its top-right corner. On iPhone Duo's outer display the sheet could not be closed (#867).
- With Translucent Window turned on, the iPhone and iPad tab bar no longer turns into one solid grey bar; only the active tab is highlighted (#868).
- On iPhone, the editor status (line, column) sits above the keyboard shortcut bar again instead of covering it while the software keyboard is open.
- Quick Open stays responsive in large projects: deduplicating indexed files and ranking by recency no longer slow down with every file in the index.
- Go to Symbol filters the symbols captured when it opens instead of rescanning the whole document on every keystroke.
- The status bar's line and word counts are computed off the main thread, so pausing while typing in larger documents no longer stalls the editor.
- Markdown preview and log summary reuse compiled regular expressions instead of recompiling them per code block, table row, or line.
- Folder Compare works on iPhone and iPad: Browse opens the Files folder picker, and tapping a changed file shows its diff in the editor.
- The Folder Compare clear-folder button has a VoiceOver label and tooltip.
- The Mac toolbar symbols have more room between them.
- The outline sidebar builds its table of contents on a background thread, so pausing while typing in larger code files no longer stalls the editor.
- Quick Open loads recent files once when it opens instead of rereading them and resolving their bookmarks on every keystroke.
- The Mac table of contents sidebar reopens in the state you left it after quitting, in every restored document tab, instead of always starting closed (#876).
- New Mac setting, Suggest Words from System Dictionary: while typing plain text or Markdown, the editor suggests words from the macOS dictionary and your Text Replacements. Press Tab or Right Arrow to accept (#877).
Breaking changes
- None.
Migration
- No migration required. Existing documents, sessions, and preferences are preserved.
Maintenance
- Development version 2.1.5 (build 1135).
- v2.1.3Neon Vision Editor v2.1.32026-10-24 · 2026-10-24 22:28 UTC
查看更新说明
[v2.1.3] - 2026-10-25
Why Upgrade
- Select long, unwrapped lines on the Mac by dragging: the editor now scrolls sideways to follow the selection.
- The Mac Markdown formatting bar is back in the editor's top-right corner with all its buttons.
- Scroll the editor from the Mac minimap with the mouse wheel or trackpad.
Highlights
- Scrolling with the mouse wheel or trackpad while the pointer is over the Mac minimap scrolls the editor.
Fixes
- Dragging a selection past the left or right edge of a long unwrapped line on the Mac scrolls the editor sideways, so the text being selected stays visible (#854).
- The Mac Markdown formatting bar sits in the editor's top-right corner again, shows all its buttons when there is room, and no longer covers the first lines of text.
Breaking changes
- None.
Migration
- No migration required. Existing documents, sessions, and preferences are preserved.
Maintenance
- Development version 2.1.3 (build 1129).
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Status: active release
Latest release: v2.1.7 Next release target: v2.1.8 Platform target: macOS 26 (Tahoe) compatible with macOS Sequoia Apple Silicon: supported Direct GitHub release: v2.1.7 / App Store and TestFlight availability varies by platform and review status Last updated (README): 2026-11-09 for latest release v2.1.7
What's New in v2.1.6 and v2.1.7
Why Upgrade
- v2.1.7: On the Mac, words from the macOS dictionary and your Text Replacements appear in a list below the caret as you type.
- v2.1.7: Markdown previews and PDF exports show TeX formulas offline, using a bundled copy of KaTeX.
- v2.1.7: Typing in large documents on iPhone and iPad is faster, with far less delay per keystroke in files over 1 MB.
v2.1.7 Highlights
- In the word list, Up and Down Arrow pick a word, Tab or Right Arrow accepts it, and Escape closes the list.
- Clicking a word in the list inserts it, and Return accepts a word you picked with the arrow keys.
- Cheaper Inference uses gpt-5.4-mini by default, keeps its API token in the Keychain, and lets you set your own model id.
- Markdown previews and PDF exports render inline and display TeX formulas offline with bundled KaTeX. Formula underscores are preserved, and document JavaScript remains disabled (#942).
v2.1.6 Context
- v2.1.6: On smaller Mac screens, every Settings page fits above the Dock again, and taller pages scroll.
- v2.1.6: Typing and moving the caret on iPhone and iPad copies the document once per change instead of up to four times.
- v2.1.6: On iPhone Duo's unfolded display, the editor toolbar no longer covers the clock and status icons.
v2.1.6 Highlights
- Completion options have their own section in Mac Settings under Editor.
- Notes in Mac Settings wrap onto more lines instead of being cut off.
- Where iPhone Duo doesn't report the status bar's position, the editor toolbar moves to the bottom of the screen.
Start Here
- Jump: Install | Features | Contributing
- Quick install: GitHub Releases, App Store, TestFlight
- Need help quickly: Troubleshooting | FAQ | Known Issues
Start in 60s (Source Build)
git clone https://github.com/h3pdesign/Neon-Vision-Editor.gitcd Neon-Vision-Editorxcodebuild -project "Neon Vision Editor.xcodeproj" -scheme "Neon Vision Editor" -destination 'platform=macOS,name=My Mac' buildopen "Neon Vision Editor.xcodeproj"and run, then useCmd+Pfor Quick Open.
| For | Not For |
|---|---|
| Fast native editing across macOS, iOS, iPadOS | Full IDE workflows with deep refactoring/debugger stacks |
| Markdown writing and script/config edits with highlighting | Teams that require Windows or Linux support |
| Users who want low overhead and quick file access | Users expecting full desktop-IDE parity on iPhone |
Table of Contents
Release Channels
Download Metrics
Project Documentation
| Document | Purpose |
|---|---|
CHANGELOG.md | Full release history and milestone issue coverage |
release/RELEASE-WORKFLOW.md | Isolated release preparation, changelog/README generation, offline dry runs, and publication checks |
docs/ARCHITECTURE.md | Current cross-platform architecture, ownership boundaries, performance rules, and verification model |
CONTRIBUTING.md | Local setup, build, and contribution workflow |
PRIVACY.md | Privacy guarantees and data-handling policy |
SECURITY.md | Security policy and responsible disclosure |
release/ | TestFlight, App Store, and release preflight checklists |
Repository Layout
| Path | Contents |
|---|---|
Project/Sources/ | Main app, extensions, Neon Pulse products, and shared Swift source |
Project/Tests/ | Cross-platform test target and shared test plan |
Project/Configuration/ | Platform and widget property lists |
docs/ | Architecture, engineering documentation, and media |
samples/ | Language, Markdown, and PDF regression fixtures |
scripts/ | Build, validation, release, and maintenance automation |
site/ | Localized GitHub Pages website |
Who Is This For?
| Best For | Why Neon Vision Editor |
|---|---|
| Quick note takers | Fast native startup and low UI overhead for quick edits |
| Markdown-focused writers | Clean editing with quick preview workflows on Apple devices |
| Developers editing scripts/config files | Syntax highlighting + fast file navigation without full IDE complexity |
Why This Instead of a Full IDE?
| Advantage | What It Means |
|---|---|
| Faster startup | Lower overhead for short edit sessions |
| Focused surface | Editor-first workflow without project-system bloat |
| Native Apple behavior | Consistent experience on macOS, iOS, and iPadOS |
Download
Prebuilt binaries are available on GitHub Releases.
The direct GitHub release is currently ahead of the iOS/iPadOS App Store version. The App Store version may temporarily lag while updates are in Apple review.
| Channel | Platform | Best For | Download | Release Track | Notes |
|---|---|---|---|---|---|
| Stable | macOS | Direct notarized builds and fastest stable updates | GitHub Releases | v2.1.7 | Current direct download |
| Store | iOS / iPadOS | Apple-managed installs and updates | Neon Vision Editor on the App Store | v2.1.6 | Current public App Store listing |
| Store status | macOS | Apple-managed distribution | App Store Connect | Not verified | GitHub publication does not confirm an App Store submission or review status |
| Store | visionOS | Apple-managed installs and updates | Neon Vision Editor on the App Store | v1.6.1 | Current recorded visionOS listing |
| Beta | iOS / iPadOS / macOS | Testing upcoming changes before stable | TestFlight Invite | Not verified | Check the invite for available builds; GitHub publication does not confirm TestFlight availability |
Install
Quick install (curl)
Install the latest release directly:
curl -fsSL https://raw.githubusercontent.com/h3pdesign/Neon-Vision-Editor/main/scripts/install.sh | sh
Install without admin password prompts (user-local app folder):
curl -fsSL https://raw.githubusercontent.com/h3pdesign/Neon-Vision-Editor/main/scripts/install.sh | sh -s -- --appdir "$HOME/Applications"
Homebrew
Install the official Homebrew cask:
brew install neon-vision-editor
The explicit cask form is equivalent:
brew install --cask neon-vision-editor
Cask source: Homebrew/homebrew-cask
If Homebrew asks for an admin password, it is usually because casks install into /Applications.
Use this to avoid that:
brew install --cask --appdir="$HOME/Applications" neon-vision-editor
GitHub macOS command line helper
The direct macOS build from GitHub bundles an optional nve helper for terminal workflows. It is not included in the Mac App Store build. Install it only when you want a shell command:
- Open Settings > Support.
- Copy the Command Line Helper install command.
- Run it in Terminal to link the bundled helper into
$HOME/bin.
nve README.md
nve --wait --new-window "Project/Sources/Neon Vision Editor/UI/ContentView.swift"
nve --line 42 "Project/Sources/Neon Vision Editor/UI/ContentView.swift" # validates the line flag; cursor placement is not yet supported
Development builds can also link the repository copy:
mkdir -p "$HOME/bin"
ln -sf "$PWD/scripts/nve" "$HOME/bin/nve"
Permission model: the helper is optional and user-linked. It calls macOS Launch Services through /usr/bin/open and does not read file contents itself. Neon Vision Editor handles the document-open request inside the sandbox with user-selected read/write file access and security-scoped file access. It does not require Full Disk Access, Accessibility access, administrator permission, background services, or telemetry. See docs/CommandLineHelper.md.
Core Workflows
Features
Neon Vision Editor keeps the surface minimal and focuses on fast writing/coding workflows. Platform-specific availability is tracked in the Platform Matrix section below.
Current Feature Coverage
- Editing utilities: configurable iPhone/iPad keyboard actions, Copy Current Editor Reference, and Sort & Deduplicate Lines complement the regular save, find, undo, redo, and formatting commands.
- Languages and structured documents: Swift 6-ready highlighting includes TeX/LaTeX and Typst/CeTZ-aware editing; CSV/TSV, property lists, Apple crash reports, and recognized logs can switch between structured and raw-text views, and plain text can be transformed into validated JSON through an explicit AI-assisted action.
- Project and preview workflows: project-level Markdown/PDF cards reuse the project index for bounded excerpts and thumbnails, while Markdown, HTML, SVG, PDF, and PNG previews remain integrated with the editor.
- macOS integration: the embedded Quick Look extension previews supported Markdown and source files in Finder, and detached Markdown previews can use the same glass treatment without changing editor content.
- Latest stable additions (v2.1.7): In the word list, Up and Down Arrow pick a word, Tab or Right Arrow accepts it, and Escape closes the list; Clicking a word in the list inserts it, and Return accepts a word you picked with the arrow keys; Cheaper Inference uses gpt-5.4-mini by default, keeps its API token in the Keychain, and lets you set your own model id; Markdown previews and PDF exports render inline and display TeX formulas offline with bundled KaTeX. Formula underscores are preserved, and document JavaScript remains disabled (#942).
Editing Core
- Fast loading for regular and large text files with tabbed editing.
- Supported text files below 100 MB remain editable; unsupported large-file encodings can fall back to a read-only preview. The app starts a lightweight file-loading profile at 2 MB and can enable Large File Mode earlier for documents with high character or line counts.
- Large File Mode favors responsive opening, scrolling, and typing: full-document syntax analysis, minimap, preview, symbols, word count, and diff can be deferred or temporarily unavailable. The active mode and file size are shown in the editor status UI.
- Choose Standard for normal processing, Responsive for chunked installation and deferred work, or Plain Text when an unstyled editor is the safest choice for an unusually large document.
- Every editable macOS document uses the native AppKit/Core Text virtual renderer. It draws bounded visual rows, caches line layouts, and preserves caret and selection positions as the viewport moves. Eligible large local files use disk-backed storage with indexing prepared in the background before the editor takes ownership. iOS/iPadOS/visionOS use a separate
UITextViewinput and rendering path over the shared tab/document model. - Files at 100 MB or more open as a clearly marked, read-only Partial Open. Neon reads only the first 4 MB, ending at a line boundary where possible; it never loads the full file into the editor buffer or permits saving the partial content over the source.
- Broad Swift 6-ready syntax highlighting (including TeX/LaTeX and Typst/CeTZ), official Emmet 2 abbreviation expansion for markup and stylesheets, inline completion with Tab-to-accept, and regex Find/Replace with Replace All.
- On macOS, clickable gutter swatches for HEX colors in CSS, HTML, XML, and SVG open a native color picker. Changes update the source through the normal edit/undo path, preserving short and alpha forms when representable.
- On supported iPads and Apple Pencil hardware, hover previews the caret and Pencil dragging selects text. Double-tap/squeeze undo follows the system's Pencil preferences.
- Optional Code Minimap gives a compact file overview, click-to-jump navigation, and a draggable viewport marker without changing the default editor surface.
- Invisible-character markers on iPhone and iPad render in a lightweight overlay so spaces, tabs, and newlines stay aligned while scrolling.
- Scrolling the iPhone editor dismisses the software keyboard; iPad keeps the keyboard available while scrolling for its pointer and hardware-keyboard workflows.
- Trackpad pinch on macOS and touch pinch on iPhone, iPad, and Apple Vision Pro adjust editor font size while retaining the normal font controls.
- Optional Vim workflow support and starter templates for common languages.
Navigation & Workflow
- Quick Open (
Cmd+P), project sidebar navigation, and recursive project tree rendering. - Focus Mode hides secondary panes, preview, minimap, and macOS toolbar chrome without changing the open document. Its enabled state belongs to the current scene.
- The macOS Project Sidebar uses a single Files/Search/Git/Terminal glass rail with clearer active and inactive states, visible Git change counts, compact file-status rows, and a 450 pt default width. The Terminal tab is available only in the direct macOS build.
- The direct macOS project sidebar includes a Terminal tab that keeps output while switching tabs, offers project/home working-directory choices, and provides clear/restart controls. The App Store macOS build omits the PTY terminal and Python project runner.
- The terminal provides a persistent PTY shell, bounded scrollback, and ANSI colors. Its display is currently append-only: cursor-based progress rewrites and full-screen/alternate-screen programs are not supported. Remaining emulator and readiness work is tracked in #318.
scripts/nveopens files from the terminal and supports--wait,--new-window, and--linecompatibility flags.- Find in Files keeps results visible on Mac and iPad when a match opens, while replacement targets start unselected by default.
- In the next release, Find in Files respects project and nested
.gitignorefiles. Use the project sidebar's Ignored Folders menu to excludenode_modules,build,dist, and other listed output folders; custom paths and patterns belong in.gitignore. Unknown text-file extensions remain searchable. Git global excludes and tracked-file exceptions are not applied. - Remote Sessions are opt-in: macOS owns SSH-key login and can publish an attach code so iPhone, iPad, and Apple Vision Pro can browse, open, edit, and explicitly save supported remote text files through the Mac-hosted broker.
- Project quick actions (
Expand All/Collapse All), recent project folders, file filters for All Files, Modified, Images, PNG, PDF, and Markdown, and default ignored heavy folders (.git,.build,node_modules,DerivedData).
Settings & Sync
- Shared files stay synchronized in already-open tabs when iCloud Drive, a network folder, or another app delivers changes. Clean tabs refresh automatically; dirty tabs require Keep Local, Reload from Disk, or Compare, and the status area reports progress and files needing review.
- iCloud Drive or the network folder provides document transport; Neon Vision Editor observes, refreshes, and protects conflicts without uploading editor contents to its own service.
- Optional iCloud Appearance & Theme Sync keeps appearance, theme colors, custom theme data, formatting toggles, and Markdown preview theme behavior aligned across signed-in devices.
- Appearance-sync status includes the latest local iCloud result and timestamp. That settings service does not sync documents, API tokens, remote sessions, or editor contents.
Compare & Save
- Native side-by-side diff view for Compare with Disk and Compare Open Tabs workflows, with change navigation.
- Cross-platform
Save As…and Close All Tabs with confirmation. - Remote saves are explicit and conflict-aware; if the remote revision changes, the app offers a compare-before-reload path instead of overwriting silently.
AI Assistance
- Saved chat conversations support questions about an explicitly selected snippet, the current file, project structure, or no document context. Responses retain Markdown and code formatting; request cancellation and retry stay within the conversation.
- Whole-file chat context is currently unavailable for large disk-backed documents; selection and project-structure context remain separate options.
- Apple Intelligence is the default provider selection on supported systems. Other providers are opt-in, including OpenAI, Anthropic, Gemini, Grok, OpenCode Go, Cheaper Inference, and a configurable OpenAI-compatible endpoint. Availability depends on the selected provider and device; core editing works offline.
- Provider credentials stay in Keychain. Cloud-context disclosures and sensitive-content checks let you review what will be sent; restoring a saved chat does not silently attach fresh editor content.
- Plain-text-to-Markdown and plain-text-to-JSON actions produce proposals for review. JSON output must validate before it can be applied. These workflows and inline completion use the existing provider layer.
Preview, Platform, and Safety
- Contextual Markdown formatting provides inline actions, five heading levels, lists, quote/code tools, and structural insertion; iPhone presents the full set from a compact
Aacontrol. - Markdown preview body text follows the editor's resolved base font size and zoom. Ordered lists continue with the next number, and an explicit language selection stays a tab-level override.
- One opt-in toolbar control opens and closes Markdown, HTML, and SVG previews. PDF and PNG documents open native previews automatically from toolbar, macOS context-menu/Launch Services, paste/drop, and restored tabs; macOS plus regular-width iPad and visionOS use inline panes while iPhone uses a preview sheet.
- PDF text highlighting stores lightweight page geometry and selected text separately from the source PDF. Notes use the existing editor on the left and may reuse the existing Markdown preview beside the PDF; note preview is off by default and empty notes create no file or Save As dialog.
- Markdown previews provide 20 templates and GitHub Flavored Markdown support on macOS, iPhone, and iPad. Apple Vision Pro uses dedicated System Glass, Paper, Slate, and Ink reader surfaces.
- Markdown math uses bundled KaTeX:
$...$or\(...\)inline, and$$...$$or\[...\]for display equations (including multiline blocks). Preview, copied HTML, and PDF export work offline without enabling document JavaScript. Code spans and fenced code blocks remain literal; unsupported TeX appears as an error in place. .svgfiles support XML editing, bracket help, and rendered SVG Preview on all platforms.- Markdown and Swift source exports declare their content types correctly on iOS and iPadOS.
- Markdown-to-PDF export offers paginated and one-page output. Finder Quick Look previews supported Markdown and source files on macOS.
- Unsupported-file open/import safety guards, remote text-file limits, and session restore for previously opened project folder.
Customization & Diagnostics
- Choose from 30 built-in editor palettes plus Custom colors, including Neon Glow, Plasma Storm, AMOLED Neon, Dracula, Monokai, GitHub Dark, Nord, Tokyo Night, Gruvbox, and Mocha. The canonical palette list lives in ThemeSettings.swift.
- Grouped settings include theme and formatting controls, optional iCloud appearance sync, shortcut customization, and platform-specific preview presentation.
- Code Snapshot exports styled editor captures; AI Activity Log diagnostics remain available on macOS.
Established Workflows Since v1.4.0
- Shared-file sync without a proprietary cloud: keep a document open on multiple devices through iCloud Drive or a network folder, and Neon Vision Editor follows externally delivered changes. Clean tabs refresh automatically; dirty tabs stop for Keep Local, Reload from Disk, or Compare, with progress and review status shown in the editor.
- iCloud Drive or the network folder remains the sync transport; Neon Vision Editor provides the responsive open-tab detection, refresh, and conflict-protection layer rather than uploading document contents itself.
- Major Project Sidebar redesign: a single Files/Search/Git/Terminal glass rail, clearer inactive states, visible Git change counts, and compact file-status rows.
- Markdown editing now has a contextual, collapsible formatting surface with direct inline actions, five heading levels, lists, quote/code tools, and a compact
Aacontrol on iPhone. - Markdown, HTML, and SVG previews are opt-in through one toolbar control, close cleanly, and adapt between inline panes and the iPhone preview sheet.
- Large documents below 100 MB remain editable through the file-backed viewport path; files at 100 MB or above open as a clearly marked, read-only partial preview of the first 4 MB, protecting memory while preserving a useful inspection workflow.
- Trackpad and touch pinch gestures adjust editor font size; the minimap activates more reliably after tab changes and keeps its draggable viewport marker in sync.
- GitHub releases publish the signed app build number in their notes, allowing the macOS updater to distinguish newer builds that reuse the same release tag.
Architecture At A Glance
The current stable editor separates scene presentation, document ownership, native rendering, and optional services. Arrows show ownership or data exchange, not thread guarantees.
- Ownership:
ContentViewowns scene presentation; each window has an@MainActorEditorViewModel.TabCommandQueueserializes asynchronous tab mutations, whileTabDatakeeps UI identity, document resource identity, and content revisions distinct. - Storage:
EditorDocumentis the bounded read/edit contract, not the load/save controller.TabDatacurrently usesFileBackedTextDocumentfor both URL-backed files and content initialized in memory. Eligible large local files retain disk source ranges plus replacement pieces; the loader completes their line index before transferring ownership to the main actor. Saves preserve encoding and line endings and use the existing conflict and atomic-replacement flow. - Rendering:
VirtualEditorViewwraps an AppKit scroll view and a Core Text canvas implementingNSTextInputClient. It consumes bounded windows and UTF-16 ranges, uses generation/revision checks, and owns drawing, hit testing, selection, undo and input.CustomTextEditorwrapsUITextViewon iOS/iPadOS/visionOS. SwiftUI allocates panes; neither preview nor structured views create a second document store. - Editing services: shared syntax helpers, completion policy and
EmmetExpandersupport both native paths. Emmet 2 runs locally from the bundled JavaScript through JavaScriptCore; it is separate from provider-backed AI. The macOS HEX picker edits through the canvas's existing mutation path. - External changes:
OpenDocumentObservationCenterusesNSFilePresenterevents to refresh clean local tabs and offer Keep Local, Reload from Disk, or Compare for dirty tabs. iCloud Drive/network folders supply document transport; appearance sync is a separate preferences service. Peer-to-peer document handoff remains proposed in #164. - Work scheduling: loading/index preparation, non-trivial diff/structured snapshots and other asynchronous services use background work. UI state and native input stay on the main actor, including bounded interactive edits and Emmet expansion. The current terminal still parses output on the main actor; moving it behind a bounded screen model is unfinished work in #318.
- Optional services: project navigation/search reuse
ProjectFileIndex; chat captures explicit context before callingAIClient; remote sessions use macOS SSH/broker hosting with mobile/spatial attach clients. Provider credentials and SSH-key bookmarks remain in Keychain, while document recovery, saved conversations, preferences and PDF annotations use their respective stores. - Distribution: App Store builds use Apple updates. The separate direct macOS product adds Sparkle with a signed appcast, the PTY terminal, Python workflow and
nvehelper.ReleaseRuntimePolicygates distribution-specific behavior. - Color key: blue = platform shell, green = app orchestration, orange = core services, purple = infrastructure, pink = distribution products.
Full architecture reference: docs/ARCHITECTURE.md. The reference tracks the current Swift 6 cross-platform structure, platform guards, editor rendering paths, performance rules, distribution boundaries, and release verification workflow.
Implementation entry points: tab/document orchestration, document contract, storage, macOS canvas, UIKit editor, and distribution policy.
Architecture principles
- Keep UI mutations on the main thread (
@MainActor) and heavy work off the UI thread. - Keep window/scene state isolated to avoid accidental cross-window coupling.
- Keep security defaults strict: tokens in Keychain, no telemetry by default.
- Keep platform wrappers thin and push shared behavior into common services.
Platform Matrix
Neon Vision Editor shares its editor core across macOS, iPhone, iPad, and Apple Vision Pro. Platform-specific controls adapt to available space and input rather than exposing desktop-only workflows on touch devices. macOS also has two distribution profiles: the direct GitHub build includes optional local developer tools, while App Store builds keep those executable-code workflows out of the shipped UI.
Platform boundary: Git review is available on macOS when a local repository and Git installation are present. The PTY Terminal, Python project creation/execution, and the bundled
nvecommand-line helper are direct-macOS-only; they are not included in the App Store macOS build and are not exposed on iPhone, iPad, or Apple Vision Pro. SSH-hosted Remote Sessions remain opt-in and use macOS as the host.
Availability key: full native workflow ·
layout adapts to space and input ·
touch-first presentation ·
local desktop capability
Shared Across All Platforms
- Native text editing, syntax highlighting, line wrap controls, bracket helper, and large-file safeguards.
- Opt-in Preview for Markdown, HTML, and SVG documents; PDF and PNG previews open automatically. An attached Markdown note uses the existing editor and its optional preview is off by default.
- Markdown formatting that wraps selections or inserts paired markers without one; heading, list, quote, code, link, image, and table actions are available from an adaptive control surface.
- Platform-optimized toolbar presets: macOS and iPadOS use compact labels, while iPhone keeps the toolbar icon-first. Standard, focused, developer, review, complete, and custom configurations are available from Settings where the platform supports them.
- iPhone and iPad support double-tap tab closing while preserving unsaved-change confirmation; iOS retains its transparent status-bar and navigation-surface composition.
- Optional Code Minimap for supported languages, with viewport navigation and a draggable marker where space permits.
- Close All Tabs confirmation, unsupported-file safety alerts, and grouped Settings cards.
Platform-Specific Differences and Features
| Capability | macOS | iPhone | iPad | Apple Vision Pro | Notes |
|---|---|---|---|---|---|
| Emmet 2 | Native editor | Native editor | Native editor | Native editor | Local abbreviation expansion in supported markup/stylesheet contexts; uses configured indentation. |
| HEX color picker | Gutter swatch and native picker | -- | -- | -- | CSS/HTML/XML/SVG; source edits preserve representable short and alpha formats. |
| Apple Pencil editing | -- | -- | Hover caret, drag selection, preference-aware undo | -- | Requires compatible iPad/Pencil hardware and enabled system preferences. |
| Saved AI chats | Sidebar | Compact presentation | Sidebar | Adaptive presentation | Explicit context; optional providers; credentials in Keychain. |
Quick OpenCmd+P | Keyboard-first navigation remains available whenever a hardware keyboard is connected. | ||||
| Project workspace | Git review is macOS-only; the PTY Terminal is direct-macOS-only. | ||||
| Find in Files | On Mac and iPad, results remain visible while opening a match. | ||||
| Markdown formatting | Aa status-row menu | Direct Bold, Italic, Link, Quote, and Code actions; structural actions and five heading levels remain available in menus. | |||
| Toolbar and workspace presets | Presets are configured from Settings; labels and available controls adapt to space and input. | ||||
| Tab closing | Unsaved-change confirmation remains active on every platform. | ||||
| Status-bar and navigation surface | v1.2.1 restores the transparent iOS status-bar composition without changing the editor or preview layout. | ||||
| PreviewMarkdown, HTML, SVG, PDF, PNG | Markdown/HTML/SVG remain opt-in; PDF/PNG open automatically. PDF notes reuse the existing editor and optional Markdown preview. | ||||
| Preview appearance | visionOS intentionally uses its own reader surfaces instead of the full Markdown template collection. | ||||
| Font-size gesture | Gestures adjust editor font size from 10 to 28 pt and retain the regular font-size controls. | ||||
| Code Minimap | Available for supported languages; it stays hidden for document types where a minimap is not useful. | ||||
| Diff workflows | Compact presentations avoid taking over narrow touch layouts. | ||||
| Git review | -- | -- | -- | Requires a local Git repository and an installed Git executable on macOS. | |
| PTY Terminal and Python workflow | nve helper | -- | -- | -- | Available in the direct GitHub macOS build; intentionally omitted from App Store macOS builds and all mobile/spatial builds. |
| Remote sessions | Remote access is opt-in; iPhone, iPad, and visionOS explicitly save through a Mac-hosted session. | ||||
| Save and export | iPhone and iPad export Markdown and Swift with their declared content types. |
Trust & Reliability Signals
- Primary notarized release pipeline: release-github-only.yml. The other release workflows are manual fallbacks for an already-created tag.
- Pre-release verification gate: pre-release-ci.yml
- Security scanning: CodeQL workflow
- Performance coverage includes four 100,000-line editor interaction benchmarks, versioned latency/retained-data budgets, and CI result export. A complete workload/platform profiling matrix and dedicated end-to-end UI jobs remain tracked in #318; platform builds and unit tests do not establish that runtime coverage.
More release integrity details: Release Integrity
Platform Gallery
- macOS
- iPad
- iPhone
- Source image index for docs:
docs/images/README.md - App Store gallery: Neon Vision Editor on App Store
- Latest release assets: GitHub Releases
macOS
iPad
iPhone
Release Train
| Track | Current Focus | Status |
|---|---|---|
| Stable direct download | v2.1.7 notarized GitHub release | Current |
| App Store rollout | Platform releases are published independently after App Review | Check the relevant App Store listing |
| Post-1.4 stabilization | Crash triage, docs freshness, platform polish, App Store/Xcode Cloud release checks | Next patch train |
| Larger workflow work | Remote workflow hardening, minimap polish, project navigation refinements | Later v1.5+ work |
Roadmap (Near Term)
Now (v2.1.7)
delivers file-backed large-document editing, bounded live viewport virtualization, reliable ordinary-file installation, and the release workflow hardening shipped alongside the release. Tracking: Release v2.1.7
Next (v2.1.8)
targets the reviewed changes listed under Unreleased in CHANGELOG.md; scope is not final until release preparation. Tracking: Milestones
Later (v1.5+)
larger workflow expansion after the current cross-platform editor baseline is verified, with remote workflows and navigation surfaces kept opt-in until they are fully hardened.
Known Issues
- Open known issues (live filter): label:known-issue
Troubleshooting
- Markdown/PDF/PNG preview not visible: use the preview action for Markdown, or reopen the PDF/PNG; PDF/PNG previews should activate automatically when opened.
- A PDF note is not visible: choose Notes in the PDF preview; the attached
<pdf-name>.pdf.notes.mdopens in the existing editor on the left. Enable the optional Markdown preview explicitly to render it beside the PDF. - Shortcut not working on iOS: connect a hardware keyboard for shortcut-based flows like
Cmd+P. - Sidebar/layout feels cramped on iPad: switch orientation or close side panels before preview.
- Settings feel off after updates: quit/relaunch app and verify current release version in Settings.
- Remote connection refused on a local Mac target: enable System Settings > General > Sharing > Remote Login, then start the Remote session again.
Configuration
- Theme and appearance:
Settings > Designs - Appearance/theme iCloud sync:
Settings > Allgemein/General > Window - Editor behavior (font, line height, wrapping, snippets, minimap):
Settings > Editor - Startup/session behavior:
Settings > Allgemein/General - Remote sessions:
Settings > Mehr/More > RemoteorSettings > Remoteon wider layouts - Support and purchase options:
Settings > Mehr/More(platform-dependent)
FAQ
- Can I use it offline?
Yes for core editing. Network is only used for explicit actions such as selected AI providers, update checks, GitHub release downloads, or opt-in Remote Sessions. - Do I need AI enabled to use the editor?
No. Core editing, navigation, and preview features work without AI. - Where are tokens stored?
In Keychain viaSecureTokenStore, not inUserDefaults.
Keyboard Shortcuts
All shortcuts use Cmd (⌘). iPhone, iPad, and Apple Vision Pro require an external hardware keyboard. The table shows defaults; selected editor shortcuts can be customized in Settings > Shortcuts.
Availability key: assigned shortcut ·
external keyboard required ·
desktop command
File and Editing
| Shortcut | Action | macOS | iPhone | iPad | Apple Vision Pro |
|---|---|---|---|---|---|
Cmd+N | New Window | -- | -- | -- | |
Cmd+T | New Tab | ||||
Cmd+O | Open File | ![Full](https://img.shields.io/ |