aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api/vim.c
diff options
context:
space:
mode:
authorThiago de Arruda <tpadilha84@gmail.com>2014-09-11 21:56:52 -0300
committerThiago de Arruda <tpadilha84@gmail.com>2014-09-12 13:50:07 -0300
commitcd2e46c0785d40b9ea15f6d722a3fad54c007b9b (patch)
tree57503e18a1a685545750748b7fc854cb6ec85062 /src/nvim/api/vim.c
parent15ca58d79f8cc8565c1a2b2581029cf7901b5fbd (diff)
downloadrneovim-cd2e46c0785d40b9ea15f6d722a3fad54c007b9b.tar.gz
rneovim-cd2e46c0785d40b9ea15f6d722a3fad54c007b9b.tar.bz2
rneovim-cd2e46c0785d40b9ea15f6d722a3fad54c007b9b.zip
api/msgpack-rpc: Refactor metadata object construction
Instead of building all metadata from msgpack-gen.lua, we now merge the generated part with manual information(such as types and features). The metadata is accessible through the api method `vim_get_api_info`. This was done to simplify the generator while also increasing flexibility(by being able to add more metadata)
Diffstat (limited to 'src/nvim/api/vim.c')
-rw-r--r--src/nvim/api/vim.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c
index 25454761ea..c0a9fe3410 100644
--- a/src/nvim/api/vim.c
+++ b/src/nvim/api/vim.c
@@ -528,10 +528,15 @@ void vim_register_provider(uint64_t channel_id, String feature, Error *err)
}
}
-/// Returns a feature->method list dictionary for all pluggable features
-Dictionary vim_discover_features(void)
+Array vim_get_api_info(uint64_t channel_id)
{
- return provider_get_all();
+ Array rv = ARRAY_DICT_INIT;
+
+ assert(channel_id <= INT64_MAX);
+ ADD(rv, INTEGER_OBJ((int64_t)channel_id));
+ ADD(rv, DICTIONARY_OBJ(api_metadata()));
+
+ return rv;
}
/// Writes a message to vim output or error buffer. The string is split