rufio 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +188 -0
  3. data/CHANGELOG_v0.4.0.md +146 -0
  4. data/CHANGELOG_v0.5.0.md +26 -0
  5. data/CHANGELOG_v0.6.0.md +182 -0
  6. data/CHANGELOG_v0.7.0.md +280 -0
  7. data/CHANGELOG_v0.8.0.md +267 -0
  8. data/CHANGELOG_v0.9.0.md +279 -0
  9. data/README.md +631 -0
  10. data/README_EN.md +561 -0
  11. data/Rakefile +156 -0
  12. data/bin/rufio +34 -0
  13. data/config_example.rb +88 -0
  14. data/docs/PLUGIN_GUIDE.md +431 -0
  15. data/docs/plugin_example.rb +119 -0
  16. data/lib/rufio/application.rb +32 -0
  17. data/lib/rufio/bookmark.rb +115 -0
  18. data/lib/rufio/bookmark_manager.rb +173 -0
  19. data/lib/rufio/color_helper.rb +150 -0
  20. data/lib/rufio/command_mode.rb +72 -0
  21. data/lib/rufio/command_mode_ui.rb +168 -0
  22. data/lib/rufio/config.rb +199 -0
  23. data/lib/rufio/config_loader.rb +110 -0
  24. data/lib/rufio/dialog_renderer.rb +127 -0
  25. data/lib/rufio/directory_listing.rb +113 -0
  26. data/lib/rufio/file_opener.rb +140 -0
  27. data/lib/rufio/file_operations.rb +231 -0
  28. data/lib/rufio/file_preview.rb +200 -0
  29. data/lib/rufio/filter_manager.rb +114 -0
  30. data/lib/rufio/health_checker.rb +246 -0
  31. data/lib/rufio/keybind_handler.rb +828 -0
  32. data/lib/rufio/logger.rb +103 -0
  33. data/lib/rufio/plugin.rb +89 -0
  34. data/lib/rufio/plugin_config.rb +59 -0
  35. data/lib/rufio/plugin_manager.rb +84 -0
  36. data/lib/rufio/plugins/file_operations.rb +44 -0
  37. data/lib/rufio/selection_manager.rb +79 -0
  38. data/lib/rufio/terminal_ui.rb +630 -0
  39. data/lib/rufio/text_utils.rb +108 -0
  40. data/lib/rufio/version.rb +5 -0
  41. data/lib/rufio/zoxide_integration.rb +188 -0
  42. data/lib/rufio.rb +33 -0
  43. data/publish_gem.zsh +131 -0
  44. data/rufio.gemspec +40 -0
  45. data/test_delete/test1.txt +1 -0
  46. data/test_delete/test2.txt +1 -0
  47. metadata +189 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: d38a3f174b672b93170b943705a2273d9d059fe25c30617654e510679e54d6b8
4
+ data.tar.gz: df79412f9a76d3043b11de5d3a01c57d62cd88cd3074cf2ce9fb1cab638810b7
5
+ SHA512:
6
+ metadata.gz: b4385e2844d0c5c806facec4ac6e0c7841a9a9a332ef476b66af04812ced251f20b3904c95d94fcfb47da59f43f43138bde36d03bbf15a60784e3b1001062547
7
+ data.tar.gz: e1005adf29e7eaaadb2d7d01a742a74b43c2eb1415de10af521944c9d52bc663da9b1e39bd6611f12f88af85734e5345fefa2bc0d9637379ab6ef772b9852bc2
data/CHANGELOG.md ADDED
@@ -0,0 +1,188 @@
1
+ # Changelog
2
+
3
+ All notable changes to rufio will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ### Added
11
+ - **Escape key support for file/directory creation**: Press `Esc` to cancel file (`a`) or directory (`A`) creation prompts and return to the main view
12
+ - **Interactive input improvements**: Backspace support and better character handling for Japanese input
13
+
14
+ ### Fixed
15
+ - **Module loading order**: Fixed `LoadError` for filter_manager and related dependencies
16
+ - **Required dependencies**: Added proper require statements for all keybind_handler dependencies
17
+
18
+ ### Technical Details
19
+ - New `read_line_with_escape` method for cancelable input handling
20
+ - Comprehensive test suite for escape key functionality
21
+ - Support for multi-byte characters (Japanese, etc.) in filename/directory input
22
+
23
+ ## [0.7.0] - 2024-11-29
24
+
25
+ ### Added
26
+ - **๐Ÿ”Œ Plugin System**: Complete extensible plugin architecture for rufio
27
+ - **Plugin Base Class**: Simple API for creating plugins with automatic registration
28
+ - **Plugin Manager**: Automatic plugin discovery and loading from built-in and user directories
29
+ - **Plugin Configuration**: Enable/disable plugins via `~/.rufio/config.yml`
30
+ - **Dependency Management**: Plugins can declare gem dependencies with automatic checking
31
+ - **Built-in Plugins**: FileOperations plugin for basic file operations
32
+ - **Error Handling**: Graceful degradation when plugin dependencies are missing
33
+ - **Plugin Distribution**: Support for GitHub Gist and repository-based plugin sharing
34
+
35
+ ### Changed
36
+ - **Documentation Updates**: Comprehensive plugin system documentation in README.md and README_EN.md
37
+ - **Test Suite**: Complete TDD implementation with full test coverage for plugin system
38
+
39
+ ### Technical Details
40
+ - New `Plugin` base class with auto-registration mechanism
41
+ - New `PluginManager` for plugin lifecycle management
42
+ - New `PluginConfig` for configuration file handling
43
+ - Plugin directory structure: `lib/rufio/plugins/` and `~/.rufio/plugins/`
44
+ - Case-insensitive plugin name matching in configuration
45
+ - **Detailed changelog**: [CHANGELOG_v0.7.0.md](./CHANGELOG_v0.7.0.md)
46
+
47
+ ## [0.6.0] - 2025-01-XX
48
+
49
+ ### Added
50
+ - **๐Ÿš€ zoxide Integration**: Complete zoxide directory history navigation functionality
51
+ - **z Key Navigation**: Press `z` key to display zoxide movement history and navigate to frequently used directories
52
+ - **Smart History Display**: Frequency-based directory sorting with up to 20 history entries
53
+ - **Interactive Selection UI**: Modern floating window for intuitive history selection
54
+ - **Fast Number Key Selection**: Direct directory selection using number keys 1-20
55
+ - **Health Check Enhancement**: zoxide installation status and version checking with `rufio -c`
56
+ - **Multi-platform Installation Support**: Automated installation instructions for macOS and Linux
57
+ - **Graceful Fallback**: Proper handling when zoxide is not installed or history is empty
58
+
59
+ ### Changed
60
+ - **Footer Help Updates**: Added `z:zoxide` to key binding display in both English and Japanese
61
+ - **External Tools Documentation**: Updated README with zoxide installation and usage instructions
62
+ - **Health Check System**: Extended to include zoxide as optional dependency with platform-specific guidance
63
+ - **Error Messaging**: Improved user guidance for zoxide-related issues
64
+
65
+ ### Technical Details
66
+ - New zoxide integration methods in `KeybindHandler` class
67
+ - Extended `HealthChecker` with zoxide version checking
68
+ - Comprehensive test suite for zoxide functionality
69
+ - Safe path escaping using Ruby's Shellwords module
70
+ - **Detailed changelog**: [CHANGELOG_v0.6.0.md](./CHANGELOG_v0.6.0.md)
71
+
72
+ ## [0.5.0] - 2025-09-20
73
+
74
+ ### Added
75
+ - **๐Ÿ”– Bookmark System**: Complete bookmark functionality with persistent storage
76
+ - **Interactive Bookmark Menu**: Floating dialog with Add/List/Remove operations (`b` key)
77
+ - **Quick Navigation**: Number keys (1-9) for instant bookmark jumping
78
+ - **Persistent Storage**: Automatic save/load to `~/.config/rufio/bookmarks.json`
79
+ - **Comprehensive Test Suite**: Full TDD implementation with 15+ test cases
80
+ - **Multi-language Support**: English and Japanese bookmark interface
81
+ - **Safety Features**: Duplicate checking, path validation, error handling
82
+
83
+ ### Changed
84
+ - **Updated Help Messages**: Latest keybindings including bookmark operations
85
+ - **Enhanced KeybindHandler**: Integrated bookmark menu and navigation
86
+ - **Improved DirectoryListing**: Added `navigate_to_path` method for bookmark jumps
87
+ - **UI Layout Optimization**: Removed 3rd header row for cleaner interface
88
+ - **Documentation Updates**: Comprehensive README updates with bookmark usage
89
+
90
+ ### Technical Details
91
+ - New `Bookmark` class with full CRUD operations
92
+ - Maximum 9 bookmarks with automatic sorting
93
+ - Floating window system for bookmark management
94
+ - Integration with existing terminal UI components
95
+ - **Detailed changelog**: [CHANGELOG_v0.5.0.md](./CHANGELOG_v0.5.0.md)
96
+
97
+ ## [0.4.0] - 2025-09-13
98
+
99
+ ### Added
100
+ - **Floating Dialog System**: Modern floating confirmation dialogs for delete operations
101
+ - **Enhanced Delete Operations**: Comprehensive error handling with file system verification
102
+ - **English-Only Interface**: Complete localization to English, removing multi-language complexity
103
+ - **Character Width Calculation**: Proper Japanese character width handling for UI rendering
104
+ - **Debug Support**: `BENIYA_DEBUG=1` environment variable for detailed logging
105
+ - **Real-time Result Display**: Success/failure counts in floating dialogs
106
+ - **Post-deletion Verification**: File system checks to ensure actual deletion
107
+ - **HSL Color Model Support**: Intuitive color configuration with HSL values
108
+
109
+ ### Changed
110
+ - **All UI messages converted to English** from Japanese
111
+ - **Delete confirmation workflow** now uses floating dialogs instead of command-line prompts
112
+ - **Error messages standardized** to English across all components
113
+ - **Documentation updated** to reflect English-only interface
114
+ - **Code style unified** with single quotes throughout
115
+
116
+ ### Removed
117
+ - **Multi-language support** configuration and related code
118
+ - **Language setting environment variables** (`BENIYA_LANG`)
119
+ - **Language configuration files** support
120
+ - **Japanese UI messages** and localization infrastructure
121
+
122
+ ### Technical
123
+ - **+290 lines** of new functionality in core keybind handler
124
+ - **New test files** for floating dialog system and delete operations
125
+ - **Enhanced error handling** patterns throughout codebase
126
+ - **Improved file system safety** checks and validation
127
+
128
+ For detailed information, see [CHANGELOG_v0.4.0.md](./CHANGELOG_v0.4.0.md)
129
+
130
+ ## [0.3.0] - 2025-09-06
131
+
132
+ ### Added
133
+ - Enhanced file operations and management features
134
+ - Improved user interface and navigation
135
+ - Additional configuration options
136
+
137
+ ### Changed
138
+ - Performance improvements
139
+ - Bug fixes and stability enhancements
140
+
141
+ ## [0.2.0] - 2025-08-26
142
+
143
+ ### Added
144
+ - New features and functionality improvements
145
+ - Enhanced file management capabilities
146
+
147
+ ### Changed
148
+ - User interface improvements
149
+ - Performance optimizations
150
+
151
+ ## [0.1.0] - 2025-08-17
152
+
153
+ ### Added
154
+ - Initial release of rufio
155
+ - Basic file manager functionality
156
+ - Vim-like key bindings
157
+ - File preview capabilities
158
+ - Multi-platform support
159
+
160
+ ---
161
+
162
+ ## Release Links
163
+
164
+ - [v0.6.0 Detailed Release Notes](./CHANGELOG_v0.6.0.md) - zoxide Integration and Enhanced Health Checking
165
+ - [v0.5.0 Detailed Release Notes](./CHANGELOG_v0.5.0.md) - Bookmark System Implementation
166
+ - [v0.4.0 Detailed Release Notes](./CHANGELOG_v0.4.0.md) - Comprehensive changelog with technical details
167
+ - [GitHub Releases](https://github.com/masisz/rufio/releases) - Download releases and view release history
168
+ - [Installation Guide](./README.md#installation) - How to install rufio
169
+ - [Usage Documentation](./README.md#usage) - Complete usage guide
170
+
171
+ ## Version Numbering
172
+
173
+ rufio follows [Semantic Versioning](https://semver.org/):
174
+
175
+ - **MAJOR** version for incompatible API changes
176
+ - **MINOR** version for backwards-compatible functionality additions
177
+ - **PATCH** version for backwards-compatible bug fixes
178
+
179
+ ## Contributing
180
+
181
+ When contributing to rufio:
182
+
183
+ 1. Update the **[Unreleased]** section with your changes
184
+ 2. Follow the existing changelog format
185
+ 3. Link to detailed release notes for major versions
186
+ 4. Include migration notes for breaking changes
187
+
188
+ For more information, see [Contributing Guidelines](./README.md#contributing).
@@ -0,0 +1,146 @@
1
+ # rufio v0.4.0 Release Notes
2
+
3
+ ## ๐ŸŽ‰ Major Features & Improvements
4
+
5
+ ### ๐ŸชŸ Floating Dialog System
6
+ - **New floating confirmation dialogs** for delete operations
7
+ - **Visual feedback** with red borders and warning colors for dangerous operations
8
+ - **Intuitive keyboard controls**: Y/N confirmation, ESC to cancel
9
+ - **Auto-centering** and responsive dialog sizing
10
+ - **Modern UI experience** replacing command-line prompts
11
+
12
+ ### ๐Ÿ—‘๏ธ Enhanced Delete Operations
13
+ - **Comprehensive error handling** with detailed error messages
14
+ - **File system verification** to ensure actual deletion before reporting success
15
+ - **Real-time result display** showing success/failure counts in floating dialogs
16
+ - **Post-deletion verification** with 10ms filesystem sync delay
17
+ - **Debug support** with `BENIYA_DEBUG=1` environment variable
18
+ - **Atomic operations** with proper rollback on partial failures
19
+
20
+ ### ๐ŸŒ English-Only Interface
21
+ - **Complete localization cleanup** - removed multi-language support
22
+ - **All UI messages converted to English**:
23
+ - `ๅ‰Š้™ค็ขบ่ช` โ†’ `Delete Confirmation`
24
+ - `็งปๅ‹•/ใ‚ณใƒ”ใƒผ` โ†’ `Move/Copy`
25
+ - `ใƒ•ใ‚กใ‚คใƒซใŒ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“` โ†’ `File not found`
26
+ - `ๅ‰Š้™คใซๅคฑๆ•—ใ—ใพใ—ใŸ` โ†’ `Deletion failed`
27
+ - **Cleaner codebase** without language configuration complexity
28
+ - **Consistent English terminology** throughout the application
29
+
30
+ ### ๐ŸŽจ UI/UX Improvements
31
+ - **Japanese character width calculation** for proper text rendering
32
+ - **HSL color model support** for intuitive color configuration
33
+ - **Multi-byte character handling** improvements
34
+ - **Better visual hierarchy** with color-coded operation results
35
+ - **Screen-aware positioning** for floating dialogs
36
+
37
+ ## ๐Ÿ”ง Technical Improvements
38
+
39
+ ### Code Quality
40
+ - **Unified code style** with single quotes throughout
41
+ - **Enhanced error handling** patterns
42
+ - **Improved file system safety** checks
43
+ - **Better separation of concerns** between UI and business logic
44
+
45
+ ### Testing & Debugging
46
+ - **New test files**:
47
+ - `test/test_floating_dialog.rb` - Floating dialog system tests
48
+ - `test/debug_delete_timing.rb` - Delete operation timing and verification tests
49
+ - **Debug logging system** with detailed operation tracking
50
+ - **Environment-based debug controls**
51
+
52
+ ### Architecture
53
+ - **Modular floating window system** (`draw_floating_window`, `clear_floating_window_area`)
54
+ - **Character width calculation utilities** (`display_width`, `pad_string_to_width`)
55
+ - **Screen positioning utilities** (`get_screen_center`)
56
+ - **Enhanced deletion workflow** with proper state management
57
+
58
+ ## ๐Ÿ“š Documentation Updates
59
+
60
+ ### README Improvements
61
+ - **Removed multi-language configuration** sections
62
+ - **Added detailed delete operation documentation**:
63
+ - Floating dialog workflow
64
+ - Safety features
65
+ - Error handling
66
+ - Debug support
67
+ - **Updated feature descriptions** to reflect English-only interface
68
+ - **Enhanced safety features documentation**
69
+
70
+ ### Both English and Japanese READMEs Updated
71
+ - **Consistent documentation** across languages
72
+ - **New operation workflow** diagrams
73
+ - **Comprehensive feature descriptions**
74
+ - **Updated installation and usage instructions**
75
+
76
+ ## ๐Ÿ› ๏ธ Breaking Changes
77
+
78
+ ### Removed Features
79
+ - โŒ **Multi-language support** configuration removed
80
+ - โŒ **Language setting environment variables** (`BENIYA_LANG`)
81
+ - โŒ **Language configuration files** support
82
+ - โŒ **Japanese UI messages** (now English-only)
83
+
84
+ ### Configuration Changes
85
+ - ๐Ÿ”„ **Simplified configuration** - no more language settings required
86
+ - ๐Ÿ”„ **Removed language priority system**
87
+ - ๐Ÿ”„ **Streamlined color configuration** (HSL support added)
88
+
89
+ ## ๐Ÿ“Š Statistics
90
+
91
+ ### Code Changes
92
+ - **+290 lines** in `lib/rufio/keybind_handler.rb` (586 โ†’ 876 lines)
93
+ - **Multiple files updated** across the codebase
94
+ - **New test files** added for quality assurance
95
+ - **Documentation updates** in both languages
96
+
97
+ ### Files Modified
98
+ - `lib/rufio/keybind_handler.rb` - Core functionality expansion
99
+ - `lib/rufio/terminal_ui.rb` - UI message updates
100
+ - `lib/rufio/file_opener.rb` - Error message localization
101
+ - `README.md` & `README_EN.md` - Documentation updates
102
+ - `test/` - New test files added
103
+
104
+ ## ๐Ÿš€ Migration Guide
105
+
106
+ ### For Users
107
+ 1. **No action required** - existing installations will work seamlessly
108
+ 2. **Language settings** in config files will be ignored (no errors)
109
+ 3. **Environment variables** like `BENIYA_LANG` will have no effect
110
+ 4. **All UI will be in English** regardless of system locale
111
+
112
+ ### For Developers
113
+ 1. **Remove language-related configuration** from your setup
114
+ 2. **Update any scripts** that relied on Japanese output parsing
115
+ 3. **Use new debug environment variable**: `BENIYA_DEBUG=1`
116
+ 4. **Test with new floating dialog system**
117
+
118
+ ## ๐ŸŽฏ What's Next
119
+
120
+ This release establishes rufio as a modern, English-focused file manager with:
121
+ - โœ… **Consistent user experience** across all environments
122
+ - โœ… **Modern UI patterns** with floating dialogs
123
+ - โœ… **Enhanced safety** for file operations
124
+ - โœ… **Better debugging capabilities**
125
+ - โœ… **Improved maintainability** without multi-language complexity
126
+
127
+ ---
128
+
129
+ **Release Date**: 2025-01-13
130
+ **Version**: 0.4.0
131
+ **Previous Version**: 0.3.0
132
+ **Compatibility**: Ruby 2.7.0+
133
+
134
+ ## ๐Ÿ“ฅ Installation
135
+
136
+ ```bash
137
+ gem install rufio --version 0.4.0
138
+ ```
139
+
140
+ ## ๐Ÿ› Bug Reports
141
+
142
+ Please report issues at: https://github.com/masisz/rufio/issues
143
+
144
+ ---
145
+
146
+ *This release represents a significant step forward in rufio's evolution, focusing on modern UI patterns, safety, and maintainability while streamlining the user experience.*
@@ -0,0 +1,26 @@
1
+ # rufio v0.5.0 - Release Notes
2
+
3
+ ## Added
4
+ - **Bookmark System**: Complete bookmark functionality for quick directory navigation
5
+ - **Interactive Bookmark Menu**: Floating dialog accessed via `b` key with Add/List/Remove operations
6
+ - **Quick Navigation**: Number keys (1-9) for instant bookmark jumping
7
+ - **Persistent Storage**: Automatic save/load bookmarks to `~/.config/rufio/bookmarks.json`
8
+ - **Bookmark Management**: Add current directory with custom names, list all bookmarks, remove by selection
9
+ - **Safety Features**: Duplicate name/path checking, directory existence validation, maximum 9 bookmarks limit
10
+ - **Multi-language Support**: English and Japanese bookmark interface messages
11
+ - **Comprehensive Test Suite**: Full TDD implementation with 15+ test cases covering all bookmark operations
12
+ - **Error Handling**: Graceful handling of non-existent paths, permission errors, and invalid inputs
13
+
14
+ ## Changed
15
+ - **Help Messages Updated**: Latest keybinding information including bookmark operations in footer
16
+ - **KeybindHandler Enhanced**: Integrated bookmark menu and direct navigation functionality
17
+ - **DirectoryListing Improved**: Added `navigate_to_path` method for bookmark-based navigation
18
+ - **UI Layout Optimized**: Removed 3rd header row displaying bookmark shortcuts for cleaner interface
19
+ - **Documentation Updated**: Comprehensive README updates with bookmark usage examples and workflows
20
+
21
+ ## Technical Implementation
22
+ - New `Bookmark` class with full CRUD operations and JSON persistence
23
+ - Floating window system for bookmark management dialogs
24
+ - Integration with existing terminal UI components and color system
25
+ - Automatic bookmark sorting by name for consistent display
26
+ - File system verification and path expansion for reliability
@@ -0,0 +1,182 @@
1
+ # CHANGELOG - rufio v0.6.0
2
+
3
+ **Release Date**: 2025-09-28
4
+
5
+ ## ๐Ÿš€ New Features
6
+
7
+ ### zoxide Integration
8
+
9
+ - **zoxide History Navigation with z Key**: Press `z` key to display zoxide movement history and quickly navigate to previously visited directories
10
+ - **Smart History Display**: Frequently used directories appear at the top of the list
11
+ - **Interactive Selection UI**: Floating window displays up to 20 history entries
12
+ - **Fast Selection with Number Keys**: Select directories directly using number keys 1-20
13
+ - **Abbreviated Path Display**: Home directory displayed as `~` with nicely formatted long paths
14
+ - **Graceful Handling**: Proper handling when zoxide is not installed or history is empty
15
+
16
+ ### Health Check Enhancement
17
+
18
+ - **zoxide Check Addition**: Check zoxide installation status and version with `rufio -c`
19
+ - **Installation Instructions**: Detailed platform-specific (macOS/Linux) installation instructions
20
+
21
+ ## ๐ŸŽจ UI/UX Improvements
22
+
23
+ ### User Interface
24
+
25
+ - **Footer Help Updates**:
26
+ - English version: Added `z:zoxide` to key binding list
27
+ - Japanese version: Added `z:zoxide` to key binding list
28
+ - **zoxide History Selection Dialog**: Intuitive floating window for history selection
29
+ - **Improved Error Messages**: Clear guidance when zoxide is not installed
30
+
31
+ ## ๐Ÿ“– Documentation Updates
32
+
33
+ ### README Updates
34
+
35
+ **Japanese Version (README.md)**:
36
+
37
+ - New zoxide integration features section
38
+ - Added `z:zoxide` to key bindings list
39
+ - Detailed explanation of zoxide overview and installation methods
40
+ - Added zoxide to required external tools list
41
+ - Clarified purpose of each tool
42
+
43
+ **English Version (README_EN.md)**:
44
+
45
+ - New zoxide Integration Features section
46
+ - Added `z:zoxide integration` to Key Bindings
47
+ - Detailed zoxide explanation and installation instructions
48
+ - Expanded Required External Tools section
49
+ - Clarified Tool Usage
50
+
51
+ ### Added Documentation Content
52
+
53
+ - **Detailed explanation of zoxide history navigation features**
54
+ - **Usage examples and workflows**
55
+ - **Overview of zoxide**
56
+ - **Platform-specific installation methods**
57
+ - **Requirements and limitations**
58
+
59
+ ## ๐Ÿ”ง Technical Improvements
60
+
61
+ ### Architecture
62
+
63
+ - **KeybindHandler Class Extension**: Added zoxide-related methods
64
+ - `zoxide_available?`: Check zoxide availability
65
+ - `get_zoxide_history`: Get and parse zoxide history
66
+ - `show_zoxide_menu`: Display history in floating window
67
+ - `select_from_zoxide_history`: Interactive history selection
68
+ - `navigate_to_zoxide_directory`: Navigate to selected directory
69
+
70
+ ### HealthChecker Class Extension
71
+
72
+ - **check_zoxide Method**: Version checking and status verification for zoxide
73
+ - **install_instruction_for Method Extension**: Added installation instructions for zoxide
74
+
75
+ ### Configuration System
76
+
77
+ - **Multi-language Message Support**:
78
+ - `health.zoxide`: Support for both English and Japanese
79
+ - Updated footer help messages
80
+
81
+ ## ๐Ÿงช Testing
82
+
83
+ ### New Tests Added
84
+
85
+ - **zoxide Integration Tests** (`test/test_zoxide_integration.rb`):
86
+ - zoxide availability tests
87
+ - History retrieval functionality tests
88
+ - UI display tests
89
+ - Directory navigation tests
90
+ - Error handling tests
91
+
92
+ - **Health Check Test Extensions**:
93
+ - `test_check_zoxide`: zoxide check functionality tests
94
+ - `test_install_instruction_for_zoxide`: Installation instruction tests
95
+
96
+ ## ๐Ÿ“ฆ Dependencies
97
+
98
+ ### New Dependencies
99
+
100
+ - **zoxide**: Directory history functionality (optional)
101
+ - macOS: `brew install zoxide`
102
+ - Ubuntu/Debian: `apt install zoxide`
103
+ - Others: [Official Documentation](https://github.com/ajeetdsouza/zoxide#installation)
104
+
105
+ ### Dependency Updates
106
+
107
+ - **Shellwords Module**: Used for path escaping (Ruby standard library)
108
+
109
+ ## ๐Ÿ”„ Compatibility
110
+
111
+ ### Backward Compatibility
112
+
113
+ - **No Impact on Existing Features**: No changes to existing key bindings or functionality
114
+ - **Configuration File Compatibility**: Existing configuration files can be used as-is
115
+ - **Optional Feature**: All existing features work normally even without zoxide
116
+
117
+ ### Platform Support
118
+
119
+ - **macOS**: Full support (installation via Homebrew recommended)
120
+ - **Linux**: Full support (via package managers)
121
+ - **Windows**: Basic compatibility (zoxide installation methods need separate verification)
122
+
123
+ ## โšก Performance
124
+
125
+ ### Optimizations
126
+
127
+ - **Efficient History Retrieval**: Optimal use of zoxide query commands
128
+ - **Memory Usage**: History display limited to maximum 20 entries
129
+ - **Responsiveness**: Fast floating window rendering
130
+
131
+ ## ๐Ÿ› Bug Fixes
132
+
133
+ ### Fixed Issues
134
+
135
+ - **zoxide Output Format Support**: Correctly retrieve scored output with `zoxide query --list --score`
136
+ - **Empty History Handling**: Proper message display when no history exists
137
+ - **Path Escaping**: Safe handling of paths with special characters
138
+
139
+ ## ๐Ÿ”ฎ Future Plans
140
+
141
+ ### Planned for Next Version
142
+
143
+ - **zoxide Integration Update History Recording**: Automatically record directory movements within rufio to zoxide
144
+ - **Customizable History Display Count**: Adjust display count via configuration file
145
+ - **History Filtering**: Filter history by specific patterns
146
+
147
+ ## ๐Ÿ“ Usage Examples
148
+
149
+ ### Basic Usage
150
+
151
+ ```bash
152
+ # Launch rufio
153
+ rufio
154
+
155
+ # Press z key to display zoxide history
156
+ # Enter displayed number (1-20) to navigate to directory
157
+ # Press ESC to cancel
158
+ ```
159
+
160
+ ### Health Check
161
+
162
+ ```bash
163
+ # Check all dependencies including zoxide
164
+ rufio -c
165
+
166
+ # Example output:
167
+ # โœ“ zoxide (directory history) zoxide 0.9.8
168
+ ```
169
+
170
+ ## ๐Ÿ™ Acknowledgments
171
+
172
+ Main contributions in this version:
173
+
174
+ - **zoxide**: [ajeetdsouza/zoxide](https://github.com/ajeetdsouza/zoxide) - Excellent directory navigation tool
175
+ - **Ruby Standard Library**: Utilization of Shellwords module
176
+
177
+ ---
178
+
179
+ **Note**: This version is the initial implementation of zoxide integration features. We welcome feedback and improvement suggestions.
180
+
181
+ **GitHub Issues**: [https://github.com/masisz/rufio/issues](https://github.com/masisz/rufio/issues)
182
+