260419.4 · 14f3ad493cf3e039835fc1e23256f95c8e2b73df
Move away from uniseg to faster clipperhouse/displaywidth
Use an intern string cache to reduce allocations.
This has improved correctness, and substantial performance improvements.
reading declarations
Changes to internal/widthutil/. All files
internal/widthutil/widthutil.go
@@ -0,0 +1,31 @@+// Copyright 2026 The TCell Authors+//+// Licensed under the Apache License, Version 2.0 (the "License");+// you may not use this file except in compliance with the License.+// You may obtain a copy of the License at+//+// http://www.apache.org/licenses/LICENSE-2.0+//+// Unless required by applicable law or agreed to in writing, software+// distributed under the License is distributed on an "AS IS" BASIS,+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.+// See the License for the specific language governing permissions and+// limitations under the License.++package widthutil++import (+ "os"+ "strings"++ "github.com/clipperhouse/displaywidth"+)++// Options returns the display-width options derived from the user's+// environment. We preserve the historical RUNEWIDTH_EASTASIAN toggle.+func Options() displaywidth.Options {+ if rw := strings.ToLower(os.Getenv("RUNEWIDTH_EASTASIAN")); rw == "1" || rw == "true" || rw == "yes" {+ return displaywidth.Options{EastAsianWidth: true}+ }+ return displaywidth.Options{}+}