Commit graph

45 commits

Author SHA1 Message Date
h3p
86dbc939f3 Harden runtime paths and fix release_all date arg handling 2026-02-12 18:31:51 +01:00
h3p
7fae018cfc Update screenshot in README 2026-02-12 10:15:40 +01:00
h3p
63fea2f67f Harden editor invisibles handling and refresh welcome tour notes 2026-02-11 15:31:24 +01:00
h3p
e68e58955b Fix iOS app icon composition and stabilize syntax highlighting 2026-02-11 14:54:04 +01:00
h3p
c451447d9e build: lower macOS deployment target to 15.0 for Sequoia support 2026-02-11 13:07:43 +01:00
h3p
8166aab9ef release: switch team id and bump bundled tap cask to v0.4.5 2026-02-11 11:55:07 +01:00
h3p
55560216ea signing: enable code signing for app target debug and release 2026-02-11 11:38:03 +01:00
h3p
cf3c73117b signing: align project development team to FBJV8KKG37 2026-02-11 11:37:05 +01:00
h3p
d64afe7063 release: ship v0.4.5 editor stability and App Store support 2026-02-11 11:20:17 +01:00
h3p
f0e9ade4d8 ui: add toolbar map scroll hint 2026-02-09 20:59:09 +01:00
h3p
4fc6abd7ff fix: register all document types for iOS 2026-02-09 20:07:17 +01:00
h3p
07179e0abe ui: enlarge toolbar map frame 2026-02-09 19:38:05 +01:00
h3p
a13b9ad261 ui: fix welcome tour toolbar overflow 2026-02-09 11:59:06 +01:00
h3p
69cd95ec0d release: v0.4.4-beta updates, AI completion UX, language detection, tests, docs 2026-02-09 11:34:12 +01:00
h3p
d6abfcdf60 Revert "release: v0.4.4-beta updates, AI completion UX, language detection, tests, docs"
This reverts commit 43edea2102.
2026-02-09 11:32:19 +01:00
h3p
43edea2102 release: v0.4.4-beta updates, AI completion UX, language detection, tests, docs 2026-02-09 11:21:50 +01:00
h3p
8f770883af Wire macOS file associations and active-window open 2026-02-09 00:15:47 +01:00
h3p
6475747725 Add new language support and fixtures (v0.4.3-beta) 2026-02-08 23:41:39 +01:00
h3p
d59a90aeeb Fix scroll lock after large paste in editor 2026-02-08 17:47:47 +01:00
h3p
d54a05612a Fix large-file import responsiveness and post-load navigation stability
- restore determinate import progress behavior
- optimize drop apply path for large files and avoid expensive full-range scrolling
- keep caret at insertion start for large-file drops to preserve immediate scrollability
- reduce large-file UI stalls by skipping expensive caret line/column scans and using lightweight position reporting
- improve macOS text layout responsiveness with non-contiguous layout enabled
2026-02-08 12:57:41 +01:00
h3p
4293981992 docs(release): expand v0.4.2-beta notes for new syntax and detection coverage
Update README and CHANGELOG for the existing v0.4.2-beta release without bumping
the version, documenting the latest editor language support improvements.

- Add v0.4.2-beta notes for syntax highlighting support in vim, log, and ipynb files
- Document new extension/dotfile detection for .vim, .log, .ipynb, and .vimrc
- Clarify .h default mapping to cpp for practical C/C++ header highlighting
- Record language picker/menu additions for Vim, Log, and Jupyter Notebook
- Keep release tag/version unchanged (still v0.4.2-beta)
2026-02-08 12:14:49 +01:00
h3p
29d6b5dc5d fix(commands): scope toolbar/menu actions to active window, unify toggle persistence, and stabilize cross-platform command handling 2026-02-08 10:58:46 +01:00
h3p
d2687e7682 feat(ui): polish welcome tour and streamline macOS menu commands
- Add first-launch Welcome Tour sheet with richer feature messaging
- Make Welcome Tour adaptive to light/dark appearance
- Refine tour layout: centered content, cleaner spacing, compact progress indicator
- Remove extra inner edge border and tune card/container visual balance
- Expand tour copy to cover:
  - automatic syntax highlighting
  - AI providers for simple code completion/suggestions
  - all sidebars and toolbar options
- Add macOS menu action to reopen Welcome Tour for testing
- Consolidate duplicate View menu entries into the system View menu
- Shorten Diagnostics menu labels and entries (compact status/check/RTT text)
- Keep iOS/iPad paged tour behavior while using macOS-compatible TabView style
2026-02-08 01:08:36 +01:00
h3p
9ea3b9aebd adjusted version 2026-02-08 00:04:04 +01:00
h3p
db43757005 Prepare App Store security and distribution for v0.4.1-beta 2026-02-07 23:56:52 +01:00
h3p
0c79da941f Improve editor UX across iOS, iPadOS, and macOS
iOS
- Keep compact, phone-appropriate toolbar behavior
- Improve toolbar/menu responsiveness and action access consistency
- Include mobile editor parity fixes (syntax highlighting and line-number visibility)

iPadOS
- Make toolbar width adaptive to device/screen size
- Keep toolbar height compact (matching iPhone-style vertical density)
- Distribute toolbar controls across available width
- Promote key overflow actions to visible toolbar buttons when space allows
  (open/save, sidebar toggles, find/replace, wrap, completion), with overflow fallback
- Use active UIWindowScene screen bounds for width calculation (deprecation-safe)

macOS
- Keep full toolbar + menubar action coverage aligned
- Preserve desktop toolbar behavior while iOS/iPadOS layouts diverge
- Retain platform-specific toolbar/menu polish without regressions
2026-02-07 11:55:39 +01:00
h3p
0945b23b01 Improve editor UX across iOS, iPadOS, and macOS
iOS
- Keep compact, phone-appropriate toolbar behavior
- Improve toolbar/menu responsiveness and action access consistency
- Include mobile editor parity fixes (syntax highlighting and line-number visibility)

iPadOS
- Make toolbar width adaptive to device/screen size
- Keep toolbar height compact (matching iPhone-style vertical density)
- Distribute toolbar controls across available width
- Promote key overflow actions to visible toolbar buttons when space allows
  (open/save, sidebar toggles, find/replace, wrap, completion), with overflow fallback
- Use active UIWindowScene screen bounds for width calculation (deprecation-safe)

macOS
- Keep full toolbar + menubar action coverage aligned
- Preserve desktop toolbar behavior while iOS/iPadOS layouts diverge
- Retain platform-specific toolbar/menu polish without regressions
2026-02-07 11:51:52 +01:00
h3p
16c12e74bc `feat(editor): add tab strip with unsaved-close flow and refine sidebar/window controls
- Add open-file tab strip below toolbar with tab selection and close buttons
- Track per-tab dirty state in TabData (`isDirty`)
- Mark tabs dirty on content change and clear dirty flag on successful save/save as
- Add close-confirmation dialog for unsaved tabs:
  - Save
  - Don't Save
  - Cancel
- Implement close helpers in ContentView actions:
  - requestCloseTab
  - saveAndClosePendingTab
  - discardAndClosePendingTab
- Keep tab open when Save As is cancelled
- Fix left sidebar toolbar icon to always use left-sidebar symbol
- Keep right sidebar toggle separate and unchanged
- Continue using blank-window toolbar action for new windows`
2026-02-06 20:20:03 +01:00
h3p
2371c48bf1 refactor(editor): split ContentView and improve window/sidebar/search UX
- Split large ContentView into focused files:
  - ContentView+Toolbar.swift
  - ContentView+Actions.swift
  - EditorTextView.swift
  - SyntaxHighlighting.swift
  - SidebarViews.swift
  - PanelsAndHelpers.swift
- Fix markdown highlighting over-coloring by tightening markdown regex patterns
- Add true blank-window flow:
  - New Window scene with isolated EditorViewModel
  - Wire Cmd+N/system New to open blank window
  - Add toolbar New Window button
- Add right-side project structure panel:
  - Default disabled
  - Open Folder + recursive folder tree browsing
  - Open file from tree and refresh tree actions
- Add toolbar toggle for right project structure sidebar
- Upgrade find/replace:
  - Regex mode
  - Case-sensitive mode
  - Find Next / Replace / Replace All status feedback
- Apply translucent window background behavior consistently across windows and side panels
- Resolve post-refactor access-control/build issues:
  - Expose cross-file ContentView action methods
  - Expose NSRange.toOptional() for action extensions`
2026-02-06 19:59:53 +01:00
h3p
38e5911220 Fix line number ruler scrolling and translucency
- Move LineNumberRulerView into its own file
- Fix line number updates while scrolling
- Preserve window translucency by avoiding opaque ruler drawing
- Remove unused textContainer binding
2026-02-06 17:06:34 +01:00
h3p
77b402044f Improve editor behavior and UI options
- Fix Swift code being misclassified as C# by unifying language detection
- Remove conflicting AI-based language detection on paste
- Route paste, open, and edit events through LanguageDetector
- Add toggle for translucent editor background
- Persist translucency preference across sessions
- Minor cleanup of conflicting or redundant editor logic
2026-02-06 14:29:34 +01:00
h3p
94493cb498 Improve AppleFM Foundation Models integration and fix streaming issues
• Add robust availability checks for Apple Intelligence (iOS 18 / macOS 15) before using system language model
• Implement health check via LanguageModelSession to validate model responsiveness (“ping” -> “pong”)
• Provide synchronous completion API appleFMComplete(prompt:) returning model response text
• Implement streaming completion API appleFMStream(prompt:) that yields incremental deltas
• Fix optional handling in streaming: unwrap partial.content.text safely and remove force unwraps
• Correct delta computation using unwrapped current string and maintain last state
• Add graceful fallback to single-shot completion if streaming fails
• Provide stubbed implementations when USE_FOUNDATION_MODELS is disabled to ensure build stability across configs
2026-02-05 22:30:21 +01:00
h3p
c141478814 feat(ui): remove custom hover popovers and rely on native macOS tooltips
• Remove HoverPopoverModifier and all .hoverPopover usages from toolbar
• Use .help(...) for OS-native tooltips on all toolbar items
• Ensure help strings are complete and descriptive (e.g., “Find & Replace”)
• Keep click-driven AI Model popover intact; only hover tooltips removed
• Prevents first-click dismissal behavior and avoids duplicate tooltips
2026-02-04 17:48:50 +01:00
h3p
09d6b8f435 Implement Grok and Gemini for inline code completion; fix exhaustive switch
- Wire up Grok (xAI) and Gemini (Google) API calls inside generateModelCompletion(...)
  - Grok: POST https://api.x.ai/v1/chat/completions with OpenAI-style messages
  - Gemini: POST v1beta/models/<model>:generateContent with contents/parts payload
  - Reuse existing prompt and sanitizeCompletion(_:) to keep output concise
  - Respect missing/empty tokens by short‑circuiting to no-op
- Ensure these providers are only used by inline completion, already gated by isAutoCompletionEnabled

- AIClientFactory: make switch exhaustive by adding `.anthropic` case (returns nil for now)
  - Anthropic is handled directly in ContentView’s inline completion path

Notes:
- No changes to other features or UI flows
- OpenAI and Anthropic implementations remain as previously added
- Gemini model used: gemini-1.5-flash-latest
- Grok model used: grok-2-latest

Testing:
- Toggle code completion with the toolbar button; when disabled, no API calls occur
- With tokens set, select Grok/Gemini and type to trigger suggestions
- Verify suggestions insert without duplication and are trimmed via sanitizeCompletion
- Build to confirm AIClientFactory switch error is resolved
2026-02-04 14:11:28 +01:00
h3pdesign
8a83a31c29 minor fix 2026-01-25 14:11:15 +01:00
h3pdesign
e4bf47fa08 Further changes to Complete rework of the AI selector. Added OpenAI and Gemini. Drag & Drop files to App Window. Added Tooltips on hover for the Toolbar. Added clean window button. Added AI Model API settings. 2026-01-25 13:46:33 +01:00
h3pdesign
9183d941e3 Removed top comment 2026-01-23 14:43:59 +01:00
h3pdesign
ed2ee4cfe8 added bash and zsh as langauge, added function for opening all files 2026-01-23 12:49:52 +01:00
Rodric Krogh
05c7677443 Fixed line numbering 2026-01-21 00:46:04 +01:00
Rodric Krogh
70cfffaafc added autimatic language selection with Apple fm model 2026-01-17 13:04:11 +01:00
Rodric Krogh
a21b27466d UI changes. Fixed Sidebar 2026-01-17 12:25:50 +01:00
Rodric Krogh
39ce3f3443 Adjustments for the rewrite code. Text field adjustments 2026-01-15 18:48:06 +01:00
Rodric Krogh
0faaff61cb Adjustments to tabbar approach and syntax highlighting of text code 2025-08-27 13:34:59 +02:00
Rodric Krogh
d3bd921823 First build 2025-08-26 11:49:52 +02:00
Rodric Krogh
ab543db75b Initial Commit 2025-08-25 09:39:12 +02:00