diff options
author | sharkdp <davidpeter@web.de> | 2018-04-30 16:03:33 +0200 |
---|---|---|
committer | sharkdp <davidpeter@web.de> | 2018-04-30 16:03:39 +0200 |
commit | 64ef61b40927d0ac9881cace2b6e37dfc9706f90 (patch) | |
tree | 1d26f37892c9dc49dcccfc75ba56a0b065b0e081 | |
parent | 95a2079bcd1f93cf34f4bc62ee022cef7ed07223 (diff) |
Add customization chapter
-rw-r--r-- | Cargo.lock | 2 | ||||
-rw-r--r-- | Cargo.toml | 2 | ||||
-rw-r--r-- | README.md | 35 | ||||
-rw-r--r-- | src/main.rs | 3 |
4 files changed, 39 insertions, 3 deletions
@@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "bat" -version = "0.1.0" +version = "0.2.0" dependencies = [ "ansi_term 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "atty 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -7,7 +7,7 @@ license = "MIT/Apache-2.0" name = "bat" readme = "README.md" repository = "https://github.com/sharkdp/bat" -version = "0.1.0" +version = "0.2.0" [dependencies] atty = "0.2.2" @@ -32,3 +32,38 @@ Make sure that you have the devel-version of libopenssl installed (see instructi ``` bash cargo install bat ``` + +## Customization + +`bat` uses the excellent [`syntect`](https://github.com/trishume/syntect/) library for syntax highlighting. `syntect` can read any Sublime Text language definitions and highlighting theme. + +To build your own syntax-set and theme, follow these steps: + +Create a folder with syntax highlighting theme: +``` bash +mkdir -p ~/.config/bat/themes +cd ~/.config/bat/themes + +# Download a theme, for example: +git clone https://github.com/jonschlinkert/sublime-monokai-extended + +# Create a 'Default.tmTheme' link +ln -s "sublime-monokai-extended/Monokai Extended.tmTheme" Default.tmTheme +``` + +Create a folder with language definition files: +``` bash +mkdir -p ~/.config/bat/syntax +cd ~/.config/bat/syntax + +# Download some language definition files, for example: +git clone https://github.com/sublimehq/Packages/ +rm -rf Packages/Markdown +git clone https://github.com/jonschlinkert/sublime-markdown-extended +``` + +Finally, use the following command to parse all these files into a binary +cache: +``` bash +bat init-cache +``` diff --git a/src/main.rs b/src/main.rs index 4797c557..8a1f1287 100644 --- a/src/main.rs +++ b/src/main.rs @@ -368,7 +368,8 @@ fn run() -> Result<()> { true_color: is_truecolor_terminal(), }; - let assets = HighlightingAssets::from_binary(); + let assets = + HighlightingAssets::from_cache().unwrap_or(HighlightingAssets::from_binary()); let theme = assets.theme_set.themes.get("Default").ok_or_else(|| { io::Error::new( |