diff options
| author | Justin M. Keyes <justinkz@gmail.com> | 2018-11-28 03:49:17 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-11-28 03:49:17 +0100 |
| commit | 0d1e5ec1b87fd810ddfbd3ab7300ef57ae65b485 (patch) | |
| tree | abe7eb197a69db5f0455031240bb06f73b0aa953 /runtime/doc/develop.txt | |
| parent | cf631aaed04925d37b7dcd7c30668fa32119da8e (diff) | |
| parent | 452cadb85a098df9fab5146c7accef3c853c23a2 (diff) | |
| download | rneovim-0d1e5ec1b87fd810ddfbd3ab7300ef57ae65b485.tar.gz rneovim-0d1e5ec1b87fd810ddfbd3ab7300ef57ae65b485.tar.bz2 rneovim-0d1e5ec1b87fd810ddfbd3ab7300ef57ae65b485.zip | |
Merge #9221 from justinmk/doc
Diffstat (limited to 'runtime/doc/develop.txt')
| -rw-r--r-- | runtime/doc/develop.txt | 48 |
1 files changed, 7 insertions, 41 deletions
diff --git a/runtime/doc/develop.txt b/runtime/doc/develop.txt index cd81236f32..bcf43142ad 100644 --- a/runtime/doc/develop.txt +++ b/runtime/doc/develop.txt @@ -6,19 +6,20 @@ Development of Nvim *development* -Nvim is open source software. Everybody is encouraged to contribute. - https://github.com/neovim/neovim/blob/master/CONTRIBUTING.md +This reference describes design constraints and guidelines, for developing +Nvim applications or Nvim itself. +Architecture and internal concepts are covered in src/nvim/README.md -See src/nvim/README.md for an overview of the source code. +Nvim is free and open source. Everybody is encouraged to contribute. + https://github.com/neovim/neovim/blob/master/CONTRIBUTING.md Type |gO| to see the table of contents. ============================================================================== Design goals *design-goals* -Most important things come first (roughly). - -Note that some items conflict; this is intentional. A balance must be found. +Most important things come first (roughly). Some items conflict; this is +intentional. A balance must be found. NVIM IS... IMPROVED *design-improved* @@ -81,41 +82,6 @@ include the kitchen sink... but it's good for plumbing." Developer guidelines *dev* -JARGON *dev-jargon* - -API client ~ -All external UIs and remote plugins (as opposed to regular Vim plugins) are -"clients" in general; but we call something an "API client" if its purpose is -to abstract or wrap the RPC API for the convenience of other applications -(just like a REST client or SDK such as boto3 for AWS: you can speak AWS REST -using an HTTP client like curl, but boto3 wraps that in a convenient python -interface). For example, the Nvim lua-client is an API client: - https://github.com/neovim/lua-client - -Host ~ -A plugin "host" is both a client (of the Nvim API) and a server (of an -external platform, e.g. python). It is a remote plugin that hosts other -plugins. - -Remote plugin ~ -Arbitrary code registered via |:UpdateRemotePlugins|, that runs in a separate -process and communicates with Nvim via the |api|. - -Window ~ -The word "window" is commonly used for several things: A window on the screen, -the xterm window, a window inside Vim to view a buffer. -To avoid confusion, other items that are sometimes called window have been -given another name. Here is an overview of the related items: - -screen The whole display. -shell The Vim application. This can cover the whole screen (e.g., - when running in a console) or part of it (xterm or GUI). -window View on a buffer. There can be several windows in Vim, - together with the command line, menubar, toolbar, etc. they - fit in the shell. -frame Windows are kept in a tree of frames. Each frame contains - a column, row, or window ("leaf" frame). - PROVIDERS *dev-provider* A goal of Nvim is to allow extension of the editor without special knowledge |