mirror of
https://github.com/wez/wezterm.git
synced 2024-11-23 15:04:36 +03:00
225e7a1243
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
71 lines
1.5 KiB
TOML
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\""]
|