Releases: noborus/ov
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
v0.42.1
v0.42.0
What's Changed
Adding an edit function
Allows you to edit by passing the file to an external editor. #782 #786 #787 #788 #795
Implemented issue #780
Customizable to hide the status line
The status line can now be hidden and there is more customization available. #793 #794 #796 #797
Implemented issue #426
Help and log documentation can be customized separately
The help and log documentation are now separate from General and can be customized separately. #801 #802
Implemented issue #799
Bug fix and update
- Fix missing slice bounds check by @noborus in #783
- Fix duplicate log output by @noborus in #785
- Update modules 20250610 by @noborus in #790
- Add documentation for General configuration items in README.md by @noborus in #792
- Fix inconsistent output after WriteQuit from help followed by Quit by @noborus in #800
- Fix typo in README.md by @noborus in #803
Full Changelog: v0.41.0...v0.42.0
v0.41.0
What's Changed
- fix: Wait for EOF or ReadWaitTime before starting initial search by @noborus in #766
- Remove WaitEOFWithTimeout call when checking file size by @noborus in #767
- Add support for
ESC(Bas a reset operation in other sequence handling by @noborus in #775 - Remove extra spaces on the right in WriteQuit by @noborus in #779
Full Changelog: v0.40.1...v0.41.0
v0.40.1
v0.40.0
Please use v0.40.1 as there is a bug.
What's Changed
- Add styled terminal output with toggleable raw text option by @noborus in #731. Resolves issue #684 Thanks to @morenathan
- Add
-mas a short option for--view-modeby @noborus in #734. Resolves issue #733 Thanks to @Jaykul - Add
--list-view-modesoption by @noborus in #736 - make minStartX configurable with default value 0 by @noborus in #742 This fix is related to issue #739. Thanks to @hupfdule
- Change Style config to general/Style/ by @noborus in #743
- Added clipboard via osc52 by @noborus in #748 This resolves issue #747 Thanks to @cstrahan
- Changed cbind url because it has moved to codeberg.org/tslocum/cbind by @noborus in #758 This fix is related to pull request #757. Thanks to @wreedb
Full Changelog: v0.39.0...v0.40.0
v0.39.0
What's Changed
- Add support vertical header and header column by @noborus in #689
- Fix x start position to not be negative when moving to rightmost cursor by @noborus in #697
- Improved movement in the document display area by @noborus in #698
- Add ruler feature by @noborus in #703
- Add style border by @noborus in #704
- Add Dependabot configuration by @noborus in #709
- Bump golang.org/x/term from 0.28.0 to 0.29.0 by @dependabot in #712
- Bump github.com/klauspost/compress from 1.17.11 to 1.18.0 by @dependabot in #713
- Bump github.com/spf13/cobra from 1.8.1 to 1.9.1 by @dependabot in #714
- Bump golang.org/x/sync from 0.10.0 to 0.11.0 by @dependabot in #715
- Updated sample config.yaml to the latest version by @noborus in #719
- Added feature to detect duplicate keybinds by @noborus in #722
New Contributors
- @dependabot made their first contribution in #712
Full Changelog: v0.38.0...v0.39.0