Skip to content

FerrisPad v0.9.1-rc.1

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 03 Mar 22:19
· 150 commits to master since this release

Added

  • Lua Plugin System: Full Lua 5.4 scripting with statically linked mlua, 8 synchronous hooks (on_document_open, on_document_save, on_document_close, on_document_lint, on_highlight_request, on_widget_action, init, shutdown).
  • Plugin Security Sandbox: Path validation against project root, command approval flow, instruction counter limits, Lua garbage collection monitoring, and timeout enforcement.
  • Plugin Signature Verification: ed25519 cryptographic signing and verification for plugins via plugin-signer tool.
  • Plugin Manager Dialog: Browse, install, enable/disable, and configure plugins with cross-tab sync between Installed and Available tabs.
  • Plugin Configuration System: Per-plugin settings with string, number, boolean, and choice types, validation rules, and live config dialogs.
  • Plugin Permission Approval Dialog: Users explicitly approve plugin permissions (e.g., run_command) before granting access.
  • Plugin Auto-Update Checking: Background version checks against remote plugin registry.
  • Plugin Menu Items: Plugins can register menu actions with keyboard shortcuts.
  • Widget API for Plugins: Split view (diff/suggestions with intraline highlighting) and tree view (file browser, YAML viewer) widgets created from Lua.
  • Plugin-Defined Context Menus: Plugins can add context menu items to tree panel nodes.
  • Tree Panel: File explorer with drag-and-drop file moves, search filtering, click-to-line, git status indicators (modified/added/conflict colors), and type indicators for YAML/JSON ({N} and [N] counts).
  • Split Panel: Two-pane diff view with syntax highlighting, font matching, and resizable divider.
  • Diagnostic Panel: Hover tooltips with fix suggestions, double-click to open docs URL, toast notifications for diagnostic events.
  • Plugin API: run_command, open_file, goto_line, clipboard access, venv detection, cross-platform filesystem API, inline highlighting, custom RGB colors, line annotations, and gutter marks.
  • Key Shortcuts Dialog: Centralized keyboard shortcut viewer replacing per-plugin shortcut fields.
  • Large File Handling: Size validation to prevent crashes, tail mode for files >1.8GB, read-only viewer, progress dialog for 100MB+ files, memory-optimized loading.
  • Toast Notifications: Non-blocking notifications for plugin events and diagnostics.
  • TOML Syntax Highlighting: Added TOML to the supported syntax highlighting languages.
  • Flat Themed Scrollbars: Applied to main editor and all dialogs.
  • Syntax Highlighting for Split View: Diffs display with proper syntax coloring and font matching.
  • Independent Syntax Theme Selection: Choose syntax theme independently with live preview.
  • Configurable Tab Size: User-configurable tab width setting.
  • External Browser Markdown Preview: Stable file naming for browser preview.

Fixed

  • Clipboard Copy Path on Wayland: Fixed Copy Path not working on Wayland sessions.
  • Plugin Shortcuts After Session Restore: Shortcuts now work correctly after restoring a session.
  • Wayland Popup Menu Positioning: Fixed RefCell panic in tab bar and proper popup anchoring.
  • Linting Fired for Any File Type: Now correctly scopes linting to relevant file types.
  • Tab Bar Layout on Tree Panel Toggle: Recalculates layout when tree panel shows/hides.
  • Tree Panel Themes: Correct text color, flat selection style, and theme-derived selection color for dark/light modes.
  • Tree Panel Layout: Fixed gaps, scrollbar style, header height, and nested folder duplication.
  • Tab Drag Between Groups: Correctly joins target group when dragging tabs.
  • Tab Bar Overflow: Added scroll arrows for overflow handling.
  • Temp File Duplicate Bug: Fixed duplicate temp file creation.
  • Dark Mode Text Color: Improved UI theming consistency.
  • Diagnostic Tooltip Updates: Tooltip refreshes after clicking diagnostic item.
  • Dirty Flag on Tab Switch: Fixed incorrect dirty flag state.
  • Plugin Manager Cross-Tab Sync: Correct registry name format on uninstall, no ghost rows on update.

Changed

  • Clean Architecture Reorganization: Moved src/app/ into domain/controllers/services/infrastructure/plugins layers.
  • Dialog Redesign: Theme-derived colors with VSCode-style layout across all dialogs.
  • Flat Menu Bar: Dynamic syntax theme colors applied to menu bar.
  • Plugin Manager UX: Flat buttons, toggle switches, details button, per-action shortcuts.
  • Replaced reqwest with minreq: Lighter HTTP client with rustls (no OpenSSL dependency).
  • System font size used instead of hardcoded 14px.
  • Disabled dotted visible focus indicator globally.