From 64f1c61d9d82865599495a869ef69b30c2d10370 Mon Sep 17 00:00:00 2001 From: Hakula Chen Date: Wed, 28 Oct 2026 14:34:58 +0800 Subject: [PATCH] chore(deps): hold unicode-width below 0.2.3 so ratatui keeps sound marks one cell wide MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ratatui-core 0.1.2 adds a cell to each halfwidth katakana sound mark (U+FF9E, U+FF9F) because unicode-width used to count them as zero-width. unicode-width 0.2.3 counts them as one cell itself, so with both, ratatui lays "ガ" out over three cells while terminals draw it in two, which fails the buffer_rows test on every platform in #711. Bound unicode-width below 0.2.3 so cargo update and lock file maintenance stay on 0.2.2, and hold Renovate to the same bound, since Renovate otherwise widens the range to admit 0.2.3. --- .github/renovate.json | 6 ++++++ Cargo.toml | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/renovate.json b/.github/renovate.json index 2c2a138ed..e6920b62b 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -7,6 +7,12 @@ "groupName": "flake inputs", "semanticCommitScope": "flake", "automerge": true + }, + { + "description": "Matches the unicode-width bound in Cargo.toml, which explains it.", + "matchManagers": ["cargo"], + "matchPackageNames": ["unicode-width"], + "allowedVersions": "<0.2.3" } ] } diff --git a/Cargo.toml b/Cargo.toml index bd9e8551e..d40725b5b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -118,7 +118,11 @@ tree-sitter = "0.27" tree-sitter-bash = "0.25" unicode-normalization = "0.1" unicode-segmentation = "1" -unicode-width = "0.2" +# ratatui-core 0.1.2 adds a cell to each halfwidth katakana sound mark (U+FF9E, U+FF9F) because +# older unicode-width releases count it as zero-width. From 0.2.3, unicode-width counts it as one +# cell, so ratatui lays the mark out over two cells while terminals draw it in one. +# `.github/renovate.json` holds Renovate to the same bound. +unicode-width = ">=0.2, <0.2.3" url = "2" uuid = { version = "1", features = ["serde", "v4"] } winapi-util = "0.1"