14 stable releases

1.2.0+0.95.0 Jun 26, 2024
1.1.3+0.93.0 May 9, 2024
1.1.1+0.91.0 Mar 6, 2024
1.0.7 Nov 5, 2023
1.0.5 Jul 30, 2023

#242 in Value formatting

Download history 12/week @ 2024-03-28 147/week @ 2024-04-04 41/week @ 2024-04-11 5/week @ 2024-04-18 4/week @ 2024-04-25 3/week @ 2024-05-02 187/week @ 2024-05-09 21/week @ 2024-05-16 15/week @ 2024-05-23 258/week @ 2024-05-30 36/week @ 2024-06-06 16/week @ 2024-06-13 62/week @ 2024-06-20 166/week @ 2024-06-27 15/week @ 2024-07-04 3/week @ 2024-07-11

248 downloads per month

MIT and maybe CC-PDDC

24KB
381 lines

nu-plugin-highlight

A nushell plugin for syntax highlighting.


Version License

About

nu-plugin-highlight is a plugin for Nushell that provides syntax highlighting for source code. It uses the syntect library for syntax highlighting and the bat library for easy access to its ready-to-use assets. Custom themes can be loaded too.

Usage

The highlight command can be used for syntax highlighting source code. Here are a few examples:

# Highlight a TOML file by its file extension
open Cargo.toml -r | highlight toml

# Highlight a Rust file by programming language name
open src/main.rs | highlight Rust

# Highlight a bash script by inferring the language (the file should start with a shebang)
open example.sh | highlight

# Highlight a TOML file with a different theme
open Cargo.toml -r | highlight toml -t ansi

# List all available themes
highlight --list-themes

Parameters

  • language <string>: This is an optional parameter that can be used to specify the language or file extension to aid language detection.

Flags

  • -h, --help: Display the help message for the highlight command.

  • -t, --theme <string>: The theme used for highlighting.

  • --list-themes: List all possible themes.

Configuration

The plugin can be configured using the $env.config.plugins.highlight variable.

true_colors

Enable or disable true colors (24-bit). By default, this is enabled.

$env.config.plugins.highlight.true_colors = true

theme

Set a theme to use. The default theme depends on the operating system. Use highlight --list-themes | where default == true to see your default theme. Setting this environment variable should allow highlight --list-themes | where id == $env.config.plugins.highlight.theme to result in a single row with your selected theme. If you get no results, you have set an invalid theme.

$env.config.plugins.highlight.theme = ansi

custom_themes

Set a directory to load custom themes from. Using synctects theme loader, you can load custom themes in the .tmtheme format from a directory that is passed as this configuration value.

$env.config.plugins.highlight.custom_themes = ~/.nu/highlight/themes

Plugin Installation

Installing and registering the nu-plugin-highlight is a straightforward process. Follow these steps:

  1. Install the plugin from crates.io using cargo:

    cargo install nu_plugin_highlight
    
  2. Restart your terminal session to ensure the newly installed plugin is recognized.

  3. Find path of your installation:

    which nu_plugin_highlight
    
  4. Register the plugin with Nushell:

    If you are using a version lower than 0.93.0, use register instead of plugin add.

    plugin add path/to/the/plugin/binary
    
  5. Make the plugin available for use:

    Tip: You can simply restart the shell or terminal. When nushell starts, it loads all plugins.

    If you are using a version lower than 0.93.0, you do not need to do this.

    plugin use highlight
    

After registering, the plugin is available as part of your set of commands:

help commands | where command_type == "plugin"

Version Numbering

Starting with version v1.1.0, the version number of nu-plugin-highlight incorporates the version number of its dependency, nu-plugin. This is denoted in the format v1.1.0+0.90.1, where v1.1.0 refers to the version of nu-plugin-highlight and 0.90.1 refers to the version of the nu-plugin dependency.

License

nu_plugin_highlight is licensed under the MIT License. See LICENSE for more information.

Dependencies

~33–64MB
~1M SLoC