Skip to content

Zana 📦 aims to be like Mason.nvim 🧱, but with the goal of supporting 🌈 not only Neovim, but rather any other editor 🫶.

License

Notifications You must be signed in to change notification settings

mistweaverco/zana-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zana Logo

zana-client

Made with love Go GitHub release (latest by date) Discord

Requirements • Install • Usage • What is working?

Zana Demo Gif

Zana 📦 aims to be like Mason.nvim 🧱, but with the goal of supporting 🌈 not only Neovim, but rather any other editor 🫶.

Zana is swahili for "tools" or "tooling".

A minimal package manager for Neovim (and other editors) which uses the Zana Registry to install and manage packages.

Easily install and manage LSP servers, DAP servers, linters, and formatters.

Currently, Zana is in pre-alpha and under active development.

Requirements

Zana is a TUI, therefore you need to have a terminal emulator available.

Besides that, we shell out to npm, pip, cargo, go, and git to install packages, depending on the package type.

E.g. if you want to install pkg:npm packages, you need to have npm installed.

For the packages to work in Neovim, you need to Zana.nvim installed.

Install

Just head over to the download page or grab it directtly from the releases.

Usage

The heart of Zana is its zana-lock.json file. This file is used to keep track of the installed packages and their versions.

Zana expects zana-lock.json to be in the following directories:

  • Linux: $XDG_CONFIG_HOME/zana/zana-lock.json or $HOME/.config/zana/zana-lock.json
  • macOS: $HOME/Library/Application Support/zana/zana-lock.json
  • Windows: %APPDATA%\zana\zana-lock.json

If the file does not exist, Zana will create it for you (when you install a package).

  1. Start Zana by running zana in your terminal.
  2. Use the arrow keys (or hjkl) to navigate the packages.
  3. Use enter to install a package.
  4. Use enter to update a package.
  5. Use backspace to remove a package.
  6. Use / to filter packages.
  7. Use q to quit Zana.

It's advised to keep the zana-lock.json file in version control.

Where are the packages?

Zana uses a basepath to install packages of different types.

The basepath is:

  • Linux: $XDG_CONFIG_HOME/zana/packages or $HOME/.config/zana/packages
  • macOS: $HOME/Library/Application Support/zana/packages
  • Windows: %APPDATA%\zana\packages

The packages are installed in the following directories:

  • pkg:npm: $basepath/npm
  • pkg:pypi: $basepath/pypi
  • pkg:github: $basepath/github
  • pkg:golang: $basepath/golang
  • pkg:cargo: $basepath/cargo

What is working?

  • registry updates on startup
  • Updates available for installed packages?
  • Filtering packages
  • Vim keymaps
  • Install pkg:npm packages
  • Update pkg:npm packages
  • Remove pkg:npm packages
  • Install pkg:github packages
  • Update pkg:github packages
  • Remove pkg:github packages
  • Install pkg:pypi packages
  • Update pkg:pypi packages
  • Remove pkg:pypi packages
  • Install pkg:golang packages
  • Update pkg:golang packages
  • Remove pkg:golang packages
  • Install pkg:cargo packages
  • Update pkg:cargo packages
  • Remove pkg:cargo packages