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
6223ad6d52
Document Config struct
2018-08-22 22:36:59 +02:00
sharkdp
31a9335bd5
Document Config struct
2018-08-22 22:36:37 +02:00
sharkdp
9316f2a758
Major refactoring and cleanup
2018-08-22 22:29:12 +02:00
sharkdp
c884c3cc12
Re-order options in help texts
2018-08-22 19:34:30 +02:00
sharkdp
08850f0474
Update the --help
text
2018-08-22 19:27:11 +02:00
Tim Sampson
8e6c5bc562
doc: mention BAT_THEME in help output
2018-08-22 18:14:01 +02:00
sharkdp
052425b12f
Load customized themes in addition to defaults
...
- New themes in `$BAT_CONFIG_DIR/themes` are now loaded *in addition* to
the default themes (they may also override).
- The `Default.tmTheme` symlink is not necessary anymore.
This relates to #172
2018-08-20 21:39:21 +02:00
sharkdp
2df3305b94
Add new '--blank' option for 'bat cache --init'
...
closes #206
2018-08-20 21:34:08 +02:00
sharkdp
6882fc1512
Clean up help messages
2018-08-20 21:34:08 +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
1dddce3aa1
Separate syntax set and theme set
...
This commit separates the handling of syntax sets and theme sets. It
also changes the way how new syntax definitions are loaded from `bat`'s
configuration folder. New syntax definitions are now loaded *in
addition* to the ones that are stored in the `bat` binary by default.
This fixes #172
2018-08-19 11:08:23 +02:00
sharkdp
b191691767
Revert "replace trait object BufRead by generic"
...
This reverts commit 037861e588
.
2018-08-18 21:25:58 +02:00
Michal Nazarewicz
5c95b8803b
Avoid floating point arithmetic in RGB→8-bit ANSI approximation
2018-08-18 20:58:03 +02:00
sharkdp
5b421b455d
Update dependencies
2018-08-18 20:44:25 +02:00
sharkdp
d179693d1d
Use BAT_PAGER and PAGER environment variables, closes #158
2018-08-18 18:48:22 +02:00
sharkdp
268577c6f9
Run 'cargo fmt'
2018-08-18 17:54:26 +02:00
TA Thanh Dinh
037861e588
replace trait object BufRead by generic
2018-08-18 17:54:26 +02:00
sharkdp
28397b8f78
Always show a warning when theme is unknown
2018-07-23 21:51:49 +02:00
sharkdp
c899849101
Use map instead of and_then(..Some(..))
2018-07-23 21:51:49 +02:00
sharkdp
bf53b64125
Small style fix
2018-07-23 21:51:49 +02:00
Armando Perez
c68aa0f424
Allow specifying the theme via the BAT_THEME
environment variable
...
The `--theme` command line option stills takes precedence and this
change preserves how errors are handled when it's used: If a theme name
that doesn't exist is specified using the argument, this error is fatal.
However, if a theme that doesn't exist is specified using the environment
variable, the error is logged to `stderr` and the "Default" theme is
loaded as a fallback.
2018-07-23 21:51:49 +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
Stéphane Campinas
8c6a74a6c5
typo
2018-07-06 19:09:53 +02:00
sharkdp
65e6970907
Change help text for --line-range
2018-06-12 08:18:44 +02:00
sharkdp
90cc019482
Run 'cargo fmt'
2018-06-12 08:18:44 +02:00
Taylor
eaf0b99d25
update
2018-06-12 08:18:44 +02:00
Taylor Skinner
3b1dcca5d0
use map()
2018-06-12 08:18:44 +02:00
Taylor Skinner
26dbdf4fa0
update line-ranges
2018-06-12 08:18:44 +02:00
Taylor Skinner
6691786d82
add line-range
2018-06-12 08:18:44 +02:00
sharkdp
e27bdfc7d6
Fix clippy warnings
2018-05-31 15:27:55 +02:00
sharkdp
a348a9f68e
Handle syntax-set loading errors
2018-05-25 22:42:06 +02:00
TA Thanh Dinh
a13eb60df3
Using slice notation instead of as_ref
2018-05-25 17:38:54 +02:00
sharkdp
9342d0bb24
Explicitly specify which args override themselves
2018-05-24 22:53:23 +02:00
sharkdp
36d7250af2
Allow arguments to override themselves
2018-05-24 22:53:23 +02:00
Ezinwa Okpoechi
a452467e06
Remove unnecessary space if there are no decorations
2018-05-24 19:10:24 +02:00
Ezinwa Okpoechi
2ea3758c4b
Justify header when there are decorations but no grid
2018-05-24 19:10:24 +02:00
Gert Hulselmans
65bb4c7ee6
Print themes directory in error message if no themes could be loaded from it.
...
Before this patch:
$ bat cache --init
[bat error]: Could not load themes from '{}'
After:
$ bat cache --init
[bat error]: Could not load themes from '/home/user/.config/bat/themes'
2018-05-24 09:09:23 +02:00
Gert Hulselmans
33bbf25468
Fix launching of pager so text is interpreted as UTF-8 by default.
...
This fixes issue https://github.com/sharkdp/bat/issues/98
2018-05-22 22:41:58 +02:00
Ezinwa Okpoechi
2712d63a4b
Move asset clearing to assets module
2018-05-21 23:20:45 +02:00
Ezinwa Okpoechi
b21fb6bca8
Extract features to separate module
2018-05-21 23:20:45 +02:00
Ezinwa Okpoechi
ee43377a9c
Move colors to printer module
2018-05-21 19:24:02 +02:00
Ezinwa Okpoechi
120b33a9db
Move output to separate module
2018-05-21 19:24:02 +02:00
sharkdp
be0a2d6048
Extended help texts for '--help'
2018-05-19 17:54:05 +02:00
sharkdp
d1a1943998
Add -u and -n options, see #134
2018-05-19 16:58:45 +02:00
sharkdp
2a9f5a24ed
Permissive error handling, closes #17
2018-05-19 12:50:41 +02:00
sharkdp
a0ae089c4a
Reset line number to 0 for new files
2018-05-19 12:25:07 +02:00
sharkdp
96cc391f2d
Skip '--quit-if-one-screen' for --paging=always
...
closes #97
2018-05-19 10:54:54 +02:00
sharkdp
5e3b17e6f7
Fix code formatting
2018-05-18 17:44:43 +02:00
eth-p
486e6a19cd
Fixed #124
2018-05-18 17:44:43 +02:00
Ezinwa Okpoechi
247dfbee83
Extract syntax finding to assets module
2018-05-18 16:45:59 +02:00
Ezinwa Okpoechi
12cb438aa4
Handle line with invalid UTF-8
2018-05-18 16:44:34 +02:00
sharkdp
c826c2a438
Better error handling
2018-05-16 22:55:37 +02:00
sharkdp
145b99f01c
Include syntaxes and themes in repository
...
This changes a few things:
- All syntaxes and themes are now stored (as submodules) under
assets/syntaxes and assets/themes
- The default directories for syntaxes and themes are "syntaxes"
and "themes" (used to be "syntax" and "themes")
- The "bat cache" command can now take a `--source <dir>` and
`--target <dir>` option.
- The cached files have been renamed to "themes.bin" and "syntaxes.bin"
2018-05-16 22:04:12 +02:00
David Peter
2eee68599d
Merge pull request #102 from eth-p/master
...
Added text wrapping. (Fixes #54 )
2018-05-16 08:41:49 +02:00
eth-p
d569693dab
Formatted with newer cargo fmt.
...
It should pass all the checks now.
2018-05-16 08:29:41 +02:00
eth-p
900f61032d
Fix #117
2018-05-15 14:09:51 -07:00
eth-p
d0ca566979
Replace for_line and for_wrap with generate
2018-05-15 13:55:38 -07:00
eth-p
a5a7dc14e4
Fix \r character being printed with wrapping enabled.
2018-05-14 14:36:08 -07:00
rleungx
a5de77af4d
address comment
2018-05-14 20:30:16 +02:00
rleungx
870ff7b538
sort the language listing
2018-05-14 20:30:16 +02:00
sharkdp
15b9acd12f
Updates for new rustfmt
2018-05-14 19:04:13 +02:00
eth-p
b327127f37
Split decorations into a separate file and optimized them a bit.
2018-05-13 18:44:07 -07:00
eth-p
9214a4a4f0
PR #102 Followed @sharkdp's suggestions
2018-05-13 12:45:16 -07:00
sharkdp
fcecd97224
Add ansi_term import for Windows, see #107
2018-05-13 21:19:26 +02:00
eth-p
870b3c0daf
PR #102 Followed @BrainMaestro's suggestions
...
Also ran cargo fmt.
2018-05-13 03:26:23 -07:00
sharkdp
b9c780c8c8
Ignore errors when clearing cache, closes #91
2018-05-13 10:34:35 +02:00
sharkdp
ca865f9d26
Enable ANSI support on Windows 10
2018-05-13 09:58:16 +02:00
eth-p
b4cfc9633c
Fix double spaces when outputting without wrapping.
2018-05-12 14:02:47 -07:00
eth-p
d4b438b9d3
Fix padding, add --wrap argument, disable wrap for non-tty. (Fixed)
...
I'm not quite sure what was up with git on that last commit, but it's
all properly committed now.
2018-05-12 13:44:10 -07:00
eth-p
cd26d403a3
Fix padding, add --wrap argument, disable wrap for non-tty.
...
Now bat(1) can be used like cat(1) again!
2018-05-12 13:23:33 -07:00
eth-p
f95a23f948
Fix off-by-one error with text wrapping and --style grid
2018-05-12 12:07:41 -07:00
Ethan P
bdd10b8bec
Merge branch 'master' into master
2018-05-12 06:40:47 -07:00
eth-p
fc160b0dcd
PR #102 Review Changes
...
- Reformatted code.
- Removed leftover code.
- Removed leftover comments.
- Fixed compiling on Rust 1.24.0
2018-05-12 06:32:23 -07:00
sharkdp
cb7b158172
Add bold, italic and underline font styles
2018-05-12 13:23:39 +02:00
eth-p
fcc36b1f79
Forgot to add styling to the horizontal line.
2018-05-11 22:49:26 -07:00
eth-p
4e4110bf50
Added line wrapping.
2018-05-11 21:59:26 -07:00
Ryan Leung
22c8978fca
add theme option ( #95 )
...
closes #89
2018-05-11 13:53:17 +02:00
Ezinwa Okpoechi
f711fb5006
Split style to separate module
2018-05-11 10:15:26 +02:00
Ezinwa Okpoechi
64a9341b73
Split app to separate module
2018-05-11 10:15:26 +02:00
sharkdp
ccf88fd5d8
Add and use --style=auto by default
2018-05-10 16:22:24 +02:00
sharkdp
e2ac6de783
Fix clippy warnings
2018-05-10 13:15:59 +02:00
Ezinwa Okpoechi
25cee002f9
Split modules ( #86 )
...
* Split diffing to separate module
* Split assets to separate module
2018-05-10 12:36:09 +02:00
sharkdp
ea27053a63
Remove unused lifetimes
2018-05-10 12:20:38 +02:00
Pit Kleyersburg
b2b932f3ed
Fix header-line if grid is not requested
2018-05-10 12:20:38 +02:00
Pit Kleyersburg
747d074be1
Replace Cow
by String
2018-05-10 12:20:38 +02:00
Pit Kleyersburg
61109ece15
Create OutputComponents
struct, use HashSet
2018-05-10 12:20:38 +02:00
Pit Kleyersburg
389edd7239
Combine OutputComponent
s and PredefinedStyle
s
...
This commit tries to simply the change. Instead of separating an
`OutputComponent` and a `PredefinedStyle`, I have combined the two into
just `OutputComponent`.
To still have the styles work, I added an impl to `OutputComponent` with
a function `components` which returns the components related to the
specified component.
For a simple output component this is trivial, but for the predefined
styles this is a list of other components.
The evaluating of the command-line parameter simplified significantly,
making use of Claps `values_t!` macro to parse the supplied parameters
into a `Vec<OutputComponent>`. After that it is simply a task of
combining all supplied output components into one vector.
Important: this means that the styles are now additive, rather than one
of the predefined styles overruling other parameters supplied.
2018-05-10 12:20:38 +02:00
Pit Kleyersburg
23813cc08b
Make --style
parameter more flexible
...
The `--style` parameter now accepts a comma-separated list of strings,
where every element defines either a single output component (`changes`,
`grid`, `header`, `numbers`) or a predefined style (`full`,
`line-numbers`, `plain`).
If available, bat picks the first predefined style in the user-supplied
style-list and ignores everything else. If no predefined style was
requested, the other parameters that are simple output components will
be used.
Examples:
--style changes,full,numbers
Will internally be reduced to only the predefined style `full`.
--style plain,full
Will internally be reduced to only the predefined style `plain`.
--style changes,numbers
Will not be reduced, because the list does not contain any predefined
styles.
(Note: if `grid` is requested but no other parameters, bat still creates
the left-most column with a width of `PANEL_WIDTH`. I didn't want to
introduce further logic in this PR that drops or adapts the width of the
left column.)
2018-05-10 12:20:38 +02:00
sharkdp
8b9991d780
Append newline at the end of the file if necessary
2018-05-08 23:49:59 +02:00
sharkdp
f90b9d1acc
Do not peek at FIFOs, closes #80
2018-05-08 23:23:41 +02:00
sharkdp
f7af537018
Filter out languages without extensions
2018-05-08 22:57:29 +02:00
sharkdp
fd68af8031
Paint file extensions in green
2018-05-08 22:57:29 +02:00
sharkdp
ebdef04c8f
Compute 'longest' for non-hidden languages only
2018-05-08 22:57:29 +02:00
sharkdp
a4150600af
Correctly update num_chars
2018-05-08 22:57:29 +02:00
Connor Kuehl
49223eed06
Remove term_width from Printer, its options owns it.
2018-05-08 22:57:29 +02:00
Connor Kuehl
7dc7133b3c
Add revisions for line-wrapping and terminal width.
...
* Adds separator.length() to calculation for desired width.
* Replaces use of term_width with options.term_width.
* Adds the comma and space separator to calculation for line-wrapping.
2018-05-08 22:57:29 +02:00
Connor Kuehl
e5e47716b0
Add term_width to options struct, move getting term_width to run()
2018-05-08 22:57:29 +02:00
Connor Kuehl
b4f8cd3bae
Filter out languages that are hidden.
2018-05-08 22:57:29 +02:00
Connor Kuehl
ee3a37f3fc
WIP edit desired width.
2018-05-08 22:57:29 +02:00
Connor Kuehl
4c60ab12cc
Add simple line-wrapping for file extensions.
2018-05-08 22:57:29 +02:00
Connor Kuehl
ac32dd17c9
Adds requested revisions.
...
* removes redundant `.takes_value(false)`.
* changes Arg name to "list-languages" to be consistent with long-form.
* replaces unnecessary match statement with is_present().
* replaces unnecessary match statement on iter and uses unwrap_or()
instead.
* replaces for-loop with a call to join().
2018-05-08 22:57:29 +02:00
Connor Kuehl
4e3c57cc7c
Rename and add comment to the match block.
2018-05-08 22:57:29 +02:00
Connor Kuehl
438a9a99ed
Size language name column width to the length of the longest language.
2018-05-08 22:57:29 +02:00
Connor Kuehl
9b0877102c
Display language and extensions from loaded assets.
2018-05-08 22:57:29 +02:00
Connor Kuehl
67bed73e15
Add --list-languages argument to clap.
2018-05-08 22:57:29 +02:00
sharkdp
ef7c39b159
Improve cache subcommand
...
* Remove the old `init-cache` subcommand
* Introduce a new `cache` subcommand that can be used like this:
* `bat cache -h` - Show help
* `bat cache --init` - Initialize cache from config dir
* `bat cache --clear` - Reset the cache
* `bat cache --config-dir` - Show config directory
* Update README
closes #44
2018-05-08 20:11:25 +02:00
sharkdp
8a399c8d7d
Disable paging-mode if we read from an interactive TTY
2018-05-07 23:27:38 +02:00
sharkdp
9a0e444e09
Simplify stdout handling
2018-05-07 23:27:38 +02:00
sharkdp
438f3df345
Paint STDOUT bold, unify writeln statement
2018-05-07 23:27:38 +02:00
sharkdp
7e2e0c82ac
Add support for reading from stdin, closes #2
2018-05-07 23:27:38 +02:00
Ezinwa Okpoechi
53d67e2b6e
Add printer
...
This adds a separate struct that handles printing of the different
tokens.
2018-05-07 08:57:21 +02:00
sharkdp
b625d07c34
Use syntect newlines mode (instead of nonewlines)
2018-05-06 19:50:48 +02:00
Ezinwa Okpoechi
ec606e5dcc
Add option to disable automatic paging
2018-05-06 19:50:05 +02:00
Ezinwa Okpoechi
c253821a5e
Open pager once for multiple files
2018-05-06 19:50:05 +02:00
sharkdp
ccb1d78b22
Remove short versions for --style and --color for now
2018-05-06 18:23:43 +02:00
sharkdp
9eb64b97fe
Discover syntaxes by name and extention
2018-05-06 18:20:35 +02:00
sharkdp
15f0268bdc
Use 'plain' style for non-interactive terminals
2018-05-06 16:15:22 +02:00
sharkdp
3fa70deaa7
Run 'cargo fmt' and enforce via Travis
2018-05-06 15:10:46 +02:00
Ezinwa Okpoechi
d4553c6b38
Add color flag
...
Colors are disabled if the terminal is not interactive unless explicitly
set otherwise
2018-05-06 14:47:53 +02:00
sharkdp
3eb79d63ce
Compute pathspec from absolute.strip_prefix(workdir)
2018-05-06 11:22:48 +02:00
Nakul Chaudhari
cbdf5c50c4
Fix bug where git modification markers would not be shown if directory
...
was not cwd
Git ignore Idea dir
Fix #22
2018-05-06 11:22:48 +02:00
Ezinwa Okpoechi
418b3c5ea1
Add less pager
2018-05-05 09:01:30 +02:00
Nakul Chaudhari
9dca3126b3
Hide everything but content for plain option style
...
fix #5
2018-05-03 22:49:37 +02:00
nakulcg
7df9a5fe82
Add --style option to disable line numbers and git markers ( #43 )
...
closes #5
2018-05-03 20:34:23 +02:00
Ezinwa Okpoechi
4bba08062c
Add option to specify language
2018-05-03 17:00:35 +02:00
sharkdp
64ef61b409
Add customization chapter
2018-04-30 16:03:39 +02:00
sharkdp
59fabd8ca5
Load assets from the binary
2018-04-30 15:31:39 +02:00
sharkdp
ced6801740
Better error messages
2018-04-30 15:20:00 +02:00
sharkdp
f81e38618c
Implement SyntaxSet and ThemeSet caching
...
closes #21 , see #20
2018-04-30 15:09:20 +02:00
sharkdp
36bbc770eb
Use error-chain
2018-04-30 11:09:24 +02:00
sharkdp
f43409f473
Fix clippy warnings
2018-04-26 07:59:22 +02:00
sharkdp
64de2a44d5
Print error if Default.tmTheme is not available
...
closes #15
2018-04-25 23:34:41 +02:00
sharkdp
86dcb3c165
Fix #13
2018-04-24 21:57:40 +02:00
sharkdp
7b7a5a32d6
Update header
2018-04-24 21:33:50 +02:00
sharkdp
a7232a6ecc
Support for custom syntaxes, add 'Markdown extended' theme, closes #10
2018-04-24 00:44:39 +02:00
sharkdp
38762c34d9
Enable 8 bit color support, closes #11
2018-04-23 23:56:47 +02:00
sharkdp
de0198920a
Load themes from ~/.config/bat/themes
2018-04-22 16:03:47 +02:00
sharkdp
b5c119e802
Rename get_line_changes
2018-04-22 15:11:35 +02:00
sharkdp
1f2bcf57ba
Handle broken pipes, closes #9
2018-04-22 14:37:32 +02:00
sharkdp
de11558ad3
Code restructuring
2018-04-22 14:05:43 +02:00
sharkdp
fcfc7c465b
Code cleanup
2018-04-22 13:53:04 +02:00
sharkdp
70ffd60b20
Update help text
2018-04-22 13:45:40 +02:00
sharkdp
36d92361be
Better error handling
2018-04-22 13:27:20 +02:00
sharkdp
6b507d1e35
Print filename
2018-04-21 17:36:57 +02:00
sharkdp
ab10a20c1f
Use default for highlighting theme
2018-04-21 17:16:53 +02:00
sharkdp
a979608f37
Add Git support, closes #8
2018-04-21 17:12:25 +02:00
sharkdp
8f5a80ea07
Initial commit
2018-04-21 12:53:24 +02:00