/uivonim

Fork of the Veonim Neovim GUI

Primary LanguageTypeScriptGNU Affero General Public License v3.0AGPL-3.0

Uivonim header

Typecheck Test Gitter

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.

main

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_modules
  • npm run prod (optional) - run release build w/out packaging
  • npm run package - use electron-builder to create a binary package

Binaries available in dist.

Development

  • npm ci - install deps as mentioned above
  • npm 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

signature_help

Hover

hover

Code Actions

code_action

References

references

Nyancat

:Uivonim nc

nyancat

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!