1
1
mirror of https://github.com/wez/wezterm.git synced 2024-11-23 23:21:08 +03:00
wezterm/wezterm-ssh/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

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"