Justin M. Keyes 3ea1007753 api: nvim_get_mode()
Asynchronous API functions are served immediately, which means pending
input could change the state of Nvim shortly after an async API function
result is returned.

nvim_get_mode() is different:
  - If RPCs are known to be blocked, it responds immediately (without
    flushing the input/event queue)
  - else it is handled just-in-time before waiting for input, after
    pending input was processed. This makes the result more reliable
    (but not perfect).

Internally this is handled as a special case, but _semantically_ nothing
has changed: API users never know when input flushes, so this internal
special-case doesn't violate that. As far as API users are concerned,
nvim_get_mode() is just another asynchronous API function.

In all cases nvim_get_mode() never blocks for more than the time it
takes to flush the input/event queue (~µs).

Note: This doesn't address #6166; nvim_get_mode() will provoke #6166 if
e.g. `d` is operator-pending.

Closes #6159
2017-04-28 19:14:34 +02:00
2017-04-24 23:11:13 +03:00
2017-03-11 15:37:21 +01:00
2017-04-28 19:14:34 +02:00
2017-04-28 19:14:34 +02:00
2017-04-28 19:14:34 +02:00
2016-09-24 14:03:22 -04:00
2016-02-23 18:03:27 +09:00
2017-04-11 02:37:39 +02:00
2015-11-11 19:50:33 -08:00
2014-06-30 13:59:56 -04:00
2017-03-31 14:32:58 +02:00

Neovim

Wiki | Documentation | Twitter | Community | Gitter Chat

Travis Build Status AppVeyor Build status Pull requests waiting for review Coverage Status Coverity Scan Build Clang Scan Build Debian

Neovim is a project that seeks to aggressively refactor Vim in order to:

See the wiki and Roadmap for more information.

Throughput Graph

Install from source

make CMAKE_BUILD_TYPE=RelWithDebInfo
sudo make install

See the wiki for details.

Install from package

Packages are in Homebrew, Debian, Ubuntu, Fedora, Arch Linux, and more.

Project layout

  • ci/: Build server scripts
  • cmake/: Build scripts
  • runtime/: Application files
  • src/: Application source code
  • third-party/: CMake sub-project to build third-party dependencies (if the USE_BUNDLED_DEPS flag is undefined or USE_BUNDLED CMake option is false).
  • test/: Test files

What's been done so far

See :help nvim-features for a comprehensive list.

License

Neovim is licensed under the terms of the Apache 2.0 license, except for parts that were contributed under the Vim license.

  • Contributions committed before b17d96 remain under the Vim license.

  • Contributions committed after b17d96 are licensed under Apache 2.0 unless those contributions were copied from Vim (identified in the commit logs by the vim-patch token).

See LICENSE for details.

Vim is Charityware.  You can use and copy it as much as you like, but you are
encouraged to make a donation for needy children in Uganda.  Please see the
kcc section of the vim docs or visit the ICCF web site, available at these URLs:

        http://iccf-holland.org/
        http://www.vim.org/iccf/
        http://www.iccf.nl/

You can also sponsor the development of Vim.  Vim sponsors can vote for
features.  The money goes to Uganda anyway.
Description
No description provided
Readme 540 MiB
Languages
Vim Script 39.9%
Lua 32.5%
C 26.7%
CMake 0.4%
Zig 0.2%
Other 0.1%