Awesome
<p align="center"> <img src="./art/header.png" alt="Uivonim header"></img> </p>NOTE: Due to neovim/neovim#13196, if you have
conceallevel
set to a value higher than 0 CPU usage may be abnormally high. See #39 (comment).
Uivonim is a fork of Veonim, "a simple modal IDE built on Neovim and VSCode extensions" written in Electron with WebGL GPU rendering and multithreading. The goal of Uivonim is to use Veonim as a base for building a feature-rich cross-platform GUI that leverages the latest Neovim features (floating windows, builtin LSP, Lua) without reliance on VSCode extensions.
<img width="1552" alt="main" src="https://user-images.githubusercontent.com/46855713/132102617-8a85965c-8ad7-4cc6-bd34-c63db2197179.png">Goals
- 100% compatibility with Neovim (see #9421)
- All configuration done via vimrc with vimscript/Lua/remote plugins
- GUI features and eyecandy
- Full support for international keyboard layouts and dead keys (tested on macOS and Linux)
- Fast, building upon the work done by @breja, with things like WebGL GPU rendering and multithreading
- Extensibility via a Lua API providing access to frontend GUI features such as LSP hover/signature help/symbols and a fuzzy finder UI
Getting Started
Download the latest GitHub release, or build from source (see the "build" section at the bottom of this README). Alternatively, if you use Arch Linux, there is an AUR package for uivonim, kindly created by @SilverRainZ (see #55).
Build
Install the following things:
- node/npm
- latest Neovim (i.e., nightly or built from master)
Then run:
npm ci
- standard issue download 5 million node_modulesnpm run prod
(optional) - run release build w/out packagingnpm run package
- use electron-builder to create a binary package
Binaries available in dist
.
Development
npm ci
- install deps as mentioned abovenpm run dev
- run dev build
If you have any questions about Uivonim's code, making a change, etc., feel free to ping me (@smolck) on Gitter.
Feature Showcase
See the wiki for setup for the signature help, float, etc. features.
Signature Help
Hover
Code Actions
References
Nyancat
:Uivonim nc
Other Cool Projects
Special Thanks
An absolutely massive thank you to @breja for all of the work you did on the original Veonim project; without your work (including the amazing achievement of making Electron snappy!) and vision for the original project, Uivonim would not exist. Thank you!