Commit Graph

274 Commits

Author SHA1 Message Date
Ben S
d710151ea9 Updates for term-grid
The separator_width field in the term_grid crate was replaced with a filling field.
2015-07-15 21:16:08 +01:00
Ben S
56895ab84f Extract some methods 2015-06-29 14:47:07 +01:00
Ben S
2bc7fde715 Allow using --across with --long --grid 2015-06-29 13:13:23 +01:00
Ben S
6d6e8b78f0 Fix bug where unfilled displays were being checked 2015-06-28 21:27:18 +01:00
Ben S
26e3abc6b1 Re-add missing failing option combinations 2015-06-28 20:41:38 +01:00
Ben S
922cd2a188 Cache the rendered cells
Previously, each time it tried to render a table (to check its width), it both re-queried the filesystem and re-formatted the values into coloured strings.

These values are now calculated only once before the table is drawn, and are used repeatedly throughout.

Although it looks as though there's more `clone()`ing going on than before, it used to be recalculating things and storing them as vectors anyway, so the memory would still be used in any case.
2015-06-28 19:57:13 +01:00
Ben S
89526964c9 Go top-to-bottom, not left-to-right 2015-06-28 19:11:39 +01:00
Ben S
08f3514d68 Adapt the long grid view to the console width 2015-06-28 16:25:59 +01:00
Ben S
ccdf9ff4a6 Add --grid --long option
This commit adds --grid, which, when used with --long, will split the details into multiple columns. Currently this is just 2 columns, but in the future it will be based on the width of the terminal.

In order to do this, I had to do two things:

1. Add a `links` parameter to the filename function, which disables the printing of the arrow and link target in the details view. When this is active, the columns get way too large, and it becomes not worth it.
2. Change the `print_table` function from actually printing the table to stdout to returning a list of `Cells` based on the table. This list then gets its width measured to calculate the width of the resulting table.
2015-06-28 13:21:21 +01:00
Ben S
8d6f62840a Use term_grid crate for grid formatting
Fixes #39!
2015-06-23 10:54:57 +01:00
Ben S
b235b64060 The feature flags wheel keeps on turning... 2015-06-21 12:52:53 +01:00
Benjamin Sago
488c7dc9c4 Remove a few feature flags 2015-06-17 18:31:53 +01:00
Michael Neumann
96018841f6 Fix terminal window size for DragonFly 2015-06-17 02:13:53 +02:00
Michael Neumann
a0105b951d Move dummy xattr Attribute implementation into its own module. 2015-06-17 01:52:06 +02:00
Michael Neumann
6155252ac8 metadata.as_raw() is gone in nightly 2015-06-17 01:49:29 +02:00
Ben S
b57e82e771 Typo fix 2015-06-08 21:52:46 +01:00
Ben S
2d8a9b49be Various unimportant style changes 2015-06-08 21:33:39 +01:00
Ben S
ea3a57eb97 Start using threadpool crate 2015-06-05 03:04:56 +01:00
Ben S
cc1d6aa5f1 Display dates with the host's timezone
Fixes #54 using the datetime crate's spiffy new time zone ability.
2015-06-04 15:15:39 +01:00
Ben S
90c77ff3b4 Fix failing test code 2015-05-29 20:39:45 +01:00
Ben S
4d2d8686c8 Use new ansi-term
- Plain -> Style::default()
2015-05-29 11:34:57 +01:00
Ben S
d77e43bb9b Merge branch 'master' of github.com:ogham/exa 2015-05-26 14:22:58 +01:00
Markus Engelbrecht
5caa6dd924 fix compile errors if git support is disabled 2015-05-24 12:05:44 +02:00
Ben S
0c66d15345 Minuscule code cleanup 2015-05-21 16:09:26 +01:00
Ben S
31ce5b27ab StatResult::Path -> Dir 2015-05-21 16:09:16 +01:00
Ben S
50442a0bfe Generify Table to be used in tests once again
Finally! The benefit of having all the field-rendering code (in details.rs) separate from the value-getting code (in file.rs) is that rendering them can be tested again.
2015-05-16 21:02:28 +01:00
Ben S
8e7efed3f5 Add Default instances in Options 2015-05-16 18:34:05 +01:00
Ben S
5ffff841e0 Replace the tests for File with the working subset 2015-05-16 18:33:08 +01:00
Ben S
a687dc936e Rename 'stat' -> 'metadata' 2015-05-16 18:16:35 +01:00
Ben S
fcc864eb67 Add some more comments and spacings 2015-05-16 16:10:58 +01:00
Ben S
1bb7a4e47e Remove space when no file has extended attributes
There would be an extra column, and it looked unsightly. Unsightly!

This also removes the last specific style from the details view (Plain).
2015-05-16 14:30:01 +01:00
Ben S
2594690aff Start using the libc crate from crates.io 2015-05-16 13:17:50 +01:00
Ben S
00ae71850b Lifetime-renaming action! 2015-05-12 15:38:12 +01:00
Ben S
07ff10e550 Lifetime-eliding action! 2015-05-12 15:37:59 +01:00
Ben S
c9a3affb4c Move Git render_char to its own method 2015-05-12 03:36:47 +01:00
Ben S
e2f2bd69de Fix Git colours to be actually correct 2015-05-12 03:34:52 +01:00
Ben S
085067d18e Move File fields to their own module 2015-05-12 03:33:40 +01:00
Ben S
2a3045ddfa Minor whitespace changes 2015-05-12 03:14:56 +01:00
Ben S
b0d4c9728f Where do all these tabs keep coming from? 2015-05-12 03:08:24 +01:00
Ben S
fafeda771d The locals struct is no longer necessary 2015-05-12 03:07:16 +01:00
Ben S
5af0f5793e Remove year field on timestamp column
It's now in the locals of the Table struct, and didn't really belong in the column anyway.
2015-05-12 03:02:38 +01:00
Ben S
7f48748e70 Move size_format into render_size method
The benefit of having these all as separate methods instead of using the same trait is that we can just pass parameters in like this!
2015-05-12 03:00:18 +01:00
Ben S
02ba026763 Remove redundant imports 2015-05-12 02:59:22 +01:00
Ben S
4a43aa8db1 Move renderers from traits to Table object 2015-05-12 02:54:34 +01:00
Ben S
6068f2dd86 Fix size numbers bolding 2015-05-11 23:58:40 +01:00
Ben S
898b89b8fd Make executable files' 'x's underlined again 2015-05-11 23:57:29 +01:00
Ben S
f6915c1f87 Add the file type column back in 2015-05-11 23:44:52 +01:00
Ben S
dc6599b1b3 Turn File into simply a data source
And move all the rendering, ansi_term, colourful stuff into the output modules, which is the only place they should be used!
2015-05-11 23:28:01 +01:00
Ben S
c6d8c21e80 Finally, do the same for the Git column. 2015-05-10 18:03:15 +01:00
Ben S
d9319c48b4 Do the same for the Git column 2015-05-10 17:57:21 +01:00