3.4 KiB
📺 television
_______________
|,----------. |\
|| |=| |
|| | | |
|| |o| |
|`-----------' |/
`--------------'
__ __ _ _
/ /____ / /__ _ __(_)__ (_)__ ___
/ __/ -_) / -_) |/ / (_-</ / _ \/ _ \
\__/\__/_/\__/|___/_/___/_/\___/_//_/
The revolution will (not) be televised.
📺 About
Television
is an extremely fast general purpose fuzzy finder TUI written in Rust.
It is inspired by the neovim telescope.nvim plugin and the fzf command line tool. It is designed to be fast, efficient, easy to use and easily extensible. It is built on top of tokio, ratatui and the nucleo matcher used in the helix editor.
📺 Installation
cargo install television
📺 Usage
tv [channel] #[default: files] [possible values: env, files, git-repos, text, alias]
By default, television
will search through files in the current directory.
📺 Built-in Channels
The following channels are currently available:
Files
: search through files in a directory tree.Text
: search through textual content in a directory tree.GitRepos
: search through git repositories anywhere on the file system.Env
: search through environment variables and their values.Alias
: search through shell aliases and their values.Stdin
: search through lines of text from stdin.
📺 Design
Channels
Television's design is primarily based on the concept of Channels.
A Channel is a source of data that can be used for fuzzy finding. It can be anything from a file system directory, a git repository, a list of strings, a list of numbers, etc.
Television provides a set of built-in Channels that can be used out of the box (see Built-in Channels). The list of available channels will grow over time as new channels are implemented to satisfy different use cases.
Because a Channel is nothing more than a source of data that can respond to a user query, channels can virtually search through anything ranging from a local file system to a remote database, a list of environment variables, something passed through stdin, etc.
Transitions
When it makes sense, Television allows for transitions between different channels. For example, you might want to start searching through git repositories, then refine your search to a specific set of files in that shortlist of repositories and then finally search through the textual content of those files.
This can easily be achieved using transitions.
Previewers
Entries returned by different channels can be previewed in a separate pane. This is useful when you want to see the contents of a file, the value of an environment variable, etc. Because entries returned by different channels may represent different types of data, Television allows for channels to declare the type of previewer that should be used. Television comes with a set of built-in previewers that can be used out of the box and will grow over time.