🖱️ Enhanced Mouse Support
Double-click Word Selection (#837, #840)
- Double-click to select words with smart boundary detection for alphanumeric, whitespace, and symbol characters
- Configurable click interval and distance thresholds
- Improved mouse event handling with click state management
Triple-click Line Selection (#846, #847)
- Triple-click to select entire lines, including wrapped lines that span multiple screen lines
- Smart selection from start to end of visual lines
Column Selection on Double-click (#845)
- When in column mode, double-click selects entire columns instead of words
- Enhanced column boundary detection and selection logic
Customizable Selection Styles (#839)
- New
SelectActive
style for active selection (during drag) - New
SelectCopied
style for copied selection (after copy operation) - Replace fixed reverse styling with configurable appearance
- Improved mouse selection state management with
MouseSelectState
enum
Thanks to @ninetailedtori for the original idea in #837!
Configurable Mouse Wheel Scroll Speed (#871, #872)
- Added
VScrollLines
setting in General config section to control mouse wheel scroll speed - Default value is 2 lines (maintains backward compatibility)
- Allows users to match their terminal scroll settings
Thanks to @deathtrip for the suggestion in #871!
📍 Sticky Follow Mode (#858, #860)
- Automatic Pause Indicator: Follow mode shows
||
when paused due to user interaction (scrolling, searching, etc.) - Smart Resume: Automatically resumes when moving to bottom (End key, bottom action, etc.)
- Configurable: Can be disabled with
DisableStickyFollow
option - Visual Feedback: Clear indication of follow mode state in status line
- PauseLine Style (#861): Added
PauseLine
style to highlight the line where follow mode is paused
Thanks to @maxeonyx for the concept in #858!
⚡ Quit-if-one-screen Improvements (#853, #855)
- Improved Timing: Enhanced EOF monitoring with goroutine for better timing detection
- Delayed File Reading: Correctly handles quit-if-one-screen even when file reading is slow or delayed
- Cancel Feature: Added quitSmall cancel feature for better user control
Thanks to @amonks for the report in #853!
🔧 Enhanced Key Binding System (#870)
- Improved Key Normalization: Properly handle
Ctrl+J
vsEnter
distinctions across different terminals - Better Duplicate Detection: Enhanced duplicate key binding detection with proper case normalization
- Comprehensive Error Handling: Collect all validation issues instead of stopping at first error
- Clear Error Messages: Enhanced help display for key binding conflicts and invalid configurations
🐛 Bug Fixes
Last Line Display Bug (#865)
- Quit-if-one-screen option now correctly calculates screen height by excluding the status line height when determining if content fits on screen
Thanks to @maraino for the report in #864!
Search Operations (#866, #856)
- Fixed search freeze when cancel events don't keep up with processing
- Preserved
eventReachEOF
during search operations - Better event handling and replay after search completion
Concurrency (#857)
- Use TryLock for doclist operations to prevent potential deadlocks
- Log lock failures without blocking UI updates
📦 Dependencies
- Bumped
github.com/mattn/go-runewidth
from 0.0.17 to 0.0.19 - Bumped
github.com/spf13/cobra
from 1.9.1 to 1.10.1 - Bumped
github.com/spf13/pflag
from 1.0.9 to 1.0.10 - Bumped
github.com/ulikunitz/xz
from 0.5.13 to 0.5.15 - Updated Go version and various module dependencies
Full Changelog: v0.43.0...v0.44.0