mirror of
https://github.com/neovim/neovim.git
synced 2025-09-24 20:18:32 +00:00
provider: New module used to expose extension points for core services
Introducing the concept of providers: co-processes that talk with the editor through the remote API and provide implementation for one or more core services. The `provider_register` function and it's API wrapper can be used by channels that want to self-register as a service provider. Some old builtin vim features will be re-implemented as providers. The `provider_has_feature` function is used to check if a provider implementing a certain feature is available(It will be called by the `has` vimscript function to check for features in a vim-compatible way) This implements the provider module without exposing any extension points, which will be done in future commits.
This commit is contained in:
@@ -85,6 +85,7 @@
|
||||
#include "nvim/api/private/helpers.h"
|
||||
#include "nvim/os/msgpack_rpc_helpers.h"
|
||||
#include "nvim/os/dl.h"
|
||||
#include "nvim/os/provider.h"
|
||||
|
||||
#define DICT_MAXNEST 100 /* maximum nesting of lists and dicts */
|
||||
|
||||
@@ -9807,6 +9808,10 @@ static void f_has(typval_T *argvars, typval_T *rettv)
|
||||
}
|
||||
}
|
||||
|
||||
if (n == FALSE && provider_has_feature((char *)name)) {
|
||||
n = TRUE;
|
||||
}
|
||||
|
||||
rettv->vval.v_number = n;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user