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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +188 -0
- data/CHANGELOG_v0.4.0.md +146 -0
- data/CHANGELOG_v0.5.0.md +26 -0
- data/CHANGELOG_v0.6.0.md +182 -0
- data/CHANGELOG_v0.7.0.md +280 -0
- data/CHANGELOG_v0.8.0.md +267 -0
- data/CHANGELOG_v0.9.0.md +279 -0
- data/README.md +631 -0
- data/README_EN.md +561 -0
- data/Rakefile +156 -0
- data/bin/rufio +34 -0
- data/config_example.rb +88 -0
- data/docs/PLUGIN_GUIDE.md +431 -0
- data/docs/plugin_example.rb +119 -0
- data/lib/rufio/application.rb +32 -0
- data/lib/rufio/bookmark.rb +115 -0
- data/lib/rufio/bookmark_manager.rb +173 -0
- data/lib/rufio/color_helper.rb +150 -0
- data/lib/rufio/command_mode.rb +72 -0
- data/lib/rufio/command_mode_ui.rb +168 -0
- data/lib/rufio/config.rb +199 -0
- data/lib/rufio/config_loader.rb +110 -0
- data/lib/rufio/dialog_renderer.rb +127 -0
- data/lib/rufio/directory_listing.rb +113 -0
- data/lib/rufio/file_opener.rb +140 -0
- data/lib/rufio/file_operations.rb +231 -0
- data/lib/rufio/file_preview.rb +200 -0
- data/lib/rufio/filter_manager.rb +114 -0
- data/lib/rufio/health_checker.rb +246 -0
- data/lib/rufio/keybind_handler.rb +828 -0
- data/lib/rufio/logger.rb +103 -0
- data/lib/rufio/plugin.rb +89 -0
- data/lib/rufio/plugin_config.rb +59 -0
- data/lib/rufio/plugin_manager.rb +84 -0
- data/lib/rufio/plugins/file_operations.rb +44 -0
- data/lib/rufio/selection_manager.rb +79 -0
- data/lib/rufio/terminal_ui.rb +630 -0
- data/lib/rufio/text_utils.rb +108 -0
- data/lib/rufio/version.rb +5 -0
- data/lib/rufio/zoxide_integration.rb +188 -0
- data/lib/rufio.rb +33 -0
- data/publish_gem.zsh +131 -0
- data/rufio.gemspec +40 -0
- data/test_delete/test1.txt +1 -0
- data/test_delete/test2.txt +1 -0
- 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).
|
data/CHANGELOG_v0.4.0.md
ADDED
|
@@ -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.*
|
data/CHANGELOG_v0.5.0.md
ADDED
|
@@ -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
|
data/CHANGELOG_v0.6.0.md
ADDED
|
@@ -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
|
+
|