1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-28 07:55:03 +03:00
Commit Graph

5 Commits

Author SHA1 Message Date
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
Wez Furlong
466961f9c3 tabout: allow tabulating Change slices for colorized output 2020-04-04 13:40:45 -07:00
Wez Furlong
cb9e0f9c59 tabout: correctly handle unicode width
This commit fixes this:

```
STAT                  p50      p75       p95
Key(gui.paint.opengl) 30.15ms  32.37ms   59.51ms
Key(shape.harfbuzz)   68.10µs 290.82µs 307.20µs
```

so that it renders like this:

```
STAT                  p50      p75      p95
Key(gui.paint.opengl) 5.28ms   28.97ms  89.65ms
Key(shape.harfbuzz)   210.94µs 288.77µs 395.26µs
```
2020-01-05 14:37:17 -08:00
Wez Furlong
df20277d85 clippy 2019-07-06 08:18:59 -07:00
Wez Furlong
1d44098747 add cli command to list tabs 2019-06-13 21:53:14 -07:00