Skip to content

🛰 A high performance code minimap render.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

wfxr/code-minimap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

0ddeea5 Â· Dec 28, 2024
Dec 28, 2024
Dec 28, 2024
Feb 5, 2021
Dec 28, 2024
Nov 23, 2021
Sep 24, 2020
Dec 28, 2024
Dec 15, 2021
Dec 28, 2024
Dec 28, 2024
Apr 14, 2024
Sep 24, 2020
Mar 4, 2024
Dec 14, 2024
Feb 22, 2024

Repository files navigation

🛰 code-minimap

A high performance code minimap render.

CICD License Version Platform

This tool is for generating text minimaps at 🚀 speed. You can use it to implement IDE-like minimap plugin for a terminal text editor, minimap.vim for example.

Features

Usage

$ code-minimap src/core.rs -H 0.6 -V 0.5
⣿⣿⣿⣿⣿⠿⠛⠓⠒⠒⠂
⣉⣿⣿⣿⣟⣛⣛⣛⠒⠒⠂
⠀⠉⣿⣿⣿⣿⠭⠭⠭⠭⠤⠤⠤⠤⠤
⠀⠉⠛⠻⢿⣿⣿⣿⣿⣶⣶⣶⣒⣒⣒⣒⣒⣒⣀⣀⣀⣀⣀⣀⣀⣀⣀⡀
⠀⣀⣶⣾⣿⣿⣿⣿⣭⣭⣭⣤⣤⣤⣤⣤⠤⠤⠤⠤⠤
⣿⣿⣿⣶⡒⠒⠒⠒
⣿⣿⣶⣶⣶⣶⣶⣶⣤⣤⣤⣤⣤⣤⣤⣤⣄
⣭⣭⣭⣭⠭⠭⠭⠭⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉
⣿⣿⣿⣿⣧⣤⣤⣤⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⡀
⣛⣿⣿⣿⣟⣛⣒⣒⠂
⣀⣛⣛⣛⣛⣛⣛⣛⣛⣛⣛⣛⣛⣛⣛⣛⣋⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⡀
⠀⣤⣭⣽⣿⣷⣶⣶⣶⠶⠶⠶⠶⠶⠶⠶⠶⠶⠶⠶⠶⠒⠒⠒⠒⠒
⠀⠶⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠛⠓⠒⠒⠒⠒⠒
⣉⣛⣛⣛⣛⣛⣛⣛⣛⣛⣛⣛⡛⠛⠛⠛⠛
⠒⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⡄
⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇
⠄⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠃

Run code-minimap --help to view detailed usage.

Installation

On Linux

Arch Linux

code-minimap is available in the Arch User Repository. To install it from AUR:

yay -S code-minimap
Alpine Linux

code-minimap is available in the testing repository:

apk add code-minimap
Gentoo

code-minimap is available in the GURU project repository:

emerge --ask code-minimap

On macOS

You can install code-minimap with Homebrew:

brew install code-minimap

or with MacPorts:

sudo port install code-minimap

On Windows

You can install code-minimap with scoop:

scoop bucket add extras
scoop install code-minimap

From binaries

Prebuilt versions of code-minimap for various architectures are available at Github release page.

Note that you can try the musl version (which is statically-linked) if runs into dependency related errors.

From source

code-minimap is also published on crates.io. If you have the latest Rust toolchains installed you can use cargo to install it from source:

cargo install --locked code-minimap

If you want the latest version, clone this repository and run cargo build --release.

Benchmark

$ hyperfine -w 10 'code-minimap src/core.rs'
Benchmark #1: code-minimap src/core.rs
  Time (mean ± σ):       0.2 ms ±   0.1 ms    [User: 0.4 ms, System: 0.3 ms]
  Range (min … max):     0.2 ms …   1.1 ms    1560 runs

79 lines, 4K size, 0.2ms.


$ fd -t f -e rs -x cat "{}" >> /tmp/all-in-one.rs
$ hyperfine -w 10 'code-minimap /tmp/all-in-one.rs'
Benchmark #1: code-minimap /tmp/all-in-one.rs
  Time (mean ± σ):     322.7 ms ±   4.5 ms    [User: 298.7 ms, System: 23.8 ms]
  Range (min … max):   318.5 ms … 334.1 ms    10 runs

1,153,225 lines, 37M size, 323ms.


$ base64 /dev/urandom | head -10000000 > huge.txt
$ hyperfine -w 1 'code-minimap huge.txt'
Benchmark #1: code-minimap huge.txt
  Time (mean ± σ):      2.941 s ±  0.034 s    [User: 2.618 s, System: 0.321 s]
  Range (min … max):    2.919 s …  3.028 s    10 runs

10,000,000 lines, 735M size, 2.9s.


Test environment:

Binary version: 0.3.0
OS: Arch Linux x86_64
Kernel: 5.8.10-arch1-1
CPU: Intel i9-9900K (16) @ 5.000GHz

Related Project

minimap.vim: Blazing fast minimap for vim.

License

code-minimap is distributed under the terms of both the MIT License and the Apache License 2.0.

See the LICENSE-APACHE and LICENSE-MIT files for license details.

About

🛰 A high performance code minimap render.

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Languages