diff options
author | sharkdp <davidpeter@web.de> | 2020-04-21 08:56:26 +0200 |
---|---|---|
committer | David Peter <sharkdp@users.noreply.github.com> | 2020-04-21 10:00:32 +0200 |
commit | c386cb35fb5f5fd2d2d3dedcb841812982728c2d (patch) | |
tree | 834fa6091d2ad8abea6f451956370a2ca763fa30 | |
parent | 97ea3dd4dc73c48e29c782ef5a6846b10a76d5bd (diff) |
Pass '--mouse' to less versions >= 551
When using `less` version 551 or newer, `bat` will now pass the `--mouse` argument, allowing
for (better) mouse scrolling support in some terminals.
closes #904
-rw-r--r-- | CHANGELOG.md | 2 | ||||
-rw-r--r-- | src/output.rs | 14 |
2 files changed, 15 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index e7757567..fb247ba1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ in the header. This is useful when piping input into `bat`. See #654 and #892 (@neuronull). - Added a new `--generate-config-file` option to creat an initial configuration file at the right place. See #870 (@jmick414) +- When using `less` version 551 or newer, `bat` will now pass the `--mouse` argument, allowing + for (better) mouse scrolling support in some terminals, see #904 ## Bugfixes diff --git a/src/output.rs b/src/output.rs index 15f29e43..c8c44fbb 100644 --- a/src/output.rs +++ b/src/output.rs @@ -82,11 +82,13 @@ impl OutputType { p.arg("--quit-if-one-screen"); } + let less_version = retrieve_less_version(); + // Passing '--no-init' fixes a bug with '--quit-if-one-screen' in older // versions of 'less'. Unfortunately, it also breaks mouse-wheel support. // // See: http://www.greenwoodsoftware.com/less/news.530.html - match retrieve_less_version() { + match less_version { None => { p.arg("--no-init"); } @@ -95,6 +97,16 @@ impl OutputType { } _ => {} } + + // Passing '--mouse' allows mouse scrolling in terminals which do not + // support "fake scrolling", see https://github.com/sharkdp/bat/issues/904 + // The '--mouse' argument is only supported in less 551 or higher. + match less_version { + Some(version) if version >= 551 => { + p.arg("--mouse"); + } + _ => {} + } } else { p.args(args); } |