1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-25 22:33:52 +03:00
wezterm/term/Cargo.toml
Wez Furlong 225e7a1243 introduce unicode_version config
This is a fairly far-reaching commit. The idea is:

* Introduce a unicode_version config that specifies the default level
  of unicode conformance for each newly created Terminal (each Pane)
* The unicode_version is passed down to the `grapheme_column_width`
  function which interprets the width based on the version
* `Cell` records the width so that later calculations don't need to
  know the unicode version

In a subsequent diff, I will introduce an escape sequence that allows
setting/pushing/popping the unicode version so that it can be overridden
via eg: a shell alias prior to launching an application that uses a
different version of unicode from the default.

This approach allows output from multiple applications with differing
understanding of unicode to coexist on the same screen a little more
sanely.

Note that the default `unicode_version` is set to 9, which means that
emoji presentation selectors are now by-default ignored.  This was
selected to better match the level of support in widely deployed
applications.

I expect to raise that default version in the future.

Also worth noting: there are a number of callers of
`unicode_column_width` in things like overlays and lua helper functions
that pass `None` for the unicode version: these will assume the latest
known-to-wezterm/termwiz version of unicode to be desired. If those
overlays do things with emoji presentation selectors, then there may be
some alignment artifacts. That can be tackled in a follow up commit.

refs: #1231
refs: #997
2021-11-25 09:00:45 -07:00

43 lines
931 B
TOML

[package]
authors = ["Wez Furlong <wez@wezfurlong.org>"]
name = "wezterm-term"
version = "0.1.0"
edition = "2018"
repository = "https://github.com/wez/wezterm"
description = "The Virtual Terminal Emulator core from wezterm; helpful for implementing terminal emulators"
license = "MIT"
documentation = "https://docs.rs/wezterm-term"
keywords = ["terminal", "emulator", "vte"]
readme = "README.md"
[features]
use_serde = ["termwiz/use_serde"]
[dependencies]
anyhow = "1.0"
bitflags = "1.3"
miniz_oxide = "0.4"
hex = "0.4"
image = "0.23"
lazy_static = "1.4"
log = "0.4"
lru = "0.7"
num-traits = "0.2"
ordered-float = "2.8"
palette = "0.5"
serde = {version="1.0", features = ["rc"]}
terminfo = "0.7"
unicode-segmentation = "1.8"
unicode-width = "0.1"
url = "2"
[dev-dependencies]
pretty_assertions = "0.6"
pretty_env_logger = "0.4"
k9 = "0.11.0"
[dependencies.termwiz]
version = "0.14"
path = "../termwiz"
features = ["use_image"]