Commit graph

1740 commits

Author SHA1 Message Date
Martin Nordholts
e87c554ccd tests: Make mocked pagers work on Windows 2021-01-04 20:22:04 +01:00
Martin Nordholts
df33ed05dd Run PATH-dependent tests serially
Since PATH is a shared resource.
2021-01-04 15:45:57 +01:00
Martin Nordholts
c9efdd68ed Add integration tests for 'more' and 'most' used as pagers 2021-01-04 10:30:55 +01:00
Martin Nordholts
bfa5342331 Also replace 'more' from PAGER with 'less'
But first do some quite significant refactorings to keep the code clean
and easy to understand.
2020-12-30 17:59:30 +01:00
Martin Nordholts
22bdc7c20f When PAGER=most, don't print a warning to stderr, silently use less instead 2020-12-30 08:25:39 +01:00
Martin Nordholts
552545fe5f Merge remote-tracking branch 'origin/master' into fix-1063 2020-12-28 22:48:52 +01:00
Martin Nordholts
dcfe883f4b Simplify and polish pager.rs and related code 2020-12-28 22:39:34 +01:00
Martin Nordholts
f45fa5e187 CHANGELOG.md: Add bugfix entry for #614 2020-12-28 22:32:56 +01:00
Martin Nordholts
05e9da390f bat cache --build: Print syntect error message for themes if any
This will fix #614 by making it clear what is wrong by showing the
following error message:

    Failed to load one or more themes from
    '/Users/me/.config/bat/themes' (reason: 'Invalid syntax theme
    settings')

We also need to add a check if theme_dir.exists(), otherwise an absent
dir will seem like an error:

    Failed to load one or more themes from
    '/Users/me/.config/bat/themes' (reason: 'IO error for
    operation on /Users/me/.config/bat/themes: No such file or
    directory (os error 2)')

(This is the same check we already have for syntax_dir.)
2020-12-28 22:32:56 +01:00
Martin Nordholts
cc0f8ca813 Merge remote-tracking branch 'origin/master' into fix-1063 2020-12-28 21:57:38 +01:00
Martin Nordholts
9c16571347 bat --list-languages: remove unnecessary format!() call
To trigger/verify the changed code, run

    bat --list-languages   # or -L

This is the last clippy warning in the code that you get if you run

    cargo clippy --all-targets --all-features -- --allow clippy::style

so by fixing it it becomes easier to spot when a new warning is
introduced (that does not belong to the clippy category clippy::style).
And by making it easy to spot new warnings, we increase chance of such
regressions not ending up in the code base.
2020-12-28 20:28:24 +01:00
Martin Nordholts
2765c6ba3b clippy: Only enforce 'correctness' lints, just print the rest
Only the 'correctness' category of lints are 'deny' by default. This is
the only clippy lints we want to enforce for now. The other ones we just
want to print in the logs. So remove any --deny and --allow arguments.
See discussion in #1410.
2020-12-28 14:22:56 +01:00
Martin Nordholts
28f3f3c9c9 Add Clippy linter step to CICD
Run the linter on the minimum supported rust version; otherwise we will
get lint warnings for things that require a too high Rust toolchain
version to fix.

Allow the following checks, since we already violate them our code:
- clippy::new-without-default
- clippy::match-bool
- clippy::if_same_then_else

Eventually we should fix these lint issues and then disallow them to
prevent them from coming back in other places.

The clippy args used is recommended here:
https://github.com/rust-lang/rust-clippy#travis-ci
2020-12-28 14:22:56 +01:00
sharkdp
73d9a95862 Update CHANGELOG 2020-12-28 09:36:49 +01:00
Ensar Sarajčić
9c9a9ac452 Update VimL syntax upstream 2020-12-28 09:33:32 +01:00
Ensar Sarajčić
29ea396c31 Improve VimL regex highlighting
**NOTES:**
- PR is not yet merged in upstream repository (https://github.com/SalGnt/Sublime-VimL/pull/12),
but sublime-syntax file is already updated with changes.
- Updated syntax test files are added as well

This fixes #1064
2020-12-28 09:33:32 +01:00
Ensar Sarajčić
171d215f91 Add case from #1604 to VimL syntax-test source 2020-12-28 09:33:32 +01:00
Ensar Sarajčić
cc6109a751 Add syntax highlighting tests for VimL
Adds a syntax highlighting test for VimL
with source file based on parts of my own configuration
changed to cover as much of syntax as possible.

**NOTES:**
Last line of source (`syntax enable`) does not get highlighted,
since `syntax` keyword is not part of highlighting rules.

Related to #1213
2020-12-28 09:33:32 +01:00
Martin Nordholts
47bb4a9c0f Introduce bat_warning! helper macro
This macro is intended to be package-internal and is not to be
considered part of the public lib API.

Use it in three places to reduce code duplication. However, main reason
for this refactoring is to allow us to fix #1063 without duplicating the
code yet another time.

The macro can also be used for the "Binary content from {} will not be
printed to the terminal" message if that message starts to use eprintln!
instead (if ever).

To trigger/verify the changed code, the following commands can be used:

    cargo run -- --theme=ansi-light tests/examples/single-line.txt
    cargo run -- --theme=does-not-exist tests/examples/single-line.txt
    cargo run -- --style=grid,rule tests/examples/single-line.txt
2020-12-28 09:27:40 +01:00
Marco Ieni
b149ea91dd Cargo.toml: remove "readme" field 2020-12-28 09:26:44 +01:00
Martin Nordholts
6d1c7d5f57 Fix clippy::if_same_then_else warning in --paging=auto logic 2020-12-28 09:21:27 +01:00
David Peter
07bd7503c5 Update CHANGELOG.md 2020-12-21 21:52:04 +01:00
John Meow
1b5af89ddd Move changelog entry to unreleased 2020-12-21 21:52:04 +01:00
John Meow
3d07dec8fd Use Briles/gruvbox .tmTheme files instead of peaceant's port 2020-12-21 21:52:04 +01:00
Martin Nordholts
a63bb08eda Add test 'grid_for_file_without_newline' (for issue #299 fix)
This is a regression test for the fix for issue #299. If that fix is
reverted, currently only one test ('header_padding') fails. But that
test is for a different use case, so add a dedicated regression test for
the particular use case issue #299 is about.
2020-12-21 21:45:34 +01:00
sharkdp
e0207f8167 Fix test 2020-12-21 17:05:10 +01:00
Mitchell Kember
3099f51ba7 Add ansi theme to replace ansi-light and ansi-dark
This combines ansi-light and ansi-dark into a single theme that works
with both light and dark backgrounds. Instead of specifying white/black,
the ansi theme uses the terminal's default foreground/background color
by setting alpha=01, i.e. #00000001. This is in addition to the alpha=00
encoding where red contains an ANSI color palette number.

Now, `--theme ansi-light` and `--theme ansi-dark` will print a
deprecation notice and use ansi instead (unless the user has a custom
theme named ansi-light or ansi-dark, which would take precedence).
2020-12-21 17:05:10 +01:00
sharkdp
19e7763f35 Add changelog entry 2020-12-21 09:42:06 +01:00
David Peter
73cff42ec9 Remove commented-out line from Cargo.toml 2020-12-21 09:41:29 +01:00
Lovecraftian Horror
b349155f2f Remove repeated contains calls 2020-12-21 09:41:29 +01:00
sharkdp
ab4c120ea5 Highlight 'batcat' note in README, see #1420 2020-12-21 09:36:14 +01:00
David Peter
947133d295 Update CHANGELOG.md 2020-12-21 09:24:56 +01:00
Stefan Kunkel
bf96e6e642 make bat -L use plain style 2020-12-21 09:24:56 +01:00
Stefan Kunkel
cffacad306 make bat -L use pager 2020-12-21 09:24:56 +01:00
David Peter
cc7b89faf8
Merge pull request #1440 from Enselic/fix-1438-newline-can-be-added-even-if-style-plain
Don't add artificial newline to last line if --style=plain
2020-12-21 09:24:26 +01:00
chris48s
c1e4746d50 change docs dir name to match package name
i.e: docs for bat-musl go in /usr/share/doc/bat-musl
not /usr/share/doc/bat
2020-12-21 09:23:56 +01:00
chris48s
8331eec7fc include changelog in package
in line with debian changelog/release notes guidance
https://www.debian.org/doc/debian-policy/ch-docs.html#changelog-files-and-release-notes
resolves changelog-file-missing-in-native-package
https://lintian.debian.org/tags/changelog-file-missing-in-native-package.html
2020-12-21 09:23:56 +01:00
chris48s
0547068ed0 include years in copyright notice
This brings the copyright notice into line with the expected format
resolves copyright-without-copyright-notice
https://lintian.debian.org/tags/copyright-without-copyright-notice.html
2020-12-21 09:23:56 +01:00
chris48s
18d8389785 ensure copyright is mode 644
resolves non-standard-file-perm
https://lintian.debian.org/tags/non-standard-file-perm.html
2020-12-21 09:23:56 +01:00
chris48s
165d25d941 remove leading article from description
resolves description-synopsis-starts-with-article
https://lintian.debian.org/tags/description-synopsis-starts-with-article.html
2020-12-21 09:23:56 +01:00
chris48s
c4fb77b042 invoke gzip with -n
resolves package-contains-timestamped-gzip
https://lintian.debian.org/tags/package-contains-timestamped-gzip.html
2020-12-21 09:23:56 +01:00
VeryTastyTomato
973ea984c8 fix: warnings of ShellCheck
SC2155: Declare and assign separately to avoid masking return values.
SC2164: Use cd ... || exit in case cd fails.
SC2230: which is non-standard. Use builtin 'command -v' instead.
2020-12-21 09:08:54 +01:00
sharkdp
3e9afe2974 Add integration test for nonexisting newline 2020-12-21 08:34:22 +01:00
David Peter
73c16574e6
Merge branch 'master' into fix-1438-newline-can-be-added-even-if-style-plain 2020-12-21 08:22:01 +01:00
Martin Nordholts
60e00d49a9
Fix #1443 macOS: regression_test.sh: mktemp: illegal option (#1444)
The macOS version of mktemp does not recognize the --suffix option.
Using pure -d should work since, it seems [1], macOS 10.11 however.

So to make the script work on macOS, stop using the --suffix option.

The downside is of course that the temporary dir will have an anonymous
name, but I see no risk of confusion given how short-lived the usage of
the dir is, and given the context it is used.

[1] https://unix.stackexchange.com/questions/30091/fix-or-alternative-for-mktemp-in-os-x
2020-12-21 08:16:49 +01:00
Keith Hall
2d22c705ba
Merge pull request #1439 from rsteube/themes-help-interactive-only
only print themes hint in interactive mode
2020-12-19 23:54:41 +02:00
Martin Nordholts
68d525cd8b Don't add artificial newline to last line if --style=plain
This fixes #1438.

Note however, that using a pager such as less will add a newline itself.
So to actually not print a newline for such files, you need to either
disable paging:

  bat --style=plain --paging=never no-newline-at-end-of-file.txt

or use a "pager" that does not add a newline:

  bat --style=plain --pager=cat no-newline-at-end-of-file.txt

Note that we also update syntax tests file since a bunch of them had
missing newlines on the last lines.
2020-12-19 10:32:50 +01:00
Martin Nordholts
c3fc1b88fe replace_nonprintable: Keep \n around
Since it has a functional role, we can not just replace it, we must keep
it around. This also allows us to simplify the code slightly.

We must fix this before we fix #1438 since otherwise the \n will be
missing with --style=plain, since we will stop adding it if it is
missing.
2020-12-19 10:27:06 +01:00
rsteube
84b0702399 only print themes hint in interactive mode 2020-12-17 10:41:07 +01:00
purvesh-linux11
f3489ffa29 add packaging in unreleased section 2020-12-02 08:46:29 +01:00