All Projects â†’ equalsraf â†’ Neovim Qt

equalsraf / Neovim Qt

Licence: isc
Neovim client library and GUI, in Qt5.

Labels

Projects that are alternatives of or similar to Neovim Qt

Shaderworkshop
Interactive GLSL fragment shaders editor made with Qt
Stars: ✭ 43 (-95.93%)
Mutual labels:  qt
Dotfiles
My dotfiles 🚀. Includes configs for neovim, tmux, zsh, alacritty and more.
Stars: ✭ 47 (-95.55%)
Mutual labels:  neovim
Tiled
Flexible level editor
Stars: ✭ 8,411 (+695.74%)
Mutual labels:  qt
Vim Outdated Plugins
🔄 Async Vim/Neovim plugin for showing the number of your outdated plugins
Stars: ✭ 44 (-95.84%)
Mutual labels:  neovim
Vim Grepper
đŸ‘Ÿ Helps you win at grep.
Stars: ✭ 1,030 (-2.55%)
Mutual labels:  neovim
Qt Promise
Chainable promises for Qt
Stars: ✭ 48 (-95.46%)
Mutual labels:  qt
Coc Tslint Plugin
coc.nvim extension that provides TSLint support using the typescript-tslint-plugin
Stars: ✭ 42 (-96.03%)
Mutual labels:  neovim
Vim Lookup
Jump to the definition of variables or functions in VimL code.
Stars: ✭ 51 (-95.18%)
Mutual labels:  neovim
Pyqx
Multiplatform graphics editor made with Python and PyQt and specializing in Pixel Art
Stars: ✭ 45 (-95.74%)
Mutual labels:  qt
Vim Galore Zh cn
Vim ä»Žć…„é—šćˆ°çČŸé€š
Stars: ✭ 8,619 (+715.42%)
Mutual labels:  neovim
Inqlude Data
Library meta data for independent Qt library archive
Stars: ✭ 44 (-95.84%)
Mutual labels:  qt
Derpibooru Downloader
Downloads images from derpibooru.org using a variety of options
Stars: ✭ 45 (-95.74%)
Mutual labels:  qt
Qtwebapp
QtWebApp is a HTTP server like Java servlets, written in C++ with the Qt framework.
Stars: ✭ 50 (-95.27%)
Mutual labels:  qt
Fennel Nvim
running fennel-lang natively in neovim
Stars: ✭ 44 (-95.84%)
Mutual labels:  neovim
Fqterm
Stars: ✭ 50 (-95.27%)
Mutual labels:  qt
Neoterm
Wrapper of some vim/neovim's :terminal functions.
Stars: ✭ 1,007 (-4.73%)
Mutual labels:  neovim
Spix
UI test automation library for QtQuick/QML Apps
Stars: ✭ 48 (-95.46%)
Mutual labels:  qt
Idempotent Desktop
🛾 NixOS, Xmonad, Neovim
Stars: ✭ 51 (-95.18%)
Mutual labels:  neovim
Qt Material Widgets
🎹 Qt widgets-based implementation of the Material Design specification.
Stars: ✭ 1,058 (+0.09%)
Mutual labels:  qt
Candle2
GRBL control interface in Qt.
Stars: ✭ 50 (-95.27%)
Mutual labels:  qt

Neovim client library and GUI, in Qt5.

Build Status Build status Build Status codecov Status Build Status Downloads

Requirements

  • Qt5
  • Neovim

Building

You can build using CMake and your build system of choice. It should build in any system where Qt5 and Msgpack can build.

For Unix call

$ mkdir build
$ cd build
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ make

for Windows both MSVC and Mingw are supported. Use the following

$ mkdir build
$ cd build
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ cmake --build .

For MSVC build you may have to specify the VS version and build type. Always make sure the VS versions matches your Qt libraries.

$ mkdir build
$ cd build
$ cmake -G "Visual Studio 14" -DCMAKE_BUILD_TYPE=Release ..
$ cmake --build . --config Release --target install

The binaries will be under build/bin/. The GUI binary is called nvim-qt. Run make install to install it, or execute from the source setting the environment variable NVIM_QT_RUNTIME as the path holding the GUI shim plugin

$ NVIM_QT_RUNTIME_PATH=../src/gui/runtime bin/nvim-qt

See the wiki for detailed build instructions.

Using the GUI

Run nvim-qt, the nvim binary must be in your $PATH. Check nvim-qt --help for additional options.

Commands for interacting with the GUI are regular commands, available in the documentation :help nvim-gui-shim. For example to change the font call

:Guifont DejaVu Sans Mono:h13

To disable the GUI tabline and use the nvim TUI tabline, call

:GuiTabline 0

You can set GUI options on startup, in the GUI configuration file (:help ginit.vim).

In recent versions of Neovim you can also use regular options (in init.vim) that have the same effect:

  • set guifont=DejaVu\ Sans\ Mono:h11
  • set linespace=4

Development

The NeovimConnector class is used to setup the connection to Neovim. It also provides you with low level methods for RPC - in general you should be using the signals/slots in the QObject returned by NeovimConnector::neovimObject()

  1. To call a function call the corresponding slot
  2. The result of the call is delivered by the corresponding signal, by convention these signals are named 'on_' + slot_name
  3. The Neovim() class is automagically generated from the Neovim metadata
  4. For Neovim functions that take the Object type we use QVariant
  5. To catch Neovim Notifications connect to the Neovim::neovimNotification signal

To Update the RPC bindings

Part of the code is auto-generated by calling Neovim to get the API metadata, and generating C++ code. This is done using a python script (generate_bindings.py) if you just want to use neovim-qt as is you don't need to worry about this, I already include the generated code in the repository.

The bindings source templates are stored under the bindings/ folder the generated code is in src/auto/.

To generate the bindings yourself you need

  • python
  • python-msgpack
  • jinja2

Just run make bindings in Unix or the equivalent build command in Windows.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].