aboutsummaryrefslogtreecommitdiffstats
path: root/util/human/io.lua
Commit message (Collapse)AuthorAgeFilesLines
* util.human.io: Fix stray 'stty' error by only querying width of real ttysKim Alvefur2023-07-161-0/+4
| | | | | This adds a dependency on a binary and *nix-specific module but then stty is probably *nix-specific anyway so maybe that's fine.
* util.human.io: Fix pattern in parse_duration() to cover all used lettersKim Alvefur2023-07-161-2/+2
| | | | | Notably 'h' was missing. Awkwardly, 'hour' would result in 'ho' which was missing from table.
* util.human.io: Fix column width miscalculationKim Alvefur2023-04-091-3/+0
| | | | | | Fixes that the more fixed width columns there are, the narrower the resulting table becomes. A right-aligned variable-width column at the last position should always be flush to the right side of the terminal.
* util.human.io: Fix error with ellipsis to negative lengthKim Alvefur2023-04-091-1/+1
| | | | | Can happen if you resize the terminal too narrow that the space left for variable width columns end up negative.
* util.human.io: Add parse_duration() method to parse a duration stringMatthew Wild2023-04-071-0/+12
| | | | | Similar logic occurs throughout various modules in the codebase. We might even want a module:get_option_duration()??
* util.human.io: Coerce $COLUMNS to numberKim Alvefur2023-04-071-1/+1
| | | | os.getenv() returns a string but term_width() should return a number
* util.human.io: table: don't read $COLUMNS directly, just use term_width()Matthew Wild2023-04-071-1/+1
| | | | ...which now reads $COLUMNS for us and does the right thing.
* util.human.io: table: Return determined width as a second resultMatthew Wild2023-04-071-1/+1
| | | | | This allows callers to adjust other things based on the width of the rows (such as header lines).
* util.human.io: Prefer using the $COLUMNS environment variable if set (by ↵Kim Alvefur2023-04-071-0/+2
| | | | | | readline) Feels like it should be faster.
* util.human.io: table: use term_width() to discover terminal widthMatthew Wild2023-04-071-1/+1
|
* util.human.io: Add term_width() method to discover the terminal widthMatthew Wild2023-04-071-0/+12
| | | | | This is not standard POSIX, but apparently very widely supported. For reference: https://www.austingroupbugs.net/view.php?id=1053
* util.human.io: Pass the whole column definition to mapper functionKim Alvefur2023-04-071-1/+1
| | | | | | I forget why I wanted this, but it may allow doing things like pull settings from the column, especially when the mapper function is reused among many columns.
* util.human.io: Allow defining per column ellipsis functionKim Alvefur2023-04-071-1/+1
| | | | | | As an alternative to doing it in the mapper function. Could be useful in cases where one may want to put the ellipsis in the middle or beginning instead of the start.
* util.human.io: Pass expected width to mapper functionKim Alvefur2023-04-071-1/+1
| | | | | In order to allow it to adjust its output to available space, apply its own ellipsis method or other compacting method.
* util.human.io: Fix pattern to support fractional proportionsMatthew Wild2023-04-061-2/+2
|
* util.human.io: Support for dynamic "proportional" columnsMatthew Wild2023-04-061-4/+14
| | | | | | | | Instead of a percentage, this allows you to specify e.g. `width="[N]p"`, where a width="2p" will be twice the width of a width="1p" column. Compatibility with the old %-based widths is preserved, and percentages adding up to more than 100 are handled more gracefully.
* util: Prefix module imports with prosody namespaceKim Alvefur2023-03-171-2/+2
|
* util.human.io: Fix handling of os.execute() return values in Lua 5.2+Kim Alvefur2022-10-201-3/+3
| | | | Wrong part of Lua 5.1 compat removed in 0f4feaf9ca64
* util: Remove various Lua 5.1 compatibility hacksKim Alvefur2022-07-021-4/+1
| | | | Part of #1600
* util.human.io: Use UTF-8-aware length check in padding functionsKim Alvefur2021-11-121-2/+2
|
* util.human.io: Fix cutting of UTF-8 into piecesKim Alvefur2021-11-121-7/+21
| | | | Down the rabbit hole we go...
* util.human.io: Trim any broken UTF-8 from ellipsisKim Alvefur2021-11-121-1/+5
| | | | | | | This should fix basic problems with multi-byte UTF-8 sequences getting cut in the middle. Down the rabbit hole we go...
* util.human.io: Factor out ellipsis functionKim Alvefur2021-11-121-1/+6
| | | | Could be useful elsewhere
* util.human.io: Support specifying column defaults in tablesKim Alvefur2021-11-121-1/+1
|
* util.human.io: Pass nil to cell mapper to signal missing valueKim Alvefur2021-11-121-1/+9
| | | | | Seems more like conventional Lua than passing an empty string to signal lack of value.
* util.human.io: Fix right-alignmentKim Alvefur2020-06-061-1/+1
|
* util.human.io.table: Allow a map callaback per columnKim Alvefur2020-06-041-1/+1
| | | | | | This allows e.g. mapping booleans to "yes" or "no", specific number formatting or generating virtual columns. All while not mutating the underlying data or creating additional temporary tables.
* util.human.io: Consider separator when calculating remaining widthKim Alvefur2020-06-041-0/+3
|
* util.human.io: Use literal ellipsis instead of \u escapeKim Alvefur2020-06-041-1/+1
| | | | For compat with Lua 5.2 and before
* util.human.io: Replace overflow with ellipsisKim Alvefur2020-06-041-1/+3
|
* util.human.io: Draw a separator between columnsKim Alvefur2020-06-041-2/+3
|
* util.human.io: Remove padding option and use $COLUMNS as default widthMatthew Wild2020-06-041-4/+3
|
* util.human.io: table: Fix title printing when columns use named keysMatthew Wild2020-06-041-2/+3
|
* util.human.io: table: Return title row when no row data passedMatthew Wild2020-06-031-0/+5
|
* util.human.io: table: switch row function to simply returning prepared row ↵Matthew Wild2020-06-031-5/+6
| | | | string
* util.human.io: Add padleft, padright and a table printing functionMatthew Wild2020-06-031-0/+53
|
* util.human.io: Fix variable name [luacheck]Matthew Wild2020-06-021-1/+1
|
* util.human.io: New central place for UI helpersMatthew Wild2020-06-021-0/+96