Releases: noborus/ov
Releases · noborus/ov
v0.50.2
Main Changes
- Update tcell to v2.13.2 (Buf Fix Release)
- Upgraded the tcell dependency to v2.13.2.
- This fixes a problem that affected some applications on Windows (wrong terminal dimensions due to an off-by-one error).
- See: tcell v2.13.2 release notes
- v0.50.1 was skipped due to a mistake in the release tag
What's Changed
- GetContent has been deprecated and changed to Get by @noborus in #924
- Update tcell v2.13.1 to v2.13.2 by @noborus in #925
- Add string type to prepare for replacing SetContent with Put by @noborus in #926
#927
Full Changelog: v0.50.1...v0.50.2
v0.50.1-pre2
pre2 test release
v0.50.1-pre1
Main Changes
- Update tcell to v2.13.2 (Buf Fix Release)
- Upgraded the tcell dependency to v2.13.2.
- This fixes a problem that affected some applications on Windows (wrong terminal dimensions due to an off-by-one error).
- See: tcell v2.13.2 release notes
What's Changed
- README.md: Update for v0.50.0 by @noborus in #922
- Grammar correction for v0.50.0 update by @noborus in #923
- GetContent has been deprecated and changed to Get by @noborus in #924
- Update tcell v2.13.1 to v2.13.2 by @noborus in #925
- Add string type to prepare for replacing SetContent with Put by @noborus in #926
- Replace TAP_GITHUB_TOKEN with APP_TOKEN for GoReleaser and workflow by @noborus in #927
Full Changelog: v0.50.0...v0.50.1-pre1
v0.50.1
Main Changes
- Update tcell to v2.13.2 (Buf Fix Release)
- Upgraded the tcell dependency to v2.13.2.
- This fixes a problem that affected some applications on Windows (wrong terminal dimensions due to an off-by-one error).
- See: tcell v2.13.2 release notes
What's Changed
- GetContent has been deprecated and changed to Get by @noborus in #924
- Update tcell v2.13.1 to v2.13.2 by @noborus in #925
- Add string type to prepare for replacing SetContent with Put by @noborus in #926
Full Changelog: v0.50.0...v0.50.1
v0.50.0
⚠️ Important Changes & Notes
- Key input handling has changed significantly on terminals supporting tcell's CSI u.
- On CSI u compatible terminals, keys such as Ctrl+h, Backspace, and Enter are now strictly distinguished.
- You can now assign different actions to these keys.
- If you want the same action for multiple keys, please assign them explicitly in your config file.
- Some keys may be intercepted by your OS or editors like VS Code terminal, so we recommend assigning multiple keybindings or customizing as needed.
- Character width calculation has switched from runewidth to uniseg.
- As a result, ambiguous-width characters are now treated as width 1 by default.
- If you want ambiguous-width characters to be treated as width 2 (East Asian width), set the environment variable
RUNEWIDTH_EASTASIAN=1.
✨ Main Changes
⌨️ Keybindings & Input
- Removed all ctrl+shift keybindings and replaced them with alternatives like alt+arrow keys.
- Unified Alt+uppercase keybindings to Alt+lowercase.
- All key event matching is now case-insensitive and unified.
- Removed fallback logic that treated multiple keys as the same action.
- Updated config files (
ov.yaml,ov-less.yaml) to reflect new keybindings. - Improved cursor movement, deletion, and paste behavior in input fields.
🖥️ Display & UI
- Switched character width calculation from runewidth to uniseg, making display width match your terminal more accurately.
- If display width mismatches still occur, ov now uses Sync as needed to prevent screen corruption.
🖱️ Mouse, Selection & Clipboard
- Added anchor-and-extend selection with Alt+click.
- Right-click now copies the selected range.
- Clipboard operations now have a timeout to prevent UI freezes.
📦 Library Updates
- tcell v2.9.0 → v2.13.1
- cbind v0.1.6 → v0.1.7
- tcellansi v0.2.0 → v0.3.0
Full Changelog: v0.45.1...v0.50.0
v0.45.1
What's Changed
This is a fix for v0.45.0
v0.45.0 release notes
🎉 New Features
Terminal Title Support
- New
--set-terminal-titleflag: Automatically sets the terminal title to display the current filename or caption - Makes it easier to identify which file is being viewed when multiple terminal tabs are open
- Perfect for git workflows with custom captions:
git log | ov --set-terminal-title --caption "git log - myrepo" - Fixes #881
🐛 Bug Fixes
Wide Character Display Issues
- Fixed display corruption of double-width characters: Resolved issues with CJK characters (Japanese, Chinese, Korean) in Windows Terminal and other terminal emulators
- Improved mouse selection: Fixed mouse selection issues when clicking on wide characters
- Better character positioning: Enhanced wide character rendering and positioning calculations
- Fixed double-click word selection: Improved word boundary detection for mixed ASCII and double-width characters
Key Binding Improvements
- Fixed toggle mouse key: Corrected toggle mouse key binding to Ctrl+F8
- Added alternative key bindings: Added backup key bindings for better cross-platform compatibility, especially for Windows Terminal users experiencing issues with ctrl+alt combinations
🔧 Improvements
Code Quality & Error Handling
- Refactored mouse functions: Converted methods to standalone functions for better testability and code organization
- Standardized error messages: Improved error message format for better clarity and consistency
- Enhanced error types: Added
ErrInvalidModeName,ErrInvalidRGBColor,ErrInvalidKeyfor better error identification - Better error context: Enhanced error wrapping with proper stack traces
Wide Character Support
- Comprehensive testing: Added extensive tests for wide character handling functions
- Better boundary detection: Enhanced character type detection for CJK text and mixed-language content
- Improved word selection: Better double-click selection behavior for international text
Full Changelog: v0.44.0...v0.45.0
Full Changelog: v0.45.0...v0.45.1
v0.44.0
🖱️ 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
SelectActivestyle for active selection (during drag) - New
SelectCopiedstyle for copied selection (after copy operation) - Replace fixed reverse styling with configurable appearance
- Improved mouse selection state management with
MouseSelectStateenum
Thanks to @ninetailedtori for the original idea in #837!
Configurable Mouse Wheel Scroll Speed (#871, #872)
- Added
VScrollLinessetting 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
DisableStickyFollowoption - Visual Feedback: Clear indication of follow mode state in status line
- PauseLine Style (#861): Added
PauseLinestyle 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+JvsEnterdistinctions 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
eventReachEOFduring 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-runewidthfrom 0.0.17 to 0.0.19 - Bumped
github.com/spf13/cobrafrom 1.9.1 to 1.10.1 - Bumped
github.com/spf13/pflagfrom 1.0.9 to 1.0.10 - Bumped
github.com/ulikunitz/xzfrom 0.5.13 to 0.5.15 - Updated Go version and various module dependencies
Full Changelog: v0.43.0...v0.44.0
v0.43.1
Bug Fixes
-
Fix incorrect file deletion in edit mode (0bd4f51)
- Fixed critical bug where original files were deleted after editing
-
Fix document list deadlock (8d19ae9)
- Use TryLock to prevent deadlocks in document list operations
Full Changelog: v0.43.0...v0.43.1
v0.43.0
What's Changed
- Add missing less keybindings and sync configs by @noborus in #810
- Fix screen height to be non-negative by @noborus in #813
- Fix converter initialization not being applied to filter documents by @noborus in #820
- Fix column navigation issues and improve test coverage by @noborus in #823
- Improve mark by @noborus in #824
- Changed to support new Style settings by @noborus in #828
- Improve package usage by @noborus in #830
- Update to tcell v2.9.0, tcellansi v0.2.0 by @noborus in #832
Full Changelog: v0.42.1...v0.43.0