Commit Graph

188 Commits

Author SHA1 Message Date
Ethan P
887e61a99d
Allow application to be built without git support
Caveats:
The help descriptions aren't changed with you remove the "git" feature.
2020-05-15 13:58:48 -07:00
Prat T
b3373398e8 Remove padding if the header style is not enabled 2020-05-12 16:37:29 +02:00
Prat T
0040fef215 Add padding above headers when no grid 2020-05-12 16:37:29 +02:00
sharkdp
5fe8a8342b Add annotations again 2020-04-24 16:51:11 +02:00
sharkdp
23afc8e90c Skip non-file inputs when using --diff 2020-04-24 16:12:38 +02:00
Lzu Tao
e37e9c1214 Fix some clippy lints
Some might actually improve perf
2020-04-24 16:11:05 +02:00
sharkdp
82e7786e74 Implementation of 'bat --diff'
This adds a new `--diff` option that can be used to only show lines
close to Git changes (added/removed/modified lines). The amount of
additional context can be controlled with `--diff-context=N`.

closes #23
2020-04-24 09:57:57 +02:00
sharkdp
12eee0c590 Fix warnings for --no-default-features mode 2020-04-22 23:55:28 +02:00
sharkdp
702cb198da Rename error module 2020-04-22 23:55:28 +02:00
sharkdp
7a87315b94 Fix #937 2020-04-22 23:55:28 +02:00
sharkdp
a8f759c080 Rename wrap => wrapping 2020-04-22 23:55:28 +02:00
sharkdp
13e6b3fac7 Reduce public API 2020-04-22 23:55:28 +02:00
sharkdp
26c951fec4 Fix warnings, sort imports, input from string 2020-04-22 23:55:28 +02:00
sharkdp
590960f7f5 Completely refactor 'input' module 2020-04-22 23:55:28 +02:00
sharkdp
f3b90ddb38 Add InputDescription 2020-04-22 23:55:28 +02:00
sharkdp
f8d0956893 Rename InputFile => Input 2020-04-22 23:55:28 +02:00
sharkdp
1dc328ad49 Separate inputs from config 2020-04-22 23:55:28 +02:00
sharkdp
057e4eced1 Large refactoring towards a better builder structure 2020-04-22 23:55:28 +02:00
sharkdp
a6d9d1551f Improve error message 2020-04-21 08:57:15 +02:00
sharkdp
34619a2e89 Small refactoring, handle invalid UTF-8 filenames 2020-04-21 08:57:15 +02:00
sharkdp
98ba9e0101 Use to_string_lossy 2020-04-21 08:57:15 +02:00
Kyle Criddle
04fa84aea7 Moved user_provided_filename to be contained within OrdinaryFile struct 2020-04-21 08:57:15 +02:00
Kyle Criddle
a3f8140fbe Use --file-name to detect syntax highlighting
Closes #891
2020-04-21 08:57:15 +02:00
sharkdp
495fab24a5 cargo fmt 2020-04-11 19:40:04 +02:00
David Tolnay
4e11abdf9b Move git changes support behind a feature 2020-03-31 09:27:56 +02:00
Kyle Criddle
38178fedf4 Merge branch 'master' into fix_654_stdin_filename 2020-03-24 19:08:43 -06:00
Kyle Criddle
59f2e2d58d Implemented --file-name for multiple files + tests 2020-03-24 18:26:00 -06:00
sharkdp
84ba323b1c Rename output component to 'style compinent', move wrap to separate module 2020-03-21 22:21:23 +01:00
sharkdp
a7338e2ea2 Run cargo fmt 2020-03-21 22:21:23 +01:00
sharkdp
9b8ddb24d1 move Config struct to separate file 2020-03-21 22:21:23 +01:00
sharkdp
fedd32173e Restructure and fix bug in line range module 2020-03-21 19:19:15 +01:00
Kyle Criddle
cfa2cb6ec7 --file-name for normal files. integration tests. 2020-03-19 20:46:19 -06:00
Kyle Criddle
517be5c7bc Implement --file-name<name> option
- can specify filename to be displayed when printing.
- useful for when piping data from STDIN

Closes #654
2020-03-17 20:29:01 -06:00
sharkdp
ca066bf7cd Run 'cargo fmt' 2020-02-28 10:27:06 +01:00
Kogia-sima
25640a8a81 Fix bug where max_width is not initialized after line break 2020-02-28 09:06:51 +01:00
Kogia-sima
944866affd Fix wrapping method to support unicode text
Related issues:
- #787
- #811
2020-02-28 09:06:51 +01:00
sharkdp
7779d9f622 Allow for non-unicode filenames, closes #225 2020-02-13 08:25:04 +01:00
Liam Kalir
93881d9a64 Adds range syntax for line highlights 2020-01-27 06:54:00 +01:00
Fahmi Akbar Wildana
2253d07341 Derive fmt::Debug whenever possible 2019-10-20 21:43:51 +02:00
Fahmi Akbar Wildana
0273848f54 Run cargo fmt 2019-10-20 21:43:51 +02:00
Fahmi Akbar Wildana
e542621125 Move back printer.rs and others into lib
others:
bin/bat/{controller,decorations,output,printer}.rs
2019-10-20 21:43:51 +02:00
Fahmi Akbar Wildana
cfd33168af Fix all compile errors in lib.rs 🚚
* Move {controller,output,printer,decorations}.rs into src/bin/

* Add `mod errors` from main.rs
2019-10-20 21:43:51 +02:00
sharkdp
9814eab13f Suppress warning in -A mode 2019-08-31 20:56:53 +02:00
sharkdp
82ca8804a2 Handle non-unicode characters in the preprocessor 2019-08-31 20:56:53 +02:00
pjsier
b48b9fcf3b Display binary file content for bat -A 2019-08-31 20:56:53 +02:00
sharkdp
ec908d5937 Run 'cargo fmt' 2019-08-31 13:46:48 +02:00
sharkdp
63d652dab5 Add 'dyn' keyword for trait references 2019-08-31 13:46:48 +02:00
Ethan P
7f2e61d579 Add new style component to separate multiple '--line-range's 2019-08-31 13:46:48 +02:00
Wild Kat
28266ee441 use explicit dyn with Write to appease compiler 2019-08-02 18:50:55 +02:00
Ethan P
772ce2e4fe Print a horizontal header line when 'grid' style without 'header' style 2019-07-26 06:51:33 +02:00
sharkdp
9b1b3dda14 Only print the header for empty files
Instead of printing
```
───────┬─────────────────────────────────────────────────────────
       │ File: some-file
───────┼─────────────────────────────────────────────────────────
───────┴─────────────────────────────────────────────────────────
```
for empty files, bat will now print
```
───────┬─────────────────────────────────────────────────────────
       │ File: some-file   <EMPTY>
───────┴─────────────────────────────────────────────────────────
```
2019-05-15 22:37:03 +02:00
sharkdp
c709bf2103 Print a warning message instead of just '<BINARY>' 2019-05-14 23:35:22 +02:00
Maksim Panfilov
f37dbb80a8 Added printing of "<BINARY>" for binary files in the interactive mode if header decorations are turned off 2019-05-14 23:35:22 +02:00
Ethan P
2b9d25df05 Replace iterator with string starts_with and ends_with 2019-05-10 17:52:35 -05:00
Ethan P
cc8186103b Reformatted with cargo fmt. 2019-05-10 17:52:35 -05:00
Ethan P
0ad09df7ab Improved logic when encountering ANSI in character wrap mode
Fixes #551
2019-05-10 17:52:35 -05:00
Daniele Esposti
f259ff2920 Formatted code 2019-03-09 07:43:41 +01:00
Daniele Esposti
82f14121bd Applied linter fixes 2019-03-09 07:43:41 +01:00
Daniele Esposti
a21ae614e6 Migrated to Rust 2018 2019-03-09 07:43:41 +01:00
sharkdp
9e11d66979 Handle UTF-16 encoding errors with replacement characters 2019-02-10 10:18:07 +01:00
sharkdp
cf7ed042c1 Colorize the whole line 2018-12-16 21:53:15 +01:00
sharkdp
6b92814ea0 Allow for multiple highlighted lines 2018-12-16 21:00:18 +01:00
sharkdp
a236a9b195 Merge branch 'master' of https://github.com/tskinn/bat into tskinn-master 2018-12-16 20:43:36 +01:00
sharkdp
fee57d71d9 Print ANSI-reset code before newline
fixes #379
2018-12-14 23:34:13 +01:00
Nisheet Sinvhal
18d1a3b973 Changed italics to use-italic-text in config
Better placing of italics in help and also added long_help for it
2018-11-04 19:40:05 +01:00
Nisheet Sinvhal
dc10246bd2 Linting 2018-11-04 19:40:05 +01:00
Nisheet Sinvhal
44bdae0212 Linting 2018-11-04 19:40:05 +01:00
Nisheet Sinvhal
e90308e1f8 italics enable|disable working 2018-11-04 19:40:05 +01:00
sharkdp
e81f9b23e6 Fix --show-all for UTF-16 encoding 2018-11-01 22:00:47 +01:00
sharkdp
ecd862d9ff Feature: Highlight non-printable characters
Adds a new `-A`/`--show-all` option (in analogy to GNU Linux `cat`s option) that
highlights non-printable characters like space, tab or newline.

This works in two steps:
- **Preprocessing**: replace space by `•`, replace tab by `├──┤`, replace
newline by `␤`, etc.
- **Highlighting**: Use a newly written Sublime syntax to highlight
these special symbols.

Note: This feature is not technically a drop-in replacement for GNU `cat`s
`--show-all` but it has the same purpose.
2018-11-01 22:00:47 +01:00
sharkdp
10965a6122 Implement syntax mapping
This adds a `-m`/`--map-syntax` option that allows users to (re)map
certain file extensions or file names to an existing syntax.

For example:
```
bat --map-syntax .config:json
```

The option can be use multiple times. Note that you can easily make
these mappings permanent by using `bat`s new configuration file.

closes #169
2018-10-17 23:08:19 +02:00
Taylor
cea05e9f22 be consistent 2018-10-10 22:19:40 -06:00
sharkdp
2a7851530d Fix formatting 2018-10-10 20:45:10 +02:00
Taylor
1a6709c2cb add line highlight 2018-10-09 22:25:33 -06:00
sharkdp
5842d58c01 Updates for syntect 3.0 2018-10-09 22:04:51 +02:00
sharkdp
fc8fd1e63f cargo fmt 2018-10-07 17:49:38 +02:00
sharkdp
25d96da4a2 Add support for UTF-16LE and UTF-16BE 2018-10-07 17:49:38 +02:00
sharkdp
ce96df00b6 Do not display binary files in interactive mode
closes #248
2018-10-07 15:34:37 +02:00
sharkdp
0502a3bd4a Add first-line detection for all input types
closes #205
2018-10-07 15:34:37 +02:00
sharkdp
87f021078e Use dyn Trait for trait objects 2018-10-07 15:34:37 +02:00
sharkdp
860f3e9006 Move InputFile to separate module 2018-10-07 15:34:37 +02:00
sharkdp
80da0dc619 run cargo fmt 2018-09-26 19:16:03 +02:00
eth-p
1807f9653c
Merge remote-tracking branch 'upstream/master' into feature-tabs
# Conflicts:
#	src/printer.rs
2018-09-11 14:03:47 -07:00
eth-p
1e74f0e2a9
Ran cargo fmt. 2018-09-11 13:47:35 -07:00
eth-p
d90797f8e9
Fixed tab expansion not working in --wrap=never mode. 2018-09-11 13:45:49 -07:00
eth-p
b4096e5627
Moved tab expansion to happen after syntax highlighting. 2018-09-11 13:02:22 -07:00
shik Chen
4e3ab4d399 Query git diff only when needed
In large git repo like chromium, it takes too long time to query git
diff.
2018-09-11 21:09:38 +02:00
eth-p
b23ff24ebc
Added tab expansion preprocessing step. 2018-09-10 18:11:59 -07:00
Rogach
e1ecc17f69 print additional newline if last line in input file was not terminated with a newline (fixes #299) 2018-09-10 22:18:16 +02:00
sharkdp
8cacd9b432 Include theme_preview file in binary 2018-08-28 20:24:13 +02:00
sharkdp
627181bcb6 Always call the syntax highlighter 2018-08-23 23:35:57 +02:00
sharkdp
226d9a573a Add simple loop-through mode
Use a loop-through mode that simply copies input to output if a
non-interactive terminal is detected.

see #150
2018-08-23 23:13:24 +02:00
sharkdp
246cf79dbd Split into Controller and Printer 2018-08-23 22:37:27 +02:00
sharkdp
ea955c734d Refactoring, introduce Printer trait 2018-08-23 19:44:14 +02:00
sharkdp
9316f2a758 Major refactoring and cleanup 2018-08-22 22:29:12 +02:00
sharkdp
2508323264 Extract grid and line-number color from theme
This changes the output color of the grid and the line numbers to use
the "gutter" foreground color defined in the Sublime `.tmTheme` files.

Sublime Text does the same.

Note: we could go one step further and also extract the "GitGutter"
colors from the themes. These could be used instead of red/green/yellow
to signify Git modifications. The problem is that they are quite a bit
harder to extract from the syntect `Theme` object.

closes #178
2018-08-19 12:32:35 +02:00
sharkdp
268577c6f9 Run 'cargo fmt' 2018-08-18 17:54:26 +02:00
sharkdp
6b57f4eebc Style changes 2018-07-18 00:06:24 +02:00
eth-p
0ddd388a29 Improve logic for SGR sequence passthrough 2018-07-18 00:06:24 +02:00
eth-p
34811b8161 Fix #182 2018-07-18 00:06:24 +02:00