Commit graph

1602 commits

Author SHA1 Message Date
Mélanie Chauvel 435161e6e4
Merge pull request #819 from PatriotRossii/feature/actualize_readme
Add "octal-permissions" flag to list of options
2021-03-27 19:12:19 +01:00
ariasuni 74ecf6d311 Fix a rounding error in human readable filesizes 2021-03-27 18:54:00 +01:00
Chester Liu 33dd8fd2ca Clean 2021-03-26 20:34:16 +08:00
Chester Liu 13b3635407 Fix tests 2021-03-26 20:28:23 +08:00
Chester Liu 5503e4756e Clean 2021-03-26 18:45:52 +08:00
Chester Liu 31583691d5 Timestamps 2021-03-26 18:40:22 +08:00
Chester Liu aeb4a679e8 It actually works 2021-03-26 17:47:18 +08:00
Chester Liu e9d0af0343 Restore more 2021-03-26 16:53:31 +08:00
Chester Liu 0e8a4582d0 Restore 2021-03-26 16:50:34 +08:00
Chester Liu 6a642d0f32 merge 2021-03-26 16:37:17 +08:00
PatriotRossii 98e1948cd2 Add "octal-permissions" flag to fish and zsh autocomplete 2021-03-25 12:31:56 +06:00
PatriotRossii 4e5e2ce8f0
Replace "replace" with "replacen" 2021-03-25 11:20:11 +05:00
PatriotRossii 5743e6d8e3
Replace strip_prefix with replace 2021-03-24 19:05:38 +05:00
PatriotRossii 77ad59347a
Add "octal-permissions" flag to list of options 2021-03-24 18:53:57 +05:00
PatriotRossii 57cf0f1b23 Update determine_time_zone according to GNU manual 2021-03-24 17:36:13 +05:00
b05902132 4ea79ee11d Add options for -n or --numeric-gid-uid.
This option is only avaialable in -l.
There's test for rendering, but no test for option parsing.
(I don't understand that section of code.)
2021-03-19 09:49:17 +08:00
Stuart Carnie c946bab08e
chore: PR feedback 2021-02-28 07:48:00 +11:00
Stuart Carnie 765fcf64c9
Update src/output/icons.rs
Co-authored-by: Mélanie Chauvel <perso@hack-libre.org>
2021-02-28 07:43:42 +11:00
Stuart Carnie c42e0b3945
feat: New Icons and CLI argument to suppress icons 2021-02-28 07:18:17 +11:00
Kartavya Vashishtha b417433644
Added sudo to installation command for Linux 2021-01-19 01:46:38 +05:30
whonore cfa00bf4b2 Fix new tests 2021-01-15 16:45:54 -05:00
whonore c8ed69368e Add tests 2021-01-14 10:01:27 -05:00
whonore 2708360fb5 Apply sort order to line and grid outputs. Fix #404 2021-01-14 10:01:27 -05:00
Mélanie Chauvel 13b91cced4
Merge pull request #772 from 0xflotus/patch-2 2021-01-14 14:29:34 +01:00
0xflotus d11ac5d49b
Recognize SCSS and Stylus as source for CSS files (#770) 2021-01-14 13:54:45 +01:00
Jakub Jirutka a6ad5fa2cd
Add Alpine Linux into Installation in Readme (#767)
* Add Alpine Linux into Installation in Readme

Co-authored-by: Mélanie Chauvel <perso@hack-libre.org>
2021-01-14 13:46:48 +01:00
ariasuni 0f414cf0b9 Don’t produce extra column sometimes with long grid + header
The number of necessary columns was computed by producing a grid in different sizes and see if all columns were used. However, if there was two files and we tried to fit them in a 3-column grid, it would produces three headers and all three columns would be used; when trying a 4-column grid, the two supplementary headers would fill the third column and the fourth would be empty; so 3 columns would be used.

Now, when the grid fits into the terminal and the number of columns is exactly the number of files to display, it returns immediately instead of trying bigger grids.

Fixes GH-436.
2021-01-12 20:18:19 +01:00
ariasuni 73e43c0700 Fix Vagrantfile and extended tests 2021-01-11 18:55:06 +01:00
ariasuni 79bac416f6 Use same styling for spaces between icon and file name
This is only visible when selecting both icon and file name, as most terminal emulators then invert background and foreground color.

It also workaround a Konsole bug: https://bugs.kde.org/show_bug.cgi?id=422776
2021-01-03 22:44:16 +01:00
0xflotus 7b15f32da8
feat: add support Typescript and ReasonML projects
Close #771
2020-12-16 00:08:04 +01:00
ariasuni 13c6c75d3a Tell in the man that some flags needs exa built with git support 2020-12-10 19:29:37 +01:00
ariasuni 42bc34f339 Tell if exa was compiled with git support or not when using --help 2020-12-10 19:29:33 +01:00
ariasuni a740512014 Warm when git feature is disabled instead of ignoring flags
The flags --git and --git-ignore are caught early during options parsing, so no more checking for git feature is done elsewhere.

Since --git-ignore depends on git too since recently, remove it from help when git feature is disabled.

Extended attributes now don’t artificially depends on git feature being enabled.
2020-12-10 18:48:58 +01:00
Benjamin Sago 39c8c67bf6 Justfile command to run cargo-udeps 2020-10-25 11:44:11 +00:00
Benjamin Sago bfcefd3f82 Merge branch 'better-icons' 2020-10-24 19:51:34 +01:00
Benjamin Sago 51be9f4c43 Introduce EXA_ICON_SPACING environment variable
This commit remove the extra space that was added between icons and file names in commit 128fadd, and adds an option to put them back.

Re-fixes GH-619 and fixes GH-541.
2020-10-24 19:41:07 +01:00
Benjamin Sago c83359225b Fix xtests for previous two commits 2020-10-24 18:43:59 +01:00
Benjamin Sago 976db01b3e Prefer background colour when painting icons
The rationale here is that there's more of a background colour than the foreground colour when painting text, and having a gap of no background colour in between the icon and the file name looks weird.

Fixes GH-561.
2020-10-24 18:29:28 +01:00
Benjamin Sago 67a6cdd46a Make icon styles appropriate for all file types
exa now bases the icon style for a file on its file name and kind in all cases, rather than just on its file name. This means that directories and symlinks have the correctly-coloured icon.

It also only takes the foreground colour into account while styling the icon, to make sure they're not bold or underlined.

Fixes GH-528.
2020-10-24 18:16:38 +01:00
Benjamin Sago f1e3e7c7ff Move icon generation into file name module
This commit makes adding icons to file names something that the file name renderer does, rather than something that each individual view does. This is now possible thanks to the previous commit a1869f2, which moved the option to do this into the same module. The repeated code has been removed.

It happens to fix a bug where the width of each column was being incorrectly calculated for the grid-details view, making lines slightly too long for the terminal because the icon wasn't being taken into account.
2020-10-24 18:03:36 +01:00
Benjamin Sago b05f18cae0 Merge branch 'view-options' 2020-10-24 17:53:55 +01:00
Benjamin Sago a1869f208e Move common icons option to file style struct
All four of the view mode command-line argument parsers tested for the --icons option. Because it was common, the behaviour has been moved to the struct that handles file styles, meaning it can be parsed in one place.

This is a better place for it, as the icons are to do with the file name, not the view. It also means that the lines view has no options left for it, which is fitting.
2020-10-23 23:57:10 +01:00
Benjamin Sago 800c73ff24 Add icons xtests 2020-10-23 23:49:10 +01:00
Benjamin Sago fd730e436c Make View command-line args position-dependent
This commit changes the way the View (long mode, lines mode, grid mode, etc) is parsed from the command-line arguments.

Previously, it checked for long and long-grid, then tree, then lines, then grid, in that order, no matter which order the arguments were given in on the command-line. Now, it bases the view on whichever argument comes last in the list.

Unfortunately, the options-parsing code for Views is getting really complicated, but I can't see a way to simplify it while retaining the existing functionality.

It also links the parsing of DirAction to the result of parsing the View, so that you can't use tree mode if your view isn't Details. This is to fix an issue where `exa --tree --oneline` would just emit ".", because the DirAction was treating directories as files, and the argument was ".", and the View made it use lines view. Now, the --tree is ignored, as the view isn't Details.

Fixes GH-407 and GH-583.
2020-10-23 23:04:22 +01:00
Benjamin Sago bf3d58aa80 a small formatting change 2020-10-23 22:32:16 +01:00
Benjamin Sago 3419afa7cf Massive theming and view options refactor
This commit significantly refactors the way that options are parsed. It introduces the Theme type which contains both styling and extension configuration, converts the option-parsing process into a being a pure function, and removes some rather gnarly old code.

The main purpose of the refactoring is to fix GH-318, "Tests fail when not connected to a terminal". Even though exa was compiling fine on my machine and on Travis, it was failing for automated build scripts. This was because of what the option-parsing code was trying to accomplish: it wasn't just providing a struct of the user's settings, it was also checking the terminal, providing a View directly.

This has been changed so that the options module now _only_ looks at the command-line arguments and environment variables. Instead of returning a View, it returns the user's _preference_, and it's then up to the 'main' module to examine the terminal width and figure out if the view is doable, downgrading it if necessary.

The code that used to determine the view was horrible and I'm pleased it can be cut out. Also, the terminal width used to be in a lazy_static because it was queried multiple times, and now it's not in one because it's only queried once, which is a good sign for things going in the right direction.

There are also some naming and organisational changes around themes. The blanket terms "Colours" and "Styles" have been yeeted in favour of "Theme", which handles both extensions and UI colours. The FileStyle struct has been replaced with file_name::Options, making it similar to the views in how it has an Options struct and a Render struct.

Finally, eight unit tests have been removed because they turned out to be redundant (testing --colour and --color) after examining the tangled code, and the default theme has been put in its own file in preparation for more themes.
2020-10-22 22:34:00 +01:00
Benjamin Sago f0c63b64ec Use issue templates 2020-10-21 16:59:44 +01:00
Benjamin Sago db6288a9bb Link to GitHub Sponsors 2020-10-21 16:57:19 +01:00
Benjamin Sago eb90b4d168 Ignore --across --long conflict not in strict mode
Fixes #476.
2020-10-20 22:48:05 +01:00
Benjamin Sago 85414b2a61 Very slight test cleaning
I'm not 100% on the way these tests are laid out, but it _is_ helpful to see all the test data aligned like that.
2020-10-20 22:42:04 +01:00