Skip to content

Releases: noborus/ov

v0.50.2

06 Dec 03:57
73ee730

Choose a tag to compare

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

06 Dec 02:46
751e38c

Choose a tag to compare

pre2 test release

v0.50.1-pre1

06 Dec 02:04
751e38c

Choose a tag to compare

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

06 Dec 03:32

Choose a tag to compare

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

02 Dec 00:23
61e3966

Choose a tag to compare

⚠️ 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

27 Oct 03:54
f7dadd8

Choose a tag to compare

What's Changed

This is a fix for v0.45.0

  • Fix setContentString wide character width calculation by @noborus in #888

v0.45.0 release notes

🎉 New Features

Terminal Title Support

  • New --set-terminal-title flag: 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, ErrInvalidKey for 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

08 Oct 12:00
71ba731

Choose a tag to compare

🖱️ 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 vs Enter 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

v0.43.1

20 Sep 01:54

Choose a tag to compare

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

27 Aug 22:02
763ac19

Choose a tag to compare

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

02 Jul 22:51
63d9143

Choose a tag to compare

What's Changed

Full Changelog: v0.42.0...v0.42.1