A macOS native IDE tool for Oracle Database developers.
- DB Object Quick View in the editor. ⌘-click or press ⌘I on any table, view, package, procedure, function, type, or column reference to pop up a compact details popover — columns with types and flags, indexes, triggers, package members with argument signatures, view SQL. Configurable hotkey in Settings → Editor; works against the per-connection cache, no live DB round-trip.
- Code completion for tables, views, and columns (alias-resolved), driven by the tree-sitter parse tree and the cached DB objects.
- Oracle SQL and PL/SQL syntax highlighting via my tree-sitter grammar tree-sitter-sql-orcl. Incremental highlighting via STTextView's Neon plugin.
- Connection Manager in Settings → Connections — import
connections from your existing
tnsnames.oraonce, then manage everything in-app. Macintora no longer requires a maintainedtnsnames.oraon disk. - Trivadis SQL & PL/SQL formatter wired into the editor. Format the current statement or the whole document; settings ship with sensible defaults and can be customised by pointing at your own Trivadis config (see Settings → Formatter Path).
- Pure-Swift Oracle driver (oracle-nio):
- No Oracle Instant Client download or install — Macintora speaks Oracle's native TTC/TNS wire protocol directly.
- Native Apple Silicon builds (no Rosetta).
- Full Swift 6 strict concurrency across the app.
- TLS, SYSDBA, and Cloud-IAM authentication supported via oracle-nio's configuration.
Oracle Database 12.1 or later is supported.
- macOS 14+ (Sonoma)
- Xcode 26 with Swift 6.x toolchain
- Oracle Database reachable at host/port with a valid service name (or SID)
- oracle-nio — pure-Swift Oracle driver (pinned to
v1.0.0-rc.4) - STTextView — TextKit 2 code editor (local SPM at
../STTextView) - STTextView-Plugin-Neon — tree-sitter syntax highlighting plugin (local SPM at
../STTextView-Plugin-Neon) - STTextKitPlus — TextKit 2 range/location helpers (local SPM at
../STTextKitPlus) - SF Mono Font (recommended for the result grid)
Clone the repo and open Macintora.xcodeproj in Xcode. Build and run the MacOra scheme.
Install the Trivadis PL/SQL & SQL Formatter and point Macintora to it via Settings → Formatter Path. After that, the editor's Format action runs the formatter on the current statement or the entire document. Trivadis configuration files (format.xml, arbori-program.txt) are picked up from the same directory if present, so you can tune output to your team's standards.
Macintora's Connection Manager lives in Settings → Connections. The first time you open it you can import your existing tnsnames.ora in one click; after that, all connection metadata is stored inside Macintora and you don't need to maintain the tnsnames.ora file anymore.
You can also add connections by hand via the form, or paste a JDBC-style URL:
host:port/service
host/service # port defaults to 1521
jdbc:oracle:thin:@host:port/service
jdbc:oracle:thin:@(DESCRIPTION = ...)
Passwords are stored in the macOS Keychain. Per-connection details (TLS, SYSDBA, edition, etc.) are exposed in the editor form.
Architecture and roadmap docs live under docs/.
- Tree-sitter SQL/PL-SQL parsing architecture — how the three-repo grammar/plugin/app integration is wired, how to reach the parse tree from Swift, and a node/field reference for everything the grammar produces.
Future-feature roadmaps (designed, not yet implemented):
- Outline view — sidebar listing top-level symbols and package members; click to jump.
- Jump-to-symbol (and back) — Cmd-click navigation, in-buffer first, then cross-file, then DBCache; with a back/forward stack.
- Basic formatter — native Swift Wadler-style pretty-printer for SQL and PL/SQL (a lighter alternative to the Trivadis integration).
- Advanced formatter with user-defined patterns — second-stage formatter that accepts
.scmrule files, ships a curated default rule set, and adds column-anchored alignment.
Implemented (originally listed here):
- Code completion — tables, views, alias-resolved columns, and package members are live; PL/SQL in-scope variables remain on the roadmap.
- oracle-nio — pure-Swift Oracle driver (replaces SwiftOracle/OCILIB).
- STTextView — TextKit 2 source editor (replaces CodeEditor).
- STTextView-Plugin-Neon — tree-sitter highlighting plugin.
- tree-sitter-sql-orcl — my Oracle SQL & PL/SQL grammar; powers the highlighter, completion, and Quick View.
- SwiftUIWindow (inspiration)
- Trivadis PL/SQL & SQL Formatter Settings