mirror of
https://github.com/wez/wezterm.git
synced 2024-12-24 22:01:47 +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
50 lines
1.3 KiB
TOML
50 lines
1.3 KiB
TOML
[package]
|
|
name = "wezterm-ssh"
|
|
version = "0.3.0"
|
|
authors = ["Wez Furlong <wez@wezfurlong.org>"]
|
|
edition = "2018"
|
|
repository = "https://github.com/wez/wezterm"
|
|
description = "More convenient higher level wrapper around libssh2"
|
|
license = "MIT"
|
|
documentation = "https://docs.rs/wezterm-ssh"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[features]
|
|
vendored-openssl = ["ssh2/vendored-openssl", "libssh-rs/vendored-openssl"]
|
|
|
|
[dependencies]
|
|
anyhow = "1.0"
|
|
base64 = "0.13"
|
|
bitflags = "1.3"
|
|
camino = "1.0"
|
|
dirs-next = "2.0"
|
|
filedescriptor = { version="0.8", path = "../filedescriptor" }
|
|
filenamegen = "0.2"
|
|
libc = "0.2"
|
|
log = "0.4"
|
|
portable-pty = { version="0.6", path = "../pty" }
|
|
regex = "1"
|
|
smol = "1.2"
|
|
ssh2 = {version="0.9.3", features=["openssl-on-win32"]}
|
|
libssh-rs = {version="0.1.1", features=["vendored"]}
|
|
#libssh-rs = {path="../../libssh-rs/libssh-rs", features=["vendored", "vendored-openssl"]}
|
|
thiserror = "1.0"
|
|
|
|
# Not used directly, but is used to centralize the openssl vendor feature selection
|
|
async_ossl = { path = "../async_ossl" }
|
|
|
|
[dev-dependencies]
|
|
assert_fs = "1.0.4"
|
|
indoc = "1.0"
|
|
k9 = "0.11.0"
|
|
once_cell = "1.8"
|
|
predicates = "2.0"
|
|
pretty_env_logger = "0.4"
|
|
rstest = "0.11"
|
|
shell-words = "1.0"
|
|
smol-potat = "1.1.2"
|
|
structopt = "0.3"
|
|
termwiz = { version = "0.14", path = "../termwiz" }
|
|
whoami = "1.1"
|