Commit Graph

348 Commits

Author SHA1 Message Date
Martin Nordholts
8bd5a88f07 Prepare a new "unreleased" section at the top of CHANGELOG.md 2022-09-10 20:39:33 +02:00
Martin Nordholts
e5d9579614 Bump version to v0.22.1 2022-09-10 17:59:33 +02:00
Martin Nordholts
352309b056 Revert "Remove code that tries to handle ANSI escape inputs"
This reverts commit 8174e02279. Turns out
it is needed for a common use case, see
https://github.com/sharkdp/bat/issues/2307.

It is not a clean revert, because I adjust CHANGELOG.md and also add a
comment to the test. I also had to resolve a small `use` conflict.
2022-09-10 17:59:33 +02:00
David Peter
6680f65e4b Add new 'unreleased' section, post v0.22 2022-09-06 23:11:06 +02:00
David Peter
3c33b28507 Bump version to v0.22 2022-09-06 22:54:20 +02:00
dag-h
08386daa3a
Strip BOM from output in interactive mode (#1938)
* Strip BOM from output in interactive mode

* Strip BOM when not loop_through, add regression tests

* Update CHANGELOG.md

* Only strip BOM from beginning of first line

* Fix integration test on macOS that relied on color scheme

* Fix integration test on Windows that relied on detected terminal width

* Fix syntax test that was failing due to a previously wrong (now fixed) highlighting

Co-authored-by: David Peter <mail@david-peter.de>
Co-authored-by: Martin Nordholts <enselic@gmail.com>
2022-09-06 19:08:38 +02:00
David Peter
6a0ab0095a Add CHANGELOG entry 2022-09-06 09:32:06 +02:00
Kid
1e1fa7cde5 CHANGELOG 2022-09-04 22:23:09 +02:00
David Peter
ca9843fa83
Merge pull request #2236 from kidonng/patch-1
Add `.mts` and `.cts` to TypeScript file extensions
2022-09-04 22:20:02 +02:00
Kid
d7b6519422 Add .mts and .cts to TypeScript file extensions
See also:

https://github.com/github/linguist/pull/5905
2022-09-04 22:06:54 +02:00
Martin Nordholts
bc2dc0796b Move up the entry to the unreleased section in CHANGELOG.md 2022-09-04 21:03:27 +02:00
Martin Nordholts
2dd2994b2f Merge remote-tracking branch 'origin/master' into feature/668/add-systemwide-config 2022-09-04 20:44:23 +02:00
Martin Nordholts
49875d6ce7
Make bat::PrettyPrinter::syntaxes() iterate over new bat::Syntax struct (#2222)
We can't keep `syntect::parsing::SyntaxReference` as part of the public
API, because that might prevent us from bumping to syntect 6.0.0 without
also bumping bat to v2.0.0, once we reach v1.0.0.

So introduce a new stripped down struct `Syntax` and return that
instead. Let it be fully owned to make the API simple. It is not going
to be in a hot code path anyway.

I have looked at all code of our 27 dependents but I can't find a single
instance of this method being used, so this change should be safe for
v1.0.0.
2022-09-03 12:33:38 +02:00
Martin Nordholts
8b8ff96c32 CHANGELOG: Mention minor LiveScript update 2022-09-03 07:58:22 +02:00
Martin Nordholts
899fdbb347
Remove code that tries to handle ANSI escape inputs (#2189)
Syntax highlighting is broken when input contains ANSI escape characters
anyway, so there is not much point in trying to handle ANSI escapes in
input.
2022-08-29 18:49:29 +02:00
Z. Grace Moreau
a6297b282c update CHANGELOG 2022-08-27 16:37:34 +02:00
Christopher Acosta
9a924b445b
Make --map-syntax and --ignored-suffix work together (#2260)
* Make --map-syntax and --ignored-suffix work together

* Minor refactor
2022-08-16 22:42:15 +02:00
dependabot[bot]
c14ce4f7ca
Bump assets/syntaxes/02_Extra/Julia from 1e55f32 to 4fde0fd (#2230)
* Bump assets/syntaxes/02_Extra/Julia from `1e55f32` to `4fde0fd`

Bumps [assets/syntaxes/02_Extra/Julia](https://github.com/JuliaEditorSupport/Julia-sublime) from `1e55f32` to `4fde0fd`.
- [Release notes](https://github.com/JuliaEditorSupport/Julia-sublime/releases)
- [Commits](1e55f3211b...4fde0fdedd)

---
updated-dependencies:
- dependency-name: assets/syntaxes/02_Extra/Julia
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update CHANGELOG.md

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Martin Nordholts <enselic@gmail.com>
2022-08-14 21:10:05 +02:00
Marie Katrine Ekeberg
9c7ca33929
Make --no-paging/-P override --paging=... if passed as a later arg (#2201)
* Make the no-paging option override earlier paging options

* Update CHANGELOG.md

Co-authored-by: Martin Nordholts <enselic@gmail.com>
2022-08-14 21:09:13 +02:00
dependabot[bot]
3a93798e8b
Bump assets/syntaxes/02_Extra/cmd-help from 1e513f5 to aa47747 (#2255)
* Bump assets/syntaxes/02_Extra/cmd-help from `1e513f5` to `aa47747`

Bumps [assets/syntaxes/02_Extra/cmd-help](https://github.com/victor-gp/cmd-help-sublime-syntax) from `1e513f5` to `aa47747`.
- [Release notes](https://github.com/victor-gp/cmd-help-sublime-syntax/releases)
- [Commits](1e513f5f19...aa477471c8)

---
updated-dependencies:
- dependency-name: assets/syntaxes/02_Extra/cmd-help
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update CHANGELOG.md

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Martin Nordholts <enselic@gmail.com>
2022-08-12 17:08:32 +02:00
John Higgins
7b2e0ece55
Prevent fork nightmare with PAGER=batcat (#2235)
* Added rsamuelklatchko's changes

* Added some comments and deleted redundant code

* Ran cargo fmt

* Update src/pager.rs

Co-authored-by: Martin Nordholts <enselic@gmail.com>

* Added bugfix to changelog

* src/pager.rs nitpick: arg0 -> s

I forgot to comment on this name so I figured I'd just push a commit to
take care of it.

Co-authored-by: Martin Nordholts <enselic@gmail.com>
2022-08-12 14:27:47 +02:00
yuvalmo
c4d9d7561b Color fstab dump and pass fields correctly (#2246)
Was missing the number 2 as a valid option in those fields.
2022-07-25 21:33:51 +02:00
Cre3per
ed4997c77c
Add syntax mapping from NSE to Lua (#2214) 2022-06-04 14:12:42 +02:00
Martin Nordholts
3339eee2dc
Make the default macOS theme depend on Dark Mode (#2197)
* Make the default macOS theme depend on Dark Mode

We frequently get complaints from macOS users that bat does not work on
their default macOS terminal background, which is white.

Pay the price of slightly increased startup time to get a better default
on macOS. To avoid the slightly increased startup time, simply specify a
theme explicitly via `--theme`, `BAT_THEME`, or `~/.config/bat`.

Note that if there is an error when we check if Dark Mode is enabled, we
behave the same as on Windows and Linux; assume that the terminal
background is dark. This harmonizes behavior across platforms, and makes
bat behave the same as before, when Dark Mode was always assumed to be
enabled.

* src/assets.rs: Fix typo

* Update CHANGELOG.md
2022-05-24 19:29:03 +02:00
David Peter
892b186ba5 Add CHANGELOG entry 2022-05-16 21:54:36 +02:00
Martin Nordholts
5f139e5ec2 CHANGELOG.md: Remove empty Themes section for v0.21.0 2022-05-15 15:28:25 +02:00
Martin Nordholts
8b50ef87fd Post-release: Prepare an "unreleased" section at the top of CHANGELOG.md
As per `doc/release-checklist.md`.
2022-05-12 13:40:48 +02:00
Martin Nordholts
8d4f8ba1b2 CHANGELOG.md: unreleased -> v0.21.0 2022-05-12 12:12:49 +02:00
Martin Nordholts
5fe9b3e1b3 Make INI syntax register as handler of .inf files
We need to type `inf` and `INF` as strings in `INI.sublime-syntax`,
otherwise `yaml-rust` interprets them as real numbers ("infinity") and
they do not get registered as file extensions:

    /Users/martin/src/yaml-rust # https://github.com/chyh1990/yaml-rust
    % cargo run --example dump_yaml ~/src/bat/assets/syntaxes/02_Extra/INI.sublime-syntax
    ---
    String("name"):
        String("INI")
    String("file_extensions"):
            String("ini")
            String("INI")
            Real("inf")
            Real("INF")
    ...

Also add a regression test.
2022-05-11 17:39:01 +02:00
Martin Nordholts
ea5aaa03a2 CHANGELOG.md: Clean up and tweak 2022-05-09 08:25:43 +02:00
Martin Nordholts
7334ab4542
Bump to syntect 5.0.0 to e.g. start lazy-loading syntaxes (#2181)
* Bump to syntect 5.0.0 to e.g. start lazy-loading themes

Closes #915
Closes #951
Closes #1846
Closes #1854

* Typo fix formated -> formatted

* Update CHANGELOG.md
2022-05-07 13:43:11 +02:00
dependabot[bot]
ef3e398b2b
Bump assets/syntaxes/02_Extra/Zig from 87ecbca to 1a4a384 (#2136)
* Bump assets/syntaxes/02_Extra/Zig from `87ecbca` to `1a4a384`

Bumps [assets/syntaxes/02_Extra/Zig](https://github.com/ziglang/sublime-zig-language) from `87ecbca` to `1a4a384`.
- [Release notes](https://github.com/ziglang/sublime-zig-language/releases)
- [Commits](87ecbcae6f...1a4a38445f)

---
updated-dependencies:
- dependency-name: assets/syntaxes/02_Extra/Zig
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update tests/syntax-tests/highlighted/Zig/example.zig and CHANGELOG.md

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Martin Nordholts <enselic@gmail.com>
2022-05-05 20:29:17 +02:00
Isaac Horvath
adea895026
Add a --style=default option (#2119)
* Add a --style=default option

* Added --style=default test and CHANGELOG entry

* Format CHANGELOG.md options with quotes

Co-authored-by: Martin Nordholts <enselic@gmail.com>

* Update help text for '--style'

* Make --style=default the default option

* Update style descriptions: "basic" -> "recommended"

* Add integration test for --style=default as default

* Update clap long help for --style
2022-05-04 21:31:32 +02:00
Keith Hall
b5294f1cb2
Skip syntax highlighting for long lines (#2165)
* Skip highlighting for long lines

* Run cargo fmt, update changelog
2022-05-04 07:59:24 +02:00
Nathan Fisher
5114c0189d
Add support for BusyBox less as pager (#2162)
* Add support for BusyBox less as pager

* Run tests/syntax-tests/update.sh to update tests

* Address reviewer's concerns with pull request
* Revert all changes in `test` directory
* Minimize overall diff size
* Detect busybox from separate helper function
* Pass equivalent options to BusyBox from same code by changing from long to
  short options

* Remove redundant `if` statement from previous commit
Add test for invalid utf-8
Add `parse_less_version_busybox` to test for invalid program
Add commenting around short options
2022-05-04 07:56:38 +02:00
cyqsimon
3ae05333b0
Add mapping for Unix mail spool (#2156) 2022-04-27 22:51:10 +02:00
Víctor González Prieto
b0898900ce
Syntax: add cmd-help (#2148)
* Add cmd-help syntax

To highlight command --help messages.

* README.md: mention help message highlighting

* README.md: edit help message highlighting
2022-04-26 19:42:18 +02:00
Martin Nordholts
520081a92c Print info about custom assets in --diagnostics 2022-04-02 21:46:41 +02:00
Martin Nordholts
47e0dc22d2 Lock regex crate at min 1.5.5 for CVE-2022-24713
Cargo.lock already specifies 1.5.5, but we should also do it in
Cargo.toml.
2022-04-02 21:46:16 +02:00
acheronfail
33a984992b Update CHANGELOG.md
Co-authored-by: Martin Nordholts <enselic@gmail.com>
2022-04-02 21:05:37 +02:00
acheronfail
b1e67e215c Allow configuring show_nonprintable from PrettyPrinter 2022-04-02 21:05:37 +02:00
Keith Hall
c0ec03e08a Syntax: [Log] highlight escape characters in double quoted strings 2022-03-22 22:20:39 +02:00
Patrick Pichler
5ed64444e3 Add systemwide config file support
There is now support for a systemwide config file. The location of the
system wide config file is `$(BAT_SYSTEM_CONFIG_PREFIX)/bat/config`.
`$(BAT_SYSTEM_CONFIG_PREFIX)` has to be provided at compile time as an
environment variable. If the environment variable is not set, a default
is used. This default is `C:\ProgramData` for windows and `/etc` for
every other os.
2022-03-10 20:55:11 +01:00
Martin Nordholts
9ab378b5dc Include contents of custom assets metadata.yaml in --diagnostics 2022-03-07 21:05:09 +01:00
David Peter
282b70291f Add CHANGELOG entry 2022-03-06 20:03:00 +01:00
TruncatedDinosour
cde239e809
Syntax: add clang-format (#2076)
Highlight .clang-format files as YAML

Co-authored-by: Ari Archer <truncateddinosour@gmail.com>
Co-authored-by: David Peter <mail@david-peter.de>
2022-03-06 20:01:49 +01:00
Martin Nordholts
448bfaf748 Prepare a "unreleased" section at the top of CHANGELOG.md 2022-02-27 15:25:41 +01:00
Martin Nordholts
0655ecf23d Prepare for v0.20.0 release
Since we have added new enum variants to the `StyleComponent` which was
not previously marked `#[non_exhaustive]`, we must bump left-most
non-zero version number (see
[specifying-dependencies](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-cratesio)).
Otherwise client code that do exhaustive matches on `StyleComponent`
will stop compiling.
2022-02-27 07:39:22 +01:00
cyqsimon
14ddda0a8b
Recognize files in $XDG_CONFIG_HOME/git/ and $HOME/.config/git/ better (#2067)
* git global config - lookup $XDG_CONFIG_HOME faithfully

* Use `bool::then`

* Cover both `$XDG_CONFIG_HOME` & `$HOME/.config`

* Remove unused import

* Global git config tests

* Added trailing newline

* Fix git config test

* Wrote to changelog

* Revert change of `Result::ok` to `Result::unwrap`

* Apply suggestions from code review

Co-authored-by: Martin Nordholts <enselic@gmail.com>

* Guard against empty `$HOME`

Co-authored-by: Martin Nordholts <enselic@gmail.com>
2022-02-26 17:01:00 +01:00
Josh Pencheon
ad6cae433a
fix Bash completion on macOS (#2074)
* fix Bash completion on macOS

The Homebrew-provided bash-completion is version 1.x,
which doesn't provide _init_completion. We add a standard
shim instead.

* Add entry to CHANGELOG

* Update CHANGELOG.md

Co-authored-by: Ville Skyttä <ville.skytta@iki.fi>

* review: avoid calling _split_longopt repeatedly

Co-authored-by: Ville Skyttä <ville.skytta@iki.fi>
2022-02-24 07:57:23 +01:00
ltdk
e4f6fb2afe Add JQ syntax highlighting 2022-02-14 19:14:19 +01:00
Mahdi Dibaiee
d21f1e8f17
Underline highlighted lines in ANSI theme (#1985)
* Underline highlighted lines in ANSI theme

* add test for ansi highlight underline, fix underscore in plain
2022-02-14 19:02:14 +01:00
dependabot[bot]
9ad147278f
Bump assets/syntaxes/02_Extra/GLSL from 4cd4acf to 59a5f8a (#2050)
* Bump assets/syntaxes/02_Extra/GLSL from `4cd4acf` to `59a5f8a`

Bumps [assets/syntaxes/02_Extra/GLSL](https://github.com/euler0/sublime-glsl) from `4cd4acf` to `59a5f8a`.
- [Release notes](https://github.com/euler0/sublime-glsl/releases)
- [Commits](4cd4acfffc...59a5f8a312)

---
updated-dependencies:
- dependency-name: assets/syntaxes/02_Extra/GLSL
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update CHANGELOG.md

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Martin Nordholts <enselic@gmail.com>
2022-02-08 17:11:31 +01:00
Dan Davison
4e36a56014
Expose syntect theme and syntax sets (#2030)
Fixes #2026
Ref https://github.com/dandavison/delta/issues/895
2022-02-08 08:00:12 +01:00
Mahdi Dibaiee
312c8ef01f
Add new --style called header-filesize and display it by default (#1988)
Also rename `header` to `header-filename`.

Related to #1701
2022-02-07 20:48:57 +01:00
dependabot[bot]
f3f8194932
Bump assets/syntaxes/02_Extra/GraphQL from 59304d6 to 9b6f6d0 (#2000)
* Bump assets/syntaxes/02_Extra/GraphQL from `59304d6` to `9b6f6d0`

Bumps [assets/syntaxes/02_Extra/GraphQL](https://github.com/dncrews/GraphQL-SublimeText3) from `59304d6` to `9b6f6d0`.
- [Release notes](https://github.com/dncrews/GraphQL-SublimeText3/releases)
- [Commits](59304d6c7b...9b6f6d0a86)

---
updated-dependencies:
- dependency-name: assets/syntaxes/02_Extra/GraphQL
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update CHANGELOG.md

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Martin Nordholts <enselic@gmail.com>
2022-02-07 17:34:35 +01:00
dependabot[bot]
2ae4ffcdfa
Bump assets/syntaxes/02_Extra/VimL from c91fe3a to ee85822 (#2002)
* Bump assets/syntaxes/02_Extra/VimL from `c91fe3a` to `ee85822`

Bumps [assets/syntaxes/02_Extra/VimL](https://github.com/SalGnt/Sublime-VimL) from `c91fe3a` to `ee85822`.
- [Release notes](https://github.com/SalGnt/Sublime-VimL/releases)
- [Commits](c91fe3ab02...ee85822cbe)

---
updated-dependencies:
- dependency-name: assets/syntaxes/02_Extra/VimL
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update CHANGELOG.md

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Martin Nordholts <enselic@gmail.com>
2022-02-06 22:29:36 +01:00
dependabot[bot]
f5a7f86a64
Bump assets/syntaxes/02_Extra/TOML from 6bfcc3c to ed38438 (#2049)
* Bump assets/syntaxes/02_Extra/TOML from `6bfcc3c` to `ed38438`

Bumps [assets/syntaxes/02_Extra/TOML](https://github.com/jasonwilliams/sublime_toml_highlighting) from `6bfcc3c` to `ed38438`.
- [Release notes](https://github.com/jasonwilliams/sublime_toml_highlighting/releases)
- [Commits](6bfcc3c236...ed38438900)

---
updated-dependencies:
- dependency-name: assets/syntaxes/02_Extra/TOML
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update CHANGELOG.md for PR #2049

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Martin Nordholts <enselic@gmail.com>
2022-02-06 21:20:24 +01:00
Martin Nordholts
76aa138230 CHANGELOG.md: Prepare a new "unreleased" section 2022-01-08 20:05:43 +01:00
Martin Nordholts
d3956be616 CHANGELOG.md: Rearrange and update for v0.19.0 2022-01-08 17:01:20 +01:00
Martin Nordholts
68528983d7 Mark MappingTarget as #[non_exhaustive] for increased semver flexibility
This will allow us to add new enum variants in the future without breaking
semver compatibility. See
https://doc.rust-lang.org/reference/attributes/type_system.html#the-non_exhaustive-attribute

Since we already added an enum variant since v0.18.3, now is a good time to mark
it as `#[non_exhaustive]`.
2022-01-04 08:19:51 +01:00
Mahdi Dibaiee
6dc621ec18 Set minimum supported rust version to 1.51 2021-12-30 07:58:15 +01:00
dependabot[bot]
3358b075fb
Bump assets/syntaxes/02_Extra/TypeScript from a607ddf to ba45efd (#1834)
* Bump assets/syntaxes/02_Extra/TypeScript from `a607ddf` to `ba45efd`

Bumps [assets/syntaxes/02_Extra/TypeScript](https://github.com/Microsoft/TypeScript-Sublime-Plugin) from `a607ddf` to `ba45efd`.
- [Release notes](https://github.com/Microsoft/TypeScript-Sublime-Plugin/releases)
- [Commits](a607ddfec9...ba45efd058)

---
updated-dependencies:
- dependency-name: assets/syntaxes/02_Extra/TypeScript
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Do machine-conversion from .tmLanguage to .sublime-syntax

The new .sublime-syntax files are pure "Tools" -> "Developer" -> "New Syntax
from ..." conversions from a licenced version of Sublime Text, Version 3.1.1,
Build 3176 with the .tmLanguage as the source files. No manual changes has been
made.

* Add CHANGELOG.md entry

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Martin Nordholts <enselic@gmail.com>
2021-12-12 20:07:50 +01:00
dependabot[bot]
a02713dc15
Bump assets/syntaxes/02_Extra/PowerShell from 4a0a076 to 742f0b5 (#1935)
* Bump assets/syntaxes/02_Extra/PowerShell from `4a0a076` to `742f0b5`

Bumps [assets/syntaxes/02_Extra/PowerShell](https://github.com/PowerShell/EditorSyntax) from `4a0a076` to `742f0b5`.
- [Release notes](https://github.com/PowerShell/EditorSyntax/releases)
- [Commits](4a0a076661...742f0b5d4b)

---
updated-dependencies:
- dependency-name: assets/syntaxes/02_Extra/PowerShell
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Do machine-conversion from .tmLanguage to .sublime-syntax

The new .sublime-syntax file is a pure "Tools" -> "Developer" -> "New Syntax
from ..." conversion from a licenced version of Sublime Text, Version 3.1.1,
Build 3176 with the .tmLanguage as the source file. No manual changes has been
made.

* Update regression test and add CHANGELOG.md entry

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Martin Nordholts <enselic@gmail.com>
2021-12-12 19:41:04 +01:00
dependabot[bot]
ee1f5a9e89
Bump assets/syntaxes/02_Extra/SCSS_Sass from 63819a1 to d3d9404 (#1766)
* Bump assets/syntaxes/02_Extra/SCSS_Sass from `63819a1` to `d3d9404`

Bumps [assets/syntaxes/02_Extra/SCSS_Sass](https://github.com/braver/SublimeSass) from `63819a1` to `d3d9404`.
- [Release notes](https://github.com/braver/SublimeSass/releases)
- [Commits](63819a1ab6...d3d9404640)

---
updated-dependencies:
- dependency-name: assets/syntaxes/02_Extra/SCSS_Sass
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update regression test and add CHANGELOG.md entry

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Martin Nordholts <enselic@gmail.com>
2021-12-12 18:58:30 +01:00
Martin Nordholts
a3ea798246
Credit syntax definition and theme authors with new --acknowledgements option (#1971)
The text that is printed is generated when building assets, by analyzing LICENSE
and NOTICE files that comes with syntaxes and themes.

We take this opportunity to also add a NOTICE file as defined by Apache License 2.0.
2021-12-11 14:00:45 +01:00
Ethan P
63ad53817d
Improved ANSI passthrough (#1596)
Improve handling of ANSI passthrough. Fix ANSI passthrough for --wrap=never. Add test for ANSI passthrough.
2021-12-08 16:06:42 +01:00
Martin Nordholts
7fceb4878f
Load themes lazily for improved startup time (#1969)
This is for #951. Syntax lazy-loading will come later and have a much bigger
impact, but lazy-loading of themes does not have negligible impact.
2021-12-06 09:14:15 +01:00
Ersikan
29711c178a
Better syntax highlighting for Dart (#1959)
Remove unmaintained Dart syntax submodule. Add elMuso/Dartlight as submodule. Update Dart syntax highlighting. Add changes to changelog.
2021-12-06 08:40:43 +01:00
David Peter
3338699257 Remove the 'requirements.txt' syntax
This is needed because the syntax is only available under GPL v3.0,
which is not compatible with `bat`s license.
2021-11-28 16:28:14 +01:00
Bojan Durdevic
9a2979df5f Changelog update 2021-11-24 07:27:36 +01:00
Martin Nordholts
d7671fa8e3 Remove the code related to minimal_syntaxes.bin
To get fast startup, syntect will instead start to lazy-load syntaxes. See
https://github.com/trishume/syntect/pull/393 and discussions in linked PRs.
2021-11-22 20:42:01 +01:00
Shun Sakai
619cf6e6d6 Add MediaWiki syntax 2021-11-22 19:46:29 +01:00
Bojan Đurđević
d6ed5e6746
Support for ignored-suffix CLI arguments (#1892) 2021-11-19 17:05:23 +01:00
cbolgiano
7fe4fdf33d
Introduce MapExtensionToUnknown MappingTarget (#1889)
Co-authored-by: Martin Nordholts <enselic@gmail.com>
2021-10-25 17:59:12 +02:00
Martin Nordholts
4081ace4b9 Include git hash in bat -V and bat --version output if present
I had to use a `lazy_static` due to that the clap API that only accepts a
reference to a version string. And, in our code, only a 'static reference to a
version string.

Code could probably be refactored to accept a "normal" reference, but that would
be a major undertaking.
2021-10-24 11:36:55 +02:00
Martin Nordholts
6eb2cc9cac Add LiveScript syntax
The file `LiveScript.sublime-syntax` is a pure export from a licenced version
of Sublime Text, Version 3.1.1, Build 3176 with
assets/syntaxes/02_Extra/LiveScript/Syntaxes/LiveScript.tmLanguage as the source
file.
2021-10-23 13:35:32 +02:00
Diva M
3a3cd0acba changelog 2021-10-17 21:21:23 +02:00
Georgy Komarov
d04a83de7b Add Racket syntax 2021-10-03 19:17:26 +02:00
Martin Nordholts
418fce5683 Bump MSRV to 1.46
See #1874 and #1872.
2021-10-03 07:51:37 +02:00
Martin Nordholts
405a80f3ee HighlightingAssets: Turn get_syntax_for_path() into public API 2021-09-28 07:26:20 +02:00
Martin Nordholts
9124271eaf
Load independent and minimal syntax sets when using --language (#1787)
This significantly speeds up the startup time of bat, since only a single
linked SyntaxDefinition is loaded for each file. The size increase of the
binary is just ~400 kB.

In order for startup time to be improved, the --language arg must be used, and
it must match one of the following names:

"Plain Text", "ActionScript", "AppleScript", "Batch File", "NAnt Build File",
"C#", "C", "CSS", "D", "Diff", "Erlang", "Go", "Haskell", "JSON", "Java
Properties", "BibTeX", "LaTeX Log", "TeX", "Lisp", "Lua", "MATLAB", "Pascal",
"R", "Regular Expression", "Rust", "SQL", "Scala", "Tcl", "XML", "YAML", "Apache
Conf", "ARM Assembly", "Assembly (x86_64)", "CMakeCache", "Comma Separated
Values", "Cabal", "CoffeeScript", "CpuInfo", "Dart Analysis Output", "Dart",
"Dockerfile", "DotENV", "F#", "Friendly Interactive Shell (fish)", "Fortran
(Fixed Form)", "Fortran (Modern)", "Fortran Namelist", "fstab", "GLSL",
"GraphQL", "Groff/troff", "group", "hosts", "INI", "Jinja2", "jsonnet",
"Kotlin", "Less", "LLVM", "Lean", "MemInfo", "Nim", "Ninja", "Nix", "passwd",
"PowerShell", "Protocol Buffer (TEXT)", "Puppet", "Rego", "resolv", "Robot
Framework", "SML", "Strace", "Stylus", "Solidity", "Vyper", "Swift",
"SystemVerilog", "TOML", "Terraform", "TypeScript", "TypeScriptReact",
"Verilog", "VimL", "Zig", "gnuplot", "log", "requirements.txt", "Highlight
non-printables", "Private Key", "varlink"

Later commits will improve startup time for more code paths.

* fix some typos and misspellings

* CHANGELOG.md: Add Performance section (preliminary)

* Add a CHANGELOG.md entry for this PR
2021-09-09 20:52:33 +02:00
Rashil Gandhi
43afae34be
Add PowerShell completion file (#1826) 2021-08-28 13:39:17 +02:00
Martin Nordholts
19c3e82abf
Replace deprecated 'error-chain' with 'thiserror' (#1820)
We can't use #[from] on Error::Msg(String) because String does not implement Error.
(Which it shouldn't; see e.g. https://internals.rust-lang.org/t/impl-error-for-string/8881.)
So we implement From manually for Error::Msg, since our current code was written
in that way for error-chain.
2021-08-26 13:12:21 +02:00
Martin Nordholts
f1c0fd7343
Don't take a HighlightingAssets detour to build assets (#1802)
Move code to build assets to its own file. That results in better modularity and flexibility.

It also allows us to simplify HighlightingAssets a lot, since it will now always
be initialized with a SerializedSyntaxSet.
2021-08-24 07:58:03 +02:00
Bojan Durdevic
c86a179412 PR comments addressed for line range +delta syntax 2021-08-23 19:55:41 +02:00
Bojan Durdevic
0748783404 Support for line range plus syntax 2021-08-23 19:55:41 +02:00
Martin Nordholts
b3247d9364 Merge the v0.18.3 hotfix release into master
The v0.18.3 release was a hotfix release to make bat build again with Rust 1.54.
This merge commit brings in all changes from the hotfix release into the master
branch.

In practice, this only brings in one new commit, namely b146958ec. The other
three commits in the release were cherry-picks from master.
2021-08-22 19:22:20 +02:00
Martin Nordholts
b146958ecb Bump version to v0.18.3 2021-08-22 17:47:12 +02:00
Mario Finelli
5125e9c941 Add support for ruby-slim syntax 2021-08-16 06:16:53 +02:00
Bill Risher
6c62ed5608 revamped integration test, made CHANGELOG changes 2021-08-14 22:02:58 +02:00
Bill Risher
bf78288e9e feat(config): added recognition of $BAT_CONFIG_DIR 2021-08-14 22:02:58 +02:00
Ville Skyttä
79f08588c6 Mention syslog highlight improvements in change log 2021-08-11 23:03:33 +03:00
Martin Nordholts
d8b813c0bf
When returning a SyntaxReference, also return the SyntaxSet that contains it (#1776)
To improve startup performance, we will later load smaller `SyntaxSet`s instead
of one giant one. However, the current API assumes only one `SyntaxSet` is ever used,
and that that implicitly is the `SyntaxSet` from which returned `SyntaxReference`s
comes.

This change changes the API to reflect that `SyntaxSet` and `SyntaxReference`
are tightly coupled, and enables the use of several `SyntaxSet`.
2021-08-08 08:26:17 +02:00
Keith Hall
05c11964fc add patch for Python syntax to help improve performance 2021-08-07 17:54:08 +02:00
Martin Nordholts
1ef0206f24 CHANGELOG.md: Highlight for vimrc and gvimrc files 2021-08-06 09:26:56 +02:00
Layle | Luca
51c7eb7ac1
Included LLVM syntax highlighting submodule and added regression tests 2021-08-05 20:20:33 +02:00
Keith Hall
6d5ff671e7 Add HTTP Request/Response syntax as a git submodule 2021-07-29 21:36:16 +02:00
Martin Nordholts
6acec2c074 Reduce startup time in loop-through mode with 80%-90%
Instead of 100 ms - 50 ms, startup takes 10 ms - 5 ms.

HighlightingAssets::get_syntax_set() is never called when e.g. piping the bat
output to a file (see Config::loop_through), so by loading the SyntaxSet only
when needed, we radically improve startup time when it is not needed.
2021-07-29 20:36:05 +02:00
Martin Nordholts
a81009607a HighlightingAssets: Make .syntaxes() and syntax_for_file_name() failable
Or rather, introduce new versions of these methods and deprecate the old ones.

This is preparation to enable robust and user-friendly support for lazy-loading.
With lazy-loading, we don't know if the SyntaxSet is valid until after we try to
use it, so wherever we try to use it, we need to return a Result. See discussion
about panics in #1747.
2021-07-29 08:26:18 +02:00
Martin Nordholts
ccf4563573 Make loading of cached assets closer in performance to integrated assets
Using BufReader makes sense for large files, but assets are never large enough
to require buffering. It is significantly faster to load the file contents in
one go, so let's do that instead.

Closes #1753
2021-07-27 14:53:59 +02:00
David Peter
6e536ab06d Update CHANGELOG 2021-07-25 13:28:43 +02:00
David Peter
945bba777b Upgrade CHANGELOG with security vulnerability notice 2021-07-13 10:56:51 +02:00
David Peter
a4b674902f Bump version to v0.18.2 2021-07-12 23:17:48 +02:00
David Peter
3c59b98dc8 Add CHANGELOG entry for #1687 2021-07-09 06:36:06 +02:00
Ville Skyttä
0e9d612173 Add change log entry for bash completion 2021-06-28 11:58:03 +02:00
Ville Skyttä
90e48e9b61 Spelling fixes 2021-06-13 22:08:56 +02:00
Martin Nordholts
f4217eba73
Merge pull request #1669 from sharkdp/dependabot/submodules/assets/syntaxes/02_Extra/DotENV-58201ba
Bump assets/syntaxes/02_Extra/DotENV from `a1c9176` to `58201ba`
2021-06-02 07:48:13 +02:00
Mohamed Abdelnour
14900f6ed8 Update CHANGELOG.md for #1668 2021-06-01 22:36:56 +02:00
Martin Nordholts
bcca56e3b1 CHANGELOG.md: Apply DotENV syntax also for .env.default and .env.defaults 2021-06-01 18:45:17 +02:00
Mohamed Abdelnour
cf7d9ef962 Update CHANGELOG.md for #1661 2021-05-27 12:05:07 +02:00
Mohamed Abdelnour
8435cad602 Merge master 2021-05-15 09:41:27 +02:00
Mohamed Abdelnour
6fc9641f6a Update CHANGELOG for #1655 2021-05-15 00:13:42 +02:00
Mohamed Abdelnour
ef5154d5b3 Update CHANGELOG for #1654 2021-05-14 22:12:58 +02:00
David Peter
73dab51ad1 Bump version, update dependencies 2021-05-12 22:55:25 +02:00
David Peter
9328007d05 Updated CHANGELOG 2021-05-12 22:46:44 +02:00
David Peter
5db3c93057
Merge branch 'master' into syslog 2021-05-12 11:34:35 +02:00
Keith Hall
3559079de0 Improvements to CSV highlighting 2021-05-11 21:04:02 +02:00
Ethan P
aa09a9dc04
Update changelog for #1589 2021-04-06 15:33:34 -07:00
Keith Hall
1537733e6b replace Syslog dependency with a custom syntax 2021-04-04 22:47:01 +03:00
Sean McLoughlin
d89fa3ebc2 Add SystemVerilog support 2021-03-15 07:21:15 +01:00
David Peter
52f84b063c Update dependencies, MSRV: 1.45 2021-03-07 15:33:37 +01:00
Aleksey Kladov
35347c2310 Improve readability
Using `Path`s for paths expresses intent more clearly.
2021-03-07 14:59:10 +01:00
David Peter
b147443c32 Add new unreleased section 2021-02-28 23:28:59 +01:00
David Peter
ca60937c2e Do not ignore non-existent BAT_CONFIG_PATH
Do not ignore `BAT_CONFIG_PATH` if it doesn't exist. Both when
generating a new config file with `--generate-config-file` and
when attempting to read the config.

Also, provide a better error message in case the file can not
be created.

closes #1550
2021-02-28 10:08:24 +01:00
David Peter
2aa3ed9da8 Update CHANGELOG 2021-02-28 10:06:56 +01:00
David Peter
7eabb5e05a Highlight *.pac files as JavaScript
closes #1515
2021-02-16 21:52:52 +01:00
Martin Nordholts
37d0d8984c README.md: Warn about buggy snap packages
As discussed in #1519, the batcat snap package is too problematic for
official endorsement, so withdraw recommendation from README.me (and
remove section from CHANGELOG.md since a release with it has not been
made yet).
2021-02-15 22:39:48 +01:00
Keith Hall
2e8c0a39db Add support for env vars and manpage refs with dots to Manpage syntax 2021-02-15 22:30:42 +01:00
Martin Nordholts
c48e779e8a CHANGELOG.md: Add entry for #1413 2021-01-11 21:56:10 +01:00
sharkdp
060b9981b5 Remove deprecated PrettyPrinter methods 2021-01-11 21:36:08 +01:00
Martin Nordholts
02e6ff4183 Merge remote-tracking branch 'origin/master' into fix-1063 2021-01-10 11:56:03 +01:00
sharkdp
7ada963ec2 Add ChangeLog entry 2021-01-09 22:35:50 +01:00
sharkdp
7c227169a4 Add note about breaking change 2021-01-09 20:44:44 +01:00
mark chaitin
de6cb75f4b Addressed PR feedback. Upped min version and used matches! macro 2021-01-09 15:21:26 +01:00
mark chaitin
83c9cb7907 fix bug where long lines were truncated in plain mode without wrap=never not being set 2021-01-09 15:21:26 +01:00
Martin Nordholts
da10166625 Merge remote-tracking branch 'origin/master' into fix-1063 2021-01-07 12:58:26 +01:00
sharkdp
2b44940f81 Update CHANGELOG 2021-01-06 22:55:12 +01:00
Martin Nordholts
478233f795 Merge remote-tracking branch 'origin/master' into fix-1063 2021-01-04 21:02:51 +01:00
sharkdp
7fbb3a5352 Add Zig entry in ChangeLog, see #1470 2021-01-02 21:37:11 +01:00
sharkdp
aa5b941ed5 Add ChangeLog entry 2021-01-02 09:46:58 +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
sharkdp
6d0e7650c3 Add .resource extension for Robot Framework 2020-12-29 09:04:34 +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
cc0f8ca813 Merge remote-tracking branch 'origin/master' into fix-1063 2020-12-28 21:57:38 +01:00
sharkdp
73d9a95862 Update CHANGELOG 2020-12-28 09:36:49 +01:00
David Peter
07bd7503c5 Update CHANGELOG.md 2020-12-21 21:52:04 +01:00