Skip to content

Commit 2708360

Browse files
committed
Apply sort order to line and grid outputs. Fix ogham#404
1 parent 13b91cc commit 2708360

File tree

3 files changed

+12
-4
lines changed

3 files changed

+12
-4
lines changed

src/main.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -264,13 +264,15 @@ impl<'args> Exa<'args> {
264264

265265
match (mode, self.console_width) {
266266
(Mode::Grid(ref opts), Some(console_width)) => {
267-
let r = grid::Render { files, theme, file_style, opts, console_width };
267+
let filter = &self.options.filter;
268+
let r = grid::Render { files, theme, file_style, opts, console_width, filter };
268269
r.render(&mut self.writer)
269270
}
270271

271272
(Mode::Grid(_), None) |
272273
(Mode::Lines, _) => {
273-
let r = lines::Render { files, theme, file_style };
274+
let filter = &self.options.filter;
275+
let r = lines::Render { files, theme, file_style, filter };
274276
r.render(&mut self.writer)
275277
}
276278

src/output/grid.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use std::io::{self, Write};
33
use term_grid as tg;
44

55
use crate::fs::File;
6+
use crate::fs::filter::FileFilter;
67
use crate::output::file_name::Options as FileStyle;
78
use crate::theme::Theme;
89

@@ -26,17 +27,19 @@ pub struct Render<'a> {
2627
pub file_style: &'a FileStyle,
2728
pub opts: &'a Options,
2829
pub console_width: usize,
30+
pub filter: &'a FileFilter,
2931
}
3032

3133
impl<'a> Render<'a> {
32-
pub fn render<W: Write>(&self, w: &mut W) -> io::Result<()> {
34+
pub fn render<W: Write>(mut self, w: &mut W) -> io::Result<()> {
3335
let mut grid = tg::Grid::new(tg::GridOptions {
3436
direction: self.opts.direction(),
3537
filling: tg::Filling::Spaces(2),
3638
});
3739

3840
grid.reserve(self.files.len());
3941

42+
self.filter.sort_files(&mut self.files);
4043
for file in &self.files {
4144
let filename = self.file_style.for_file(file, self.theme).paint();
4245

src/output/lines.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use std::io::{self, Write};
33
use ansi_term::ANSIStrings;
44

55
use crate::fs::File;
6+
use crate::fs::filter::FileFilter;
67
use crate::output::cell::TextCellContents;
78
use crate::output::file_name::{Options as FileStyle};
89
use crate::theme::Theme;
@@ -13,10 +14,12 @@ pub struct Render<'a> {
1314
pub files: Vec<File<'a>>,
1415
pub theme: &'a Theme,
1516
pub file_style: &'a FileStyle,
17+
pub filter: &'a FileFilter,
1618
}
1719

1820
impl<'a> Render<'a> {
19-
pub fn render<W: Write>(&self, w: &mut W) -> io::Result<()> {
21+
pub fn render<W: Write>(mut self, w: &mut W) -> io::Result<()> {
22+
self.filter.sort_files(&mut self.files);
2023
for file in &self.files {
2124
let name_cell = self.render_file(file);
2225
writeln!(w, "{}", ANSIStrings(&name_cell))?;

0 commit comments

Comments
 (0)