mirror of
https://github.com/neovim/neovim.git
synced 2025-10-01 07:28:34 +00:00
api: api_info()['version']
API level is disconnected from NVIM version. The API metadata holds the current API level, and the lowest backwards-compatible level supported by this instance. Release 0.1.6 is the first release that reports the Nvim version and API level. metadata['version'] = { major: 0, minor: 1, patch: 6, api_level: 1, api_compatible: 0, api_prerelease: false, } The API level may remain unchanged across Nvim releases if the API has not changed. When changing the API, - set NVIM_API_PRERELEASE to true - increment NVIM_API_LEVEL (at most once per Nvim version) - adjust NVIM_API_LEVEL_COMPAT if backwards-compatibility was broken api_level_0.mpack was generated from Nvim 0.1.5 with: nvim --api-info
This commit is contained in:
@@ -18,9 +18,9 @@
|
||||
#include "nvim/map.h"
|
||||
#include "nvim/option.h"
|
||||
#include "nvim/option_defs.h"
|
||||
#include "nvim/version.h"
|
||||
#include "nvim/eval/typval_encode.h"
|
||||
#include "nvim/lib/kvec.h"
|
||||
#include "auto/versiondef.h"
|
||||
|
||||
/// Helper structure for vim_to_object
|
||||
typedef struct {
|
||||
@@ -764,10 +764,10 @@ Dictionary api_metadata(void)
|
||||
static Dictionary metadata = ARRAY_DICT_INIT;
|
||||
|
||||
if (!metadata.size) {
|
||||
PUT(metadata, "version", DICTIONARY_OBJ(version_dict()));
|
||||
init_function_metadata(&metadata);
|
||||
init_error_type_metadata(&metadata);
|
||||
init_type_metadata(&metadata);
|
||||
init_api_level_metadata(&metadata);
|
||||
}
|
||||
|
||||
return copy_object(DICTIONARY_OBJ(metadata)).data.dictionary;
|
||||
@@ -827,17 +827,6 @@ static void init_type_metadata(Dictionary *metadata)
|
||||
|
||||
PUT(*metadata, "types", DICTIONARY_OBJ(types));
|
||||
}
|
||||
static void init_api_level_metadata(Dictionary *metadata)
|
||||
{
|
||||
Dictionary version = ARRAY_DICT_INIT;
|
||||
PUT(version, "current", INTEGER_OBJ(NVIM_API_CURRENT));
|
||||
PUT(version, "compatibility", INTEGER_OBJ(NVIM_API_COMPATIBILITY));
|
||||
#ifdef NVIM_API_PRERELEASE
|
||||
PUT(version, "prerelease", BOOLEAN_OBJ(true));
|
||||
#endif
|
||||
|
||||
PUT(*metadata, "api_level", DICTIONARY_OBJ(version));
|
||||
}
|
||||
|
||||
/// Creates a deep clone of an object
|
||||
Object copy_object(Object obj)
|
||||
|
Reference in New Issue
Block a user