Commit Graph

307 Commits (c96927b550bec973091b7b0a2a0f359b6ea07b9c)

Author SHA1 Message Date
ms2300 5444b0dfed Fixes mut issue 6 years ago
ms2300 f3dde0185d Modifying changing config for efficiency 6 years ago
ms2300 2e3784aa30 #213 : output hello world for each theme when --list-theme is flagged 6 years ago
ms2300 81771432fb #212 : added -p as an alias for --style=plain 6 years ago
sharkdp 627181bcb6 Always call the syntax highlighter 6 years ago
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
6 years ago
sharkdp 246cf79dbd Split into Controller and Printer 6 years ago
sharkdp ea955c734d Refactoring, introduce Printer trait 6 years ago
sharkdp 6223ad6d52 Document Config struct 6 years ago
sharkdp 31a9335bd5 Document Config struct 6 years ago
sharkdp 9316f2a758 Major refactoring and cleanup 6 years ago
sharkdp c884c3cc12 Re-order options in help texts 6 years ago
sharkdp 08850f0474 Update the `--help` text 6 years ago
Tim Sampson 8e6c5bc562 doc: mention BAT_THEME in help output 6 years ago
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
6 years ago
sharkdp 2df3305b94 Add new '--blank' option for 'bat cache --init'
closes #206
6 years ago
sharkdp 6882fc1512 Clean up help messages 6 years ago
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
6 years ago
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
6 years ago
sharkdp b191691767 Revert "replace trait object BufRead by generic"
This reverts commit 037861e588.
6 years ago
Michal Nazarewicz 5c95b8803b Avoid floating point arithmetic in RGB→8-bit ANSI approximation 6 years ago
sharkdp 5b421b455d Update dependencies 6 years ago
sharkdp d179693d1d Use BAT_PAGER and PAGER environment variables, closes #158 6 years ago
sharkdp 268577c6f9 Run 'cargo fmt' 6 years ago
TA Thanh Dinh 037861e588 replace trait object BufRead by generic 6 years ago
sharkdp 28397b8f78 Always show a warning when theme is unknown 6 years ago
sharkdp c899849101 Use map instead of and_then(..Some(..)) 6 years ago
sharkdp bf53b64125 Small style fix 6 years ago
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.
6 years ago
sharkdp 6b57f4eebc Style changes 6 years ago
eth-p 0ddd388a29 Improve logic for SGR sequence passthrough 6 years ago
eth-p 34811b8161 Fix #182 6 years ago
Stéphane Campinas 8c6a74a6c5 typo 6 years ago
sharkdp 65e6970907 Change help text for --line-range 6 years ago
sharkdp 90cc019482 Run 'cargo fmt' 6 years ago
Taylor eaf0b99d25 update 6 years ago
Taylor Skinner 3b1dcca5d0 use map() 6 years ago
Taylor Skinner 26dbdf4fa0 update line-ranges 6 years ago
Taylor Skinner 6691786d82 add line-range 6 years ago
sharkdp e27bdfc7d6 Fix clippy warnings 6 years ago
sharkdp a348a9f68e Handle syntax-set loading errors 6 years ago
TA Thanh Dinh a13eb60df3 Using slice notation instead of as_ref 6 years ago
sharkdp 9342d0bb24 Explicitly specify which args override themselves 6 years ago
sharkdp 36d7250af2 Allow arguments to override themselves 6 years ago
Ezinwa Okpoechi a452467e06 Remove unnecessary space if there are no decorations 6 years ago
Ezinwa Okpoechi 2ea3758c4b Justify header when there are decorations but no grid 6 years ago
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'
6 years ago
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
6 years ago
Ezinwa Okpoechi 2712d63a4b Move asset clearing to assets module 6 years ago
Ezinwa Okpoechi b21fb6bca8 Extract features to separate module 6 years ago
Ezinwa Okpoechi ee43377a9c Move colors to printer module 6 years ago
Ezinwa Okpoechi 120b33a9db Move output to separate module 6 years ago
sharkdp be0a2d6048 Extended help texts for '--help' 6 years ago
sharkdp d1a1943998 Add -u and -n options, see #134 6 years ago
sharkdp 2a9f5a24ed Permissive error handling, closes #17 6 years ago
sharkdp a0ae089c4a Reset line number to 0 for new files 6 years ago
sharkdp 96cc391f2d Skip '--quit-if-one-screen' for --paging=always
closes #97
6 years ago
sharkdp 5e3b17e6f7 Fix code formatting 6 years ago
eth-p 486e6a19cd Fixed #124 6 years ago
Ezinwa Okpoechi 247dfbee83 Extract syntax finding to assets module 6 years ago
Ezinwa Okpoechi 12cb438aa4 Handle line with invalid UTF-8 6 years ago
sharkdp c826c2a438 Better error handling 6 years ago
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"
6 years ago
David Peter 2eee68599d
Merge pull request #102 from eth-p/master
Added text wrapping. (Fixes #54)
6 years ago
eth-p d569693dab Formatted with newer cargo fmt.
It should pass all the checks now.
6 years ago
eth-p 900f61032d
Fix #117 6 years ago
eth-p d0ca566979
Replace for_line and for_wrap with generate 6 years ago
eth-p a5a7dc14e4
Fix \r character being printed with wrapping enabled. 6 years ago
rleungx a5de77af4d address comment 6 years ago
rleungx 870ff7b538 sort the language listing 6 years ago
sharkdp 15b9acd12f Updates for new rustfmt 6 years ago
eth-p b327127f37
Split decorations into a separate file and optimized them a bit. 6 years ago
eth-p 9214a4a4f0
PR #102 Followed @sharkdp's suggestions 6 years ago
sharkdp fcecd97224 Add ansi_term import for Windows, see #107 6 years ago
eth-p 870b3c0daf
PR #102 Followed @BrainMaestro's suggestions
Also ran cargo fmt.
6 years ago
sharkdp b9c780c8c8 Ignore errors when clearing cache, closes #91 6 years ago
sharkdp ca865f9d26 Enable ANSI support on Windows 10 6 years ago
eth-p b4cfc9633c
Fix double spaces when outputting without wrapping. 6 years ago
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.
6 years ago
eth-p cd26d403a3
Fix padding, add --wrap argument, disable wrap for non-tty.
Now bat(1) can be used like cat(1) again!
6 years ago
eth-p f95a23f948
Fix off-by-one error with text wrapping and --style grid 6 years ago
Ethan P bdd10b8bec
Merge branch 'master' into master 6 years ago
eth-p fc160b0dcd
PR #102 Review Changes
- Reformatted code.
- Removed leftover code.
- Removed leftover comments.
- Fixed compiling on Rust 1.24.0
6 years ago
sharkdp cb7b158172 Add bold, italic and underline font styles 6 years ago
eth-p fcc36b1f79
Forgot to add styling to the horizontal line. 6 years ago
eth-p 4e4110bf50
Added line wrapping. 6 years ago
Ryan Leung 22c8978fca add theme option (#95)
closes #89
6 years ago
Ezinwa Okpoechi f711fb5006 Split style to separate module 6 years ago
Ezinwa Okpoechi 64a9341b73 Split app to separate module 6 years ago
sharkdp ccf88fd5d8 Add and use --style=auto by default 6 years ago
sharkdp e2ac6de783 Fix clippy warnings 6 years ago
Ezinwa Okpoechi 25cee002f9 Split modules (#86)
* Split diffing to separate module
* Split assets to separate module
6 years ago
sharkdp ea27053a63 Remove unused lifetimes 6 years ago
Pit Kleyersburg b2b932f3ed Fix header-line if grid is not requested 6 years ago
Pit Kleyersburg 747d074be1 Replace `Cow` by `String` 6 years ago
Pit Kleyersburg 61109ece15 Create `OutputComponents` struct, use HashSet 6 years ago
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.
6 years ago
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.)
6 years ago
sharkdp 8b9991d780 Append newline at the end of the file if necessary 6 years ago
sharkdp f90b9d1acc Do not peek at FIFOs, closes #80 6 years ago
sharkdp f7af537018 Filter out languages without extensions 6 years ago
sharkdp fd68af8031 Paint file extensions in green 6 years ago
sharkdp ebdef04c8f Compute 'longest' for non-hidden languages only 6 years ago
sharkdp a4150600af Correctly update num_chars 6 years ago
Connor Kuehl 49223eed06 Remove term_width from Printer, its options owns it. 6 years ago
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.
6 years ago
Connor Kuehl e5e47716b0 Add term_width to options struct, move getting term_width to run() 6 years ago
Connor Kuehl b4f8cd3bae Filter out languages that are hidden. 6 years ago
Connor Kuehl ee3a37f3fc WIP edit desired width. 6 years ago
Connor Kuehl 4c60ab12cc Add simple line-wrapping for file extensions. 6 years ago
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().
6 years ago
Connor Kuehl 4e3c57cc7c Rename and add comment to the match block. 6 years ago
Connor Kuehl 438a9a99ed Size language name column width to the length of the longest language. 6 years ago
Connor Kuehl 9b0877102c Display language and extensions from loaded assets. 6 years ago
Connor Kuehl 67bed73e15 Add --list-languages argument to clap. 6 years ago
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
6 years ago
sharkdp 8a399c8d7d Disable paging-mode if we read from an interactive TTY 6 years ago
sharkdp 9a0e444e09 Simplify stdout handling 6 years ago
sharkdp 438f3df345 Paint STDOUT bold, unify writeln statement 6 years ago
sharkdp 7e2e0c82ac Add support for reading from stdin, closes #2 6 years ago
Ezinwa Okpoechi 53d67e2b6e Add printer
This adds a separate struct that handles printing of the different
tokens.
6 years ago
sharkdp b625d07c34 Use syntect newlines mode (instead of nonewlines) 6 years ago
Ezinwa Okpoechi ec606e5dcc Add option to disable automatic paging 6 years ago
Ezinwa Okpoechi c253821a5e Open pager once for multiple files 6 years ago
sharkdp ccb1d78b22 Remove short versions for --style and --color for now 6 years ago
sharkdp 9eb64b97fe Discover syntaxes by name and extention 6 years ago
sharkdp 15f0268bdc Use 'plain' style for non-interactive terminals 6 years ago
sharkdp 3fa70deaa7 Run 'cargo fmt' and enforce via Travis 6 years ago
Ezinwa Okpoechi d4553c6b38 Add color flag
Colors are disabled if the terminal is not interactive unless explicitly
set otherwise
6 years ago
sharkdp 3eb79d63ce Compute pathspec from absolute.strip_prefix(workdir) 6 years ago
Nakul Chaudhari cbdf5c50c4 Fix bug where git modification markers would not be shown if directory
was not cwd

Git ignore Idea dir

Fix #22
6 years ago
Ezinwa Okpoechi 418b3c5ea1 Add less pager 6 years ago
Nakul Chaudhari 9dca3126b3 Hide everything but content for plain option style
fix #5
6 years ago
nakulcg 7df9a5fe82 Add --style option to disable line numbers and git markers (#43)
closes #5
6 years ago
Ezinwa Okpoechi 4bba08062c Add option to specify language 6 years ago
sharkdp 64ef61b409 Add customization chapter 6 years ago
sharkdp 59fabd8ca5 Load assets from the binary 6 years ago
sharkdp ced6801740 Better error messages 6 years ago
sharkdp f81e38618c Implement SyntaxSet and ThemeSet caching
closes #21, see #20
6 years ago
sharkdp 36bbc770eb Use error-chain 6 years ago
sharkdp f43409f473 Fix clippy warnings 6 years ago
sharkdp 64de2a44d5 Print error if Default.tmTheme is not available
closes #15
6 years ago
sharkdp 86dcb3c165 Fix #13 6 years ago
sharkdp 7b7a5a32d6 Update header 6 years ago
sharkdp a7232a6ecc Support for custom syntaxes, add 'Markdown extended' theme, closes #10 6 years ago
sharkdp 38762c34d9 Enable 8 bit color support, closes #11 6 years ago
sharkdp de0198920a Load themes from ~/.config/bat/themes 7 years ago
sharkdp b5c119e802 Rename get_line_changes 7 years ago
sharkdp 1f2bcf57ba Handle broken pipes, closes #9 7 years ago
sharkdp de11558ad3 Code restructuring 7 years ago
sharkdp fcfc7c465b Code cleanup 7 years ago
sharkdp 70ffd60b20 Update help text 7 years ago
sharkdp 36d92361be Better error handling 7 years ago
sharkdp 6b507d1e35 Print filename 7 years ago
sharkdp ab10a20c1f Use default for highlighting theme 7 years ago
sharkdp a979608f37 Add Git support, closes #8 7 years ago
sharkdp 8f5a80ea07 Initial commit 7 years ago