mirror of
https://github.com/neovim/neovim.git
synced 2024-12-24 05:05:00 -07:00
Updated Introduction (markdown)
parent
d44e51d335
commit
0f87fcd592
@ -46,7 +46,7 @@ motivations) that will be performed in the first iteration:
|
|||||||
* [Legacy support and compile-time features](#legacy)
|
* [Legacy support and compile-time features](#legacy)
|
||||||
* [Platform-specific code](#platform)
|
* [Platform-specific code](#platform)
|
||||||
* [Development on GitHub](#development)
|
* [Development on GitHub](#development)
|
||||||
* [New plugin architecture](https://github.com/neovim/neovim/wiki/Plugin-UI-architecture)
|
* [New plugin architecture](#new-plugin-architecture)
|
||||||
|
|
||||||
<a name="build"></a>
|
<a name="build"></a>
|
||||||
### Migrate to a CMake-based build
|
### Migrate to a CMake-based build
|
||||||
@ -93,27 +93,27 @@ community will be covered.
|
|||||||
|
|
||||||
[libuv]: https://github.com/joyent/libuv
|
[libuv]: https://github.com/joyent/libuv
|
||||||
|
|
||||||
<a name="plugins"></a>
|
|
||||||
### New plugin architecture
|
### New plugin architecture
|
||||||
|
|
||||||
All code supporting embedded scripting language interpreters will be replaced by
|
All code supporting embedded scripting language interpreters will be replaced by
|
||||||
a new plugin system that will support extensions written in any programming
|
a new plugin system that will support extensions written in any programming
|
||||||
language.
|
language.
|
||||||
|
|
||||||
Compatibility layers will be provided for vim plugins written in some of the
|
Compatibility layers will be provided for legacy Vim plugins written in some of the
|
||||||
currently supported scripting languages such as Python or Ruby. Most plugins
|
currently supported scripting languages such as Python or Ruby. Most plugins
|
||||||
should work on neovim with little modifications, if any.
|
should work on Neovim with little modifications, if any.
|
||||||
|
|
||||||
This is how the new plugin system will work:
|
This is how the Neovim plugin system works:
|
||||||
|
|
||||||
- Plugins are long-running programs/jobs (coprocesses) that communicate with vim
|
- Plugins are long-running programs/jobs (coprocesses) that communicate with vim
|
||||||
through stdin/stdout using msgpack-rpc or json-rpc.
|
through stdin/stdout using msgpack-rpc or json-rpc.
|
||||||
- Vim will discover and run these programs at startup, keeping two-way
|
- Neovim discovers and runs these programs at startup, keeping two-way
|
||||||
communication channels with each plugin through its lifetime.
|
communication channels with each plugin through its lifetime.
|
||||||
- Plugins will be able to listen to events and send commands to vim
|
- Plugins will be able to listen to events and send commands to vim
|
||||||
asynchronously.
|
asynchronously.
|
||||||
|
|
||||||
That shows a hypothetical conversation between neovim and a completion plugin
|
That shows a hypothetical conversation between Neovim and a completion plugin
|
||||||
which displays completions when the user presses Ctrl+Space. The above scheme
|
which displays completions when the user presses Ctrl+Space. The above scheme
|
||||||
gives neovim near limitless extensibility and also improves stability as plugins
|
gives neovim near limitless extensibility and also improves stability as plugins
|
||||||
will be automatically isolated from the main executable.
|
will be automatically isolated from the main executable.
|
||||||
|
Loading…
Reference in New Issue
Block a user