1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-24 22:01:47 +03:00
wezterm/termwiz/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

71 lines
1.5 KiB
TOML

[package]
authors = ["Wez Furlong"]
name = "termwiz"
version = "0.14.0"
edition = "2018"
repository = "https://github.com/wez/wezterm"
description = "Terminal Wizardry for Unix and Windows"
license = "MIT"
documentation = "https://docs.rs/termwiz"
keywords = ["terminal", "readline", "console", "curses"]
readme = "README.md"
[dependencies]
base64 = "0.13"
bitflags = "1.3"
cassowary = {version="0.3", optional=true}
cfg-if = "1.0"
anyhow = "1.0"
filedescriptor = { version="0.8", path = "../filedescriptor" }
fnv = {version="1.0", optional=true}
hex = "0.4"
image = {version="0.23", optional=true}
lazy_static = "1.4"
libc = "0.2"
log = "0.4"
memmem = "0.1"
num-traits = "0.2"
ordered-float = "2.8"
regex = "1"
semver = "0.11"
serde = {version="1.0", features = ["rc", "derive"], optional=true}
sha2 = "0.9"
terminfo = "0.7"
thiserror = "1.0"
unicode-segmentation = "1.8"
ucd-trie = "0.1"
vtparse = { version="0.5", path="../vtparse" }
[features]
widgets = ["cassowary", "fnv"]
use_serde = ["serde"]
use_image = ["image"]
docs = ["widgets", "use_serde"]
[dev-dependencies]
varbincode = "0.1"
pretty_assertions = "0.6"
[dependencies.num-derive]
features = ["full-syntax"]
version = "0.3"
[target."cfg(unix)".dependencies]
signal-hook = "0.1"
termios = "0.3"
[target."cfg(windows)".dependencies.winapi]
features = [
"winbase",
"winerror",
"winuser",
"consoleapi",
"handleapi",
"fileapi",
"synchapi",
]
version = "0.3"
[package.metadata.docs.rs]
features = ["docs"]
rustdoc-args = ["--cfg", "feature=\"docs\""]