@@ -288,8 +288,8 @@ impl App {
288288
289289 fn style_components(&self) -> Result<StyleComponents> {
290290 let matches = &self.matches;
291− Ok(StyleComponents(
292− if matches.value_of("decorations") == Some("never") {
291+ let mut styled_components =
292+ StyleComponents(if matches.value_of("decorations") == Some("never") {
293293 HashSet::new()
294294 } else if matches.is_present("number") {
295295 [StyleComponent::LineNumbers].iter().cloned().collect()
@@ -323,7 +323,17 @@ impl App {
323323 acc.extend(components.iter().cloned());
324324 acc
325325 })
326− },
327− ))
326+ });
327+
328+ // If `grid` is set, remove `rule` as it is a subset of `grid`, and print a warning.
329+ if styled_components.grid() && styled_components.0.remove(&StyleComponent::Rule) {
330+ use ansi_term::Colour::Yellow;
331+ eprintln!(
332+ "{}: Style 'rule' is a subset of style 'grid', 'rule' will not be visible.",
333+ Yellow.paint("[bat warning]"),
334+ );
335+ }
336+
337+ Ok(styled_components)
328338 }
329339}