mirror of
https://github.com/neovim/neovim.git
synced 2025-09-28 05:58:33 +00:00
refactor(api)!: rename Dictionary => Dict
In the api_info() output: :new|put =map(filter(api_info().functions, '!has_key(v:val,''deprecated_since'')'), 'v:val') ... {'return_type': 'ArrayOf(Integer, 2)', 'name': 'nvim_win_get_position', 'method': v:true, 'parameters': [['Window', 'window']], 'since': 1} The `ArrayOf(Integer, 2)` return type didn't break clients when we added it, which is evidence that clients don't use the `return_type` field, thus renaming Dictionary => Dict in api_info() is not (in practice) a breaking change.
This commit is contained in:
@@ -67,7 +67,7 @@ static int64_t next_autocmd_id = 1;
|
||||
/// NOTE: When multiple patterns or events are provided, it will find all the autocommands that
|
||||
/// match any combination of them.
|
||||
///
|
||||
/// @param opts Dictionary with at least one of the following:
|
||||
/// @param opts Dict with at least one of the following:
|
||||
/// - group (string|integer): the autocommand group name or id to match against.
|
||||
/// - event (string|array): event or events to match against |autocmd-events|.
|
||||
/// - pattern (string|array): pattern or patterns to match against |autocmd-pattern|.
|
||||
@@ -270,7 +270,7 @@ Array nvim_get_autocmds(Dict(get_autocmds) *opts, Arena *arena, Error *err)
|
||||
}
|
||||
}
|
||||
|
||||
Dictionary autocmd_info = arena_dict(arena, 11);
|
||||
Dict autocmd_info = arena_dict(arena, 11);
|
||||
|
||||
if (ap->group != AUGROUP_DEFAULT) {
|
||||
PUT_C(autocmd_info, "group", INTEGER_OBJ(ap->group));
|
||||
@@ -334,7 +334,7 @@ Array nvim_get_autocmds(Dict(get_autocmds) *opts, Arena *arena, Error *err)
|
||||
// PUT_C(autocmd_info, "sid", INTEGER_OBJ(ac->script_ctx.sc_sid));
|
||||
// PUT_C(autocmd_info, "lnum", INTEGER_OBJ(ac->script_ctx.sc_lnum));
|
||||
|
||||
kvi_push(autocmd_list, DICTIONARY_OBJ(autocmd_info));
|
||||
kvi_push(autocmd_list, DICT_OBJ(autocmd_info));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -621,7 +621,7 @@ void nvim_clear_autocmds(Dict(clear_autocmds) *opts, Arena *arena, Error *err)
|
||||
/// ```
|
||||
///
|
||||
/// @param name String: The name of the group
|
||||
/// @param opts Dictionary Parameters
|
||||
/// @param opts Dict Parameters
|
||||
/// - clear (bool) optional: defaults to true. Clear existing
|
||||
/// commands if the group already exists |autocmd-groups|.
|
||||
/// @return Integer id of the created group.
|
||||
@@ -686,7 +686,7 @@ void nvim_del_augroup_by_name(String name, Error *err)
|
||||
/// Execute all autocommands for {event} that match the corresponding
|
||||
/// {opts} |autocmd-execute|.
|
||||
/// @param event (String|Array) The event or events to execute
|
||||
/// @param opts Dictionary of autocommand options:
|
||||
/// @param opts Dict of autocommand options:
|
||||
/// - group (string|integer) optional: the autocommand group name or
|
||||
/// id to match against. |autocmd-groups|.
|
||||
/// - pattern (string|array) optional: defaults to "*" |autocmd-pattern|. Cannot be used
|
||||
|
@@ -866,7 +866,7 @@ Integer nvim_buf_get_changedtick(Buffer buffer, Error *err)
|
||||
/// @param[out] err Error details, if any
|
||||
/// @returns Array of |maparg()|-like dictionaries describing mappings.
|
||||
/// The "buffer" key holds the associated buffer handle.
|
||||
ArrayOf(Dictionary) nvim_buf_get_keymap(Buffer buffer, String mode, Arena *arena, Error *err)
|
||||
ArrayOf(Dict) nvim_buf_get_keymap(Buffer buffer, String mode, Arena *arena, Error *err)
|
||||
FUNC_API_SINCE(3)
|
||||
{
|
||||
buf_T *buf = find_buffer_by_handle(buffer, err);
|
||||
@@ -1221,14 +1221,14 @@ Object nvim_buf_call(Buffer buffer, LuaRef fun, Error *err)
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
Dictionary nvim__buf_stats(Buffer buffer, Arena *arena, Error *err)
|
||||
Dict nvim__buf_stats(Buffer buffer, Arena *arena, Error *err)
|
||||
{
|
||||
buf_T *buf = find_buffer_by_handle(buffer, err);
|
||||
if (!buf) {
|
||||
return (Dictionary)ARRAY_DICT_INIT;
|
||||
return (Dict)ARRAY_DICT_INIT;
|
||||
}
|
||||
|
||||
Dictionary rv = arena_dict(arena, 7);
|
||||
Dict rv = arena_dict(arena, 7);
|
||||
// Number of times the cached line was flushed.
|
||||
// This should generally not increase while editing the same
|
||||
// line in the same mode.
|
||||
|
@@ -46,7 +46,7 @@
|
||||
/// @param str Command line string to parse. Cannot contain "\n".
|
||||
/// @param opts Optional parameters. Reserved for future use.
|
||||
/// @param[out] err Error details, if any.
|
||||
/// @return Dictionary containing command information, with these keys:
|
||||
/// @return Dict containing command information, with these keys:
|
||||
/// - cmd: (string) Command name.
|
||||
/// - range: (array) (optional) Command range ([<line1>] [<line2>]).
|
||||
/// Omitted if command doesn't accept a range.
|
||||
@@ -63,13 +63,13 @@
|
||||
/// - nargs: (string) Value of |:command-nargs|.
|
||||
/// - nextcmd: (string) Next command if there are multiple commands separated by a |:bar|.
|
||||
/// Empty if there isn't a next command.
|
||||
/// - magic: (dictionary) Which characters have special meaning in the command arguments.
|
||||
/// - magic: (dict) Which characters have special meaning in the command arguments.
|
||||
/// - file: (boolean) The command expands filenames. Which means characters such as "%",
|
||||
/// "#" and wildcards are expanded.
|
||||
/// - bar: (boolean) The "|" character is treated as a command separator and the double
|
||||
/// quote character (") is treated as the start of a comment.
|
||||
/// - mods: (dictionary) |:command-modifiers|.
|
||||
/// - filter: (dictionary) |:filter|.
|
||||
/// - mods: (dict) |:command-modifiers|.
|
||||
/// - filter: (dict) |:filter|.
|
||||
/// - pattern: (string) Filter pattern. Empty string if there is no filter.
|
||||
/// - force: (boolean) Whether filter is inverted or not.
|
||||
/// - silent: (boolean) |:silent|.
|
||||
@@ -230,12 +230,12 @@ Dict(cmd) nvim_parse_cmd(String str, Dict(empty) *opts, Arena *arena, Error *err
|
||||
PUT_KEY(result, cmd, nextcmd, CSTR_AS_OBJ(ea.nextcmd));
|
||||
|
||||
// TODO(bfredl): nested keydict would be nice..
|
||||
Dictionary mods = arena_dict(arena, 20);
|
||||
Dict mods = arena_dict(arena, 20);
|
||||
|
||||
Dictionary filter = arena_dict(arena, 2);
|
||||
Dict filter = arena_dict(arena, 2);
|
||||
PUT_C(filter, "pattern", CSTR_TO_ARENA_OBJ(arena, cmdinfo.cmdmod.cmod_filter_pat));
|
||||
PUT_C(filter, "force", BOOLEAN_OBJ(cmdinfo.cmdmod.cmod_filter_force));
|
||||
PUT_C(mods, "filter", DICTIONARY_OBJ(filter));
|
||||
PUT_C(mods, "filter", DICT_OBJ(filter));
|
||||
|
||||
PUT_C(mods, "silent", BOOLEAN_OBJ(cmdinfo.cmdmod.cmod_flags & CMOD_SILENT));
|
||||
PUT_C(mods, "emsg_silent", BOOLEAN_OBJ(cmdinfo.cmdmod.cmod_flags & CMOD_ERRSILENT));
|
||||
@@ -272,7 +272,7 @@ Dict(cmd) nvim_parse_cmd(String str, Dict(empty) *opts, Arena *arena, Error *err
|
||||
|
||||
PUT_KEY(result, cmd, mods, mods);
|
||||
|
||||
Dictionary magic = arena_dict(arena, 2);
|
||||
Dict magic = arena_dict(arena, 2);
|
||||
PUT_C(magic, "file", BOOLEAN_OBJ(cmdinfo.magic.file));
|
||||
PUT_C(magic, "bar", BOOLEAN_OBJ(cmdinfo.magic.bar));
|
||||
PUT_KEY(result, cmd, magic, magic);
|
||||
@@ -284,7 +284,7 @@ end:
|
||||
|
||||
/// Executes an Ex command.
|
||||
///
|
||||
/// Unlike |nvim_command()| this command takes a structured Dictionary instead of a String. This
|
||||
/// Unlike |nvim_command()| this command takes a structured Dict instead of a String. This
|
||||
/// allows for easier construction and manipulation of an Ex command. This also allows for things
|
||||
/// such as having spaces inside a command argument, expanding filenames in a command that otherwise
|
||||
/// doesn't expand filenames, etc. Command arguments may also be Number, Boolean or String.
|
||||
@@ -298,7 +298,7 @@ end:
|
||||
/// @see |nvim_exec2()|
|
||||
/// @see |nvim_command()|
|
||||
///
|
||||
/// @param cmd Command to execute. Must be a Dictionary that can contain the same values as
|
||||
/// @param cmd Command to execute. Must be a Dict that can contain the same values as
|
||||
/// the return value of |nvim_parse_cmd()| except "addr", "nargs" and "nextcmd"
|
||||
/// which are ignored if provided. All values except for "cmd" are optional.
|
||||
/// @param opts Optional parameters.
|
||||
@@ -1166,7 +1166,7 @@ err:
|
||||
/// @param[out] err Error details, if any.
|
||||
///
|
||||
/// @returns Map of maps describing commands.
|
||||
Dictionary nvim_get_commands(Dict(get_commands) *opts, Arena *arena, Error *err)
|
||||
Dict nvim_get_commands(Dict(get_commands) *opts, Arena *arena, Error *err)
|
||||
FUNC_API_SINCE(4)
|
||||
{
|
||||
return nvim_buf_get_commands(-1, opts, arena, err);
|
||||
@@ -1179,25 +1179,25 @@ Dictionary nvim_get_commands(Dict(get_commands) *opts, Arena *arena, Error *err)
|
||||
/// @param[out] err Error details, if any.
|
||||
///
|
||||
/// @returns Map of maps describing commands.
|
||||
Dictionary nvim_buf_get_commands(Buffer buffer, Dict(get_commands) *opts, Arena *arena, Error *err)
|
||||
Dict nvim_buf_get_commands(Buffer buffer, Dict(get_commands) *opts, Arena *arena, Error *err)
|
||||
FUNC_API_SINCE(4)
|
||||
{
|
||||
bool global = (buffer == -1);
|
||||
if (ERROR_SET(err)) {
|
||||
return (Dictionary)ARRAY_DICT_INIT;
|
||||
return (Dict)ARRAY_DICT_INIT;
|
||||
}
|
||||
|
||||
if (global) {
|
||||
if (opts->builtin) {
|
||||
api_set_error(err, kErrorTypeValidation, "builtin=true not implemented");
|
||||
return (Dictionary)ARRAY_DICT_INIT;
|
||||
return (Dict)ARRAY_DICT_INIT;
|
||||
}
|
||||
return commands_array(NULL, arena);
|
||||
}
|
||||
|
||||
buf_T *buf = find_buffer_by_handle(buffer, err);
|
||||
if (opts->builtin || !buf) {
|
||||
return (Dictionary)ARRAY_DICT_INIT;
|
||||
return (Dict)ARRAY_DICT_INIT;
|
||||
}
|
||||
return commands_array(buf, arena);
|
||||
}
|
||||
|
@@ -183,11 +183,11 @@ Integer nvim_buf_set_virtual_text(Buffer buffer, Integer src_id, Integer line, A
|
||||
/// @param[out] err Error details, if any
|
||||
/// @return Highlight definition map
|
||||
/// @see nvim_get_hl_by_name
|
||||
Dictionary nvim_get_hl_by_id(Integer hl_id, Boolean rgb, Arena *arena, Error *err)
|
||||
Dict nvim_get_hl_by_id(Integer hl_id, Boolean rgb, Arena *arena, Error *err)
|
||||
FUNC_API_SINCE(3)
|
||||
FUNC_API_DEPRECATED_SINCE(9)
|
||||
{
|
||||
Dictionary dic = ARRAY_DICT_INIT;
|
||||
Dict dic = ARRAY_DICT_INIT;
|
||||
VALIDATE_INT((syn_get_final_id((int)hl_id) != 0), "highlight id", hl_id, {
|
||||
return dic;
|
||||
});
|
||||
@@ -204,11 +204,11 @@ Dictionary nvim_get_hl_by_id(Integer hl_id, Boolean rgb, Arena *arena, Error *er
|
||||
/// @param[out] err Error details, if any
|
||||
/// @return Highlight definition map
|
||||
/// @see nvim_get_hl_by_id
|
||||
Dictionary nvim_get_hl_by_name(String name, Boolean rgb, Arena *arena, Error *err)
|
||||
Dict nvim_get_hl_by_name(String name, Boolean rgb, Arena *arena, Error *err)
|
||||
FUNC_API_SINCE(3)
|
||||
FUNC_API_DEPRECATED_SINCE(9)
|
||||
{
|
||||
Dictionary result = ARRAY_DICT_INIT;
|
||||
Dict result = ARRAY_DICT_INIT;
|
||||
int id = syn_name2id(name.data);
|
||||
|
||||
VALIDATE_S((id != 0), "highlight name", name.data, {
|
||||
@@ -515,7 +515,7 @@ static int64_t convert_index(int64_t index)
|
||||
/// @param name Option name
|
||||
/// @param[out] err Error details, if any
|
||||
/// @return Option Information
|
||||
Dictionary nvim_get_option_info(String name, Arena *arena, Error *err)
|
||||
Dict nvim_get_option_info(String name, Arena *arena, Error *err)
|
||||
FUNC_API_SINCE(7)
|
||||
FUNC_API_DEPRECATED_SINCE(11)
|
||||
{
|
||||
|
@@ -74,10 +74,10 @@ Integer nvim_create_namespace(String name)
|
||||
/// Gets existing, non-anonymous |namespace|s.
|
||||
///
|
||||
/// @return dict that maps from names to namespace ids.
|
||||
Dictionary nvim_get_namespaces(Arena *arena)
|
||||
Dict nvim_get_namespaces(Arena *arena)
|
||||
FUNC_API_SINCE(5)
|
||||
{
|
||||
Dictionary retval = arena_dict(arena, map_size(&namespace_ids));
|
||||
Dict retval = arena_dict(arena, map_size(&namespace_ids));
|
||||
String name;
|
||||
handle_T id;
|
||||
|
||||
@@ -158,7 +158,7 @@ static Array extmark_to_array(MTPair extmark, bool id, bool add_dict, bool hl_na
|
||||
if (add_dict) {
|
||||
// TODO(bfredl): coding the size like this is a bit fragile.
|
||||
// We want ArrayOf(Dict(set_extmark)) as the return type..
|
||||
Dictionary dict = arena_dict(arena, ARRAY_SIZE(set_extmark_table));
|
||||
Dict dict = arena_dict(arena, ARRAY_SIZE(set_extmark_table));
|
||||
|
||||
PUT_C(dict, "ns_id", INTEGER_OBJ((Integer)start.ns));
|
||||
|
||||
@@ -183,7 +183,7 @@ static Array extmark_to_array(MTPair extmark, bool id, bool add_dict, bool hl_na
|
||||
|
||||
decor_to_dict_legacy(&dict, mt_decor(start), hl_name, arena);
|
||||
|
||||
ADD_C(rv, DICTIONARY_OBJ(dict));
|
||||
ADD_C(rv, DICT_OBJ(dict));
|
||||
}
|
||||
|
||||
return rv;
|
||||
|
@@ -275,8 +275,8 @@ typedef struct {
|
||||
String reg;
|
||||
Boolean bang;
|
||||
Array args;
|
||||
Dictionary magic;
|
||||
Dictionary mods;
|
||||
Dict magic;
|
||||
Dict mods;
|
||||
Object nargs;
|
||||
Object addr;
|
||||
Object nextcmd;
|
||||
@@ -293,7 +293,7 @@ typedef struct {
|
||||
Boolean silent;
|
||||
Boolean emsg_silent;
|
||||
Boolean unsilent;
|
||||
Dictionary filter;
|
||||
Dict filter;
|
||||
Boolean sandbox;
|
||||
Boolean noautocmd;
|
||||
Boolean browse;
|
||||
|
@@ -256,13 +256,13 @@ void nvim_set_option_value(uint64_t channel_id, String name, Object value, Dict(
|
||||
|
||||
/// Gets the option information for all options.
|
||||
///
|
||||
/// The dictionary has the full option names as keys and option metadata
|
||||
/// dictionaries as detailed at |nvim_get_option_info2()|.
|
||||
/// The dict has the full option names as keys and option metadata dicts as detailed at
|
||||
/// |nvim_get_option_info2()|.
|
||||
///
|
||||
/// @see |nvim_get_commands()|
|
||||
///
|
||||
/// @return dictionary of all options
|
||||
Dictionary nvim_get_all_options_info(Arena *arena, Error *err)
|
||||
/// @return dict of all options
|
||||
Dict nvim_get_all_options_info(Arena *arena, Error *err)
|
||||
FUNC_API_SINCE(7)
|
||||
{
|
||||
return get_all_vimoptions(arena);
|
||||
@@ -270,7 +270,7 @@ Dictionary nvim_get_all_options_info(Arena *arena, Error *err)
|
||||
|
||||
/// Gets the option information for one option from arbitrary buffer or window
|
||||
///
|
||||
/// Resulting dictionary has keys:
|
||||
/// Resulting dict has keys:
|
||||
/// - name: Name of the option (like 'filetype')
|
||||
/// - shortname: Shortened name of the option (like 'ft')
|
||||
/// - type: type of option ("string", "number" or "boolean")
|
||||
@@ -301,7 +301,7 @@ Dictionary nvim_get_all_options_info(Arena *arena, Error *err)
|
||||
/// Implies {scope} is "local".
|
||||
/// @param[out] err Error details, if any
|
||||
/// @return Option Information
|
||||
Dictionary nvim_get_option_info2(String name, Dict(option) *opts, Arena *arena, Error *err)
|
||||
Dict nvim_get_option_info2(String name, Dict(option) *opts, Arena *arena, Error *err)
|
||||
FUNC_API_SINCE(11)
|
||||
{
|
||||
OptIndex opt_idx = 0;
|
||||
@@ -310,7 +310,7 @@ Dictionary nvim_get_option_info2(String name, Dict(option) *opts, Arena *arena,
|
||||
void *from = NULL;
|
||||
if (!validate_option_value_args(opts, name.data, &opt_idx, &scope, &req_scope, &from, NULL,
|
||||
err)) {
|
||||
return (Dictionary)ARRAY_DICT_INIT;
|
||||
return (Dict)ARRAY_DICT_INIT;
|
||||
}
|
||||
|
||||
buf_T *buf = (req_scope == kOptReqBuf) ? (buf_T *)from : curbuf;
|
||||
|
@@ -94,8 +94,7 @@ static Object typval_cbuf_to_obj(EncodedData *edata, const char *data, size_t le
|
||||
kvi_push(edata->stack, ARRAY_OBJ(((Array) { .capacity = 0, .size = 0 })))
|
||||
|
||||
#define TYPVAL_ENCODE_CONV_EMPTY_DICT(tv, dict) \
|
||||
kvi_push(edata->stack, \
|
||||
DICTIONARY_OBJ(((Dictionary) { .capacity = 0, .size = 0 })))
|
||||
kvi_push(edata->stack, DICT_OBJ(((Dict) { .capacity = 0, .size = 0 })))
|
||||
|
||||
static inline void typval_encode_list_start(EncodedData *const edata, const size_t len)
|
||||
FUNC_ATTR_ALWAYS_INLINE FUNC_ATTR_NONNULL_ALL
|
||||
@@ -137,7 +136,7 @@ static inline void typval_encode_list_end(EncodedData *const edata)
|
||||
static inline void typval_encode_dict_start(EncodedData *const edata, const size_t len)
|
||||
FUNC_ATTR_ALWAYS_INLINE FUNC_ATTR_NONNULL_ALL
|
||||
{
|
||||
kvi_push(edata->stack, DICTIONARY_OBJ(arena_dict(edata->arena, len)));
|
||||
kvi_push(edata->stack, DICT_OBJ(arena_dict(edata->arena, len)));
|
||||
}
|
||||
|
||||
#define TYPVAL_ENCODE_CONV_DICT_START(tv, dict, len) \
|
||||
@@ -152,13 +151,13 @@ static inline void typval_encode_after_key(EncodedData *const edata)
|
||||
{
|
||||
Object key = kv_pop(edata->stack);
|
||||
Object *const dict = &kv_last(edata->stack);
|
||||
assert(dict->type == kObjectTypeDictionary);
|
||||
assert(dict->data.dictionary.size < dict->data.dictionary.capacity);
|
||||
assert(dict->type == kObjectTypeDict);
|
||||
assert(dict->data.dict.size < dict->data.dict.capacity);
|
||||
if (key.type == kObjectTypeString) {
|
||||
dict->data.dictionary.items[dict->data.dictionary.size].key
|
||||
dict->data.dict.items[dict->data.dict.size].key
|
||||
= key.data.string;
|
||||
} else {
|
||||
dict->data.dictionary.items[dict->data.dictionary.size].key
|
||||
dict->data.dict.items[dict->data.dict.size].key
|
||||
= STATIC_CSTR_AS_STRING("__INVALID_KEY__");
|
||||
}
|
||||
}
|
||||
@@ -171,9 +170,9 @@ static inline void typval_encode_between_dict_items(EncodedData *const edata)
|
||||
{
|
||||
Object val = kv_pop(edata->stack);
|
||||
Object *const dict = &kv_last(edata->stack);
|
||||
assert(dict->type == kObjectTypeDictionary);
|
||||
assert(dict->data.dictionary.size < dict->data.dictionary.capacity);
|
||||
dict->data.dictionary.items[dict->data.dictionary.size++].value = val;
|
||||
assert(dict->type == kObjectTypeDict);
|
||||
assert(dict->data.dict.size < dict->data.dict.capacity);
|
||||
dict->data.dict.items[dict->data.dict.size++].value = val;
|
||||
}
|
||||
|
||||
#define TYPVAL_ENCODE_CONV_DICT_BETWEEN_ITEMS(tv, dict) \
|
||||
@@ -185,7 +184,7 @@ static inline void typval_encode_dict_end(EncodedData *const edata)
|
||||
typval_encode_between_dict_items(edata);
|
||||
#ifndef NDEBUG
|
||||
const Object *const dict = &kv_last(edata->stack);
|
||||
assert(dict->data.dictionary.size == dict->data.dictionary.capacity);
|
||||
assert(dict->data.dict.size == dict->data.dict.capacity);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -325,11 +324,11 @@ void object_to_vim_take_luaref(Object *obj, typval_T *tv, bool take_luaref, Erro
|
||||
break;
|
||||
}
|
||||
|
||||
case kObjectTypeDictionary: {
|
||||
case kObjectTypeDict: {
|
||||
dict_T *const dict = tv_dict_alloc();
|
||||
|
||||
for (uint32_t i = 0; i < obj->data.dictionary.size; i++) {
|
||||
KeyValuePair *item = &obj->data.dictionary.items[i];
|
||||
for (uint32_t i = 0; i < obj->data.dict.size; i++) {
|
||||
KeyValuePair *item = &obj->data.dict.items[i];
|
||||
String key = item->key;
|
||||
dictitem_T *const di = tv_dict_item_alloc(key.data);
|
||||
object_to_vim_take_luaref(&item->value, &di->di_tv, take_luaref, err);
|
||||
|
@@ -17,7 +17,7 @@
|
||||
|
||||
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
||||
# define ArrayOf(...) Array
|
||||
# define DictionaryOf(...) Dictionary
|
||||
# define DictOf(...) Dict
|
||||
# define Dict(name) KeyDict_##name
|
||||
# define DictHash(name) KeyDict_##name##_get_field
|
||||
# define DictKey(name)
|
||||
@@ -88,7 +88,7 @@ typedef struct object Object;
|
||||
typedef kvec_t(Object) Array;
|
||||
|
||||
typedef struct key_value_pair KeyValuePair;
|
||||
typedef kvec_t(KeyValuePair) Dictionary;
|
||||
typedef kvec_t(KeyValuePair) Dict;
|
||||
|
||||
typedef kvec_t(String) StringArray;
|
||||
|
||||
@@ -99,7 +99,7 @@ typedef enum {
|
||||
kObjectTypeFloat,
|
||||
kObjectTypeString,
|
||||
kObjectTypeArray,
|
||||
kObjectTypeDictionary,
|
||||
kObjectTypeDict,
|
||||
kObjectTypeLuaRef,
|
||||
// EXT types, cannot be split or reordered, see #EXT_OBJECT_TYPE_SHIFT
|
||||
kObjectTypeBuffer,
|
||||
@@ -127,7 +127,7 @@ struct object {
|
||||
Float floating;
|
||||
String string;
|
||||
Array array;
|
||||
Dictionary dictionary;
|
||||
Dict dict;
|
||||
LuaRef luaref;
|
||||
} data;
|
||||
};
|
||||
|
@@ -198,7 +198,7 @@ dictitem_T *dict_check_writable(dict_T *dict, String key, bool del, Error *err)
|
||||
api_set_error(err, kErrorTypeException, "Key is fixed: %s", key.data);
|
||||
}
|
||||
} else if (dict->dv_lock) {
|
||||
api_set_error(err, kErrorTypeException, "Dictionary is locked");
|
||||
api_set_error(err, kErrorTypeException, "Dict is locked");
|
||||
} else if (key.size == 0) {
|
||||
api_set_error(err, kErrorTypeValidation, "Key name is empty");
|
||||
} else if (key.size > INT_MAX) {
|
||||
@@ -551,9 +551,9 @@ Array arena_array(Arena *arena, size_t max_size)
|
||||
return arr;
|
||||
}
|
||||
|
||||
Dictionary arena_dict(Arena *arena, size_t max_size)
|
||||
Dict arena_dict(Arena *arena, size_t max_size)
|
||||
{
|
||||
Dictionary dict = ARRAY_DICT_INIT;
|
||||
Dict dict = ARRAY_DICT_INIT;
|
||||
kv_fixsize_arena(arena, dict, max_size);
|
||||
return dict;
|
||||
}
|
||||
@@ -596,8 +596,8 @@ void api_free_object(Object value)
|
||||
api_free_array(value.data.array);
|
||||
break;
|
||||
|
||||
case kObjectTypeDictionary:
|
||||
api_free_dictionary(value.data.dictionary);
|
||||
case kObjectTypeDict:
|
||||
api_free_dict(value.data.dict);
|
||||
break;
|
||||
|
||||
case kObjectTypeLuaRef:
|
||||
@@ -615,7 +615,7 @@ void api_free_array(Array value)
|
||||
xfree(value.items);
|
||||
}
|
||||
|
||||
void api_free_dictionary(Dictionary value)
|
||||
void api_free_dict(Dict value)
|
||||
{
|
||||
for (size_t i = 0; i < value.size; i++) {
|
||||
api_free_string(value.items[i].key);
|
||||
@@ -648,7 +648,7 @@ Object api_metadata(void)
|
||||
Arena arena = ARENA_EMPTY;
|
||||
Error err = ERROR_INIT;
|
||||
metadata = unpack((char *)packed_api_metadata, sizeof(packed_api_metadata), &arena, &err);
|
||||
if (ERROR_SET(&err) || metadata.type != kObjectTypeDictionary) {
|
||||
if (ERROR_SET(&err) || metadata.type != kObjectTypeDict) {
|
||||
abort();
|
||||
}
|
||||
mem_for_metadata = arena_finish(&arena);
|
||||
@@ -684,9 +684,9 @@ Array copy_array(Array array, Arena *arena)
|
||||
return rv;
|
||||
}
|
||||
|
||||
Dictionary copy_dictionary(Dictionary dict, Arena *arena)
|
||||
Dict copy_dict(Dict dict, Arena *arena)
|
||||
{
|
||||
Dictionary rv = arena_dict(arena, dict.size);
|
||||
Dict rv = arena_dict(arena, dict.size);
|
||||
for (size_t i = 0; i < dict.size; i++) {
|
||||
KeyValuePair item = dict.items[i];
|
||||
PUT_C(rv, copy_string(item.key, arena).data, copy_object(item.value, arena));
|
||||
@@ -713,8 +713,8 @@ Object copy_object(Object obj, Arena *arena)
|
||||
case kObjectTypeArray:
|
||||
return ARRAY_OBJ(copy_array(obj.data.array, arena));
|
||||
|
||||
case kObjectTypeDictionary:
|
||||
return DICTIONARY_OBJ(copy_dictionary(obj.data.dictionary, arena));
|
||||
case kObjectTypeDict:
|
||||
return DICT_OBJ(copy_dict(obj.data.dict, arena));
|
||||
|
||||
case kObjectTypeLuaRef:
|
||||
return LUAREF_OBJ(api_new_luaref(obj.data.luaref));
|
||||
@@ -791,7 +791,7 @@ char *api_typename(ObjectType t)
|
||||
return "String";
|
||||
case kObjectTypeArray:
|
||||
return "Array";
|
||||
case kObjectTypeDictionary:
|
||||
case kObjectTypeDict:
|
||||
return "Dict";
|
||||
case kObjectTypeLuaRef:
|
||||
return "Function";
|
||||
@@ -844,7 +844,7 @@ free_exit:
|
||||
}
|
||||
|
||||
// see also nlua_pop_keydict for the lua specific implementation
|
||||
bool api_dict_to_keydict(void *retval, FieldHashfn hashy, Dictionary dict, Error *err)
|
||||
bool api_dict_to_keydict(void *retval, FieldHashfn hashy, Dict dict, Error *err)
|
||||
{
|
||||
for (size_t i = 0; i < dict.size; i++) {
|
||||
String k = dict.items[i].key;
|
||||
@@ -908,13 +908,13 @@ bool api_dict_to_keydict(void *retval, FieldHashfn hashy, Dictionary dict, Error
|
||||
return false;
|
||||
});
|
||||
*(Array *)mem = value->data.array;
|
||||
} else if (field->type == kObjectTypeDictionary) {
|
||||
Dictionary *val = (Dictionary *)mem;
|
||||
} else if (field->type == kObjectTypeDict) {
|
||||
Dict *val = (Dict *)mem;
|
||||
// allow empty array as empty dict for lua (directly or via lua-client RPC)
|
||||
if (value->type == kObjectTypeArray && value->data.array.size == 0) {
|
||||
*val = (Dictionary)ARRAY_DICT_INIT;
|
||||
} else if (value->type == kObjectTypeDictionary) {
|
||||
*val = value->data.dictionary;
|
||||
*val = (Dict)ARRAY_DICT_INIT;
|
||||
} else if (value->type == kObjectTypeDict) {
|
||||
*val = value->data.dict;
|
||||
} else {
|
||||
api_err_exp(err, field->str, api_typename((ObjectType)field->type),
|
||||
api_typename(value->type));
|
||||
@@ -941,9 +941,9 @@ bool api_dict_to_keydict(void *retval, FieldHashfn hashy, Dictionary dict, Error
|
||||
return true;
|
||||
}
|
||||
|
||||
Dictionary api_keydict_to_dict(void *value, KeySetLink *table, size_t max_size, Arena *arena)
|
||||
Dict api_keydict_to_dict(void *value, KeySetLink *table, size_t max_size, Arena *arena)
|
||||
{
|
||||
Dictionary rv = arena_dict(arena, max_size);
|
||||
Dict rv = arena_dict(arena, max_size);
|
||||
for (size_t i = 0; table[i].str; i++) {
|
||||
KeySetLink *field = &table[i];
|
||||
bool is_set = true;
|
||||
@@ -971,8 +971,8 @@ Dictionary api_keydict_to_dict(void *value, KeySetLink *table, size_t max_size,
|
||||
val = STRING_OBJ(*(String *)mem);
|
||||
} else if (field->type == kObjectTypeArray) {
|
||||
val = ARRAY_OBJ(*(Array *)mem);
|
||||
} else if (field->type == kObjectTypeDictionary) {
|
||||
val = DICTIONARY_OBJ(*(Dictionary *)mem);
|
||||
} else if (field->type == kObjectTypeDict) {
|
||||
val = DICT_OBJ(*(Dict *)mem);
|
||||
} else if (field->type == kObjectTypeBuffer || field->type == kObjectTypeWindow
|
||||
|| field->type == kObjectTypeTabpage) {
|
||||
val.data.integer = *(handle_T *)mem;
|
||||
@@ -1002,8 +1002,8 @@ void api_luarefs_free_object(Object value)
|
||||
api_luarefs_free_array(value.data.array);
|
||||
break;
|
||||
|
||||
case kObjectTypeDictionary:
|
||||
api_luarefs_free_dict(value.data.dictionary);
|
||||
case kObjectTypeDict:
|
||||
api_luarefs_free_dict(value.data.dict);
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -1019,8 +1019,8 @@ void api_luarefs_free_keydict(void *dict, KeySetLink *table)
|
||||
api_luarefs_free_object(*(Object *)mem);
|
||||
} else if (table[i].type == kObjectTypeLuaRef) {
|
||||
api_free_luaref(*(LuaRef *)mem);
|
||||
} else if (table[i].type == kObjectTypeDictionary) {
|
||||
api_luarefs_free_dict(*(Dictionary *)mem);
|
||||
} else if (table[i].type == kObjectTypeDict) {
|
||||
api_luarefs_free_dict(*(Dict *)mem);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1032,7 +1032,7 @@ void api_luarefs_free_array(Array value)
|
||||
}
|
||||
}
|
||||
|
||||
void api_luarefs_free_dict(Dictionary value)
|
||||
void api_luarefs_free_dict(Dict value)
|
||||
{
|
||||
for (size_t i = 0; i < value.size; i++) {
|
||||
api_luarefs_free_object(value.items[i].value);
|
||||
|
@@ -53,9 +53,9 @@
|
||||
.type = kObjectTypeArray, \
|
||||
.data.array = a })
|
||||
|
||||
#define DICTIONARY_OBJ(d) ((Object) { \
|
||||
.type = kObjectTypeDictionary, \
|
||||
.data.dictionary = d })
|
||||
#define DICT_OBJ(d) ((Object) { \
|
||||
.type = kObjectTypeDict, \
|
||||
.data.dict = d })
|
||||
|
||||
#define LUAREF_OBJ(r) ((Object) { \
|
||||
.type = kObjectTypeLuaRef, \
|
||||
@@ -90,7 +90,7 @@
|
||||
name.items = name##__items; \
|
||||
|
||||
#define MAXSIZE_TEMP_DICT(name, maxsize) \
|
||||
Dictionary name = ARRAY_DICT_INIT; \
|
||||
Dict name = ARRAY_DICT_INIT; \
|
||||
KeyValuePair name##__items[maxsize]; \
|
||||
name.capacity = maxsize; \
|
||||
name.items = name##__items; \
|
||||
@@ -121,7 +121,7 @@ typedef kvec_withinit_t(Object, 16) ArrayBuilder;
|
||||
#define api_init_tabpage
|
||||
#define api_init_object = NIL
|
||||
#define api_init_array = ARRAY_DICT_INIT
|
||||
#define api_init_dictionary = ARRAY_DICT_INIT
|
||||
#define api_init_dict = ARRAY_DICT_INIT
|
||||
|
||||
#define KEYDICT_INIT { 0 }
|
||||
|
||||
|
@@ -42,7 +42,7 @@
|
||||
|
||||
#define VALIDATE_T(name, expected_t, actual_t, code) \
|
||||
do { \
|
||||
STATIC_ASSERT(expected_t != kObjectTypeDictionary, "use VALIDATE_T_DICT"); \
|
||||
STATIC_ASSERT(expected_t != kObjectTypeDict, "use VALIDATE_T_DICT"); \
|
||||
if (expected_t != actual_t) { \
|
||||
api_err_exp(err, name, api_typename(expected_t), api_typename(actual_t)); \
|
||||
code; \
|
||||
@@ -52,7 +52,7 @@
|
||||
/// Checks that `obj_` has type `expected_t`.
|
||||
#define VALIDATE_T2(obj_, expected_t, code) \
|
||||
do { \
|
||||
STATIC_ASSERT(expected_t != kObjectTypeDictionary, "use VALIDATE_T_DICT"); \
|
||||
STATIC_ASSERT(expected_t != kObjectTypeDict, "use VALIDATE_T_DICT"); \
|
||||
if ((obj_).type != expected_t) { \
|
||||
api_err_exp(err, STR(obj_), api_typename(expected_t), api_typename((obj_).type)); \
|
||||
code; \
|
||||
@@ -62,11 +62,11 @@
|
||||
/// Checks that `obj_` has Dict type. Also allows empty Array in a Lua context.
|
||||
#define VALIDATE_T_DICT(name, obj_, code) \
|
||||
do { \
|
||||
if ((obj_).type != kObjectTypeDictionary \
|
||||
if ((obj_).type != kObjectTypeDict \
|
||||
&& !(channel_id == LUA_INTERNAL_CALL \
|
||||
&& (obj_).type == kObjectTypeArray \
|
||||
&& (obj_).data.array.size == 0)) { \
|
||||
api_err_exp(err, name, api_typename(kObjectTypeDictionary), api_typename((obj_).type)); \
|
||||
api_err_exp(err, name, api_typename(kObjectTypeDict), api_typename((obj_).type)); \
|
||||
code; \
|
||||
} \
|
||||
} while (0)
|
||||
|
@@ -128,8 +128,7 @@ void remote_ui_wait_for_attach(bool only_stdio)
|
||||
/// @param height Requested screen rows
|
||||
/// @param options |ui-option| map
|
||||
/// @param[out] err Error details, if any
|
||||
void nvim_ui_attach(uint64_t channel_id, Integer width, Integer height, Dictionary options,
|
||||
Error *err)
|
||||
void nvim_ui_attach(uint64_t channel_id, Integer width, Integer height, Dict options, Error *err)
|
||||
FUNC_API_SINCE(1) FUNC_API_REMOTE_ONLY
|
||||
{
|
||||
if (map_has(uint64_t, &connected_uis, channel_id)) {
|
||||
@@ -687,8 +686,8 @@ void remote_ui_hl_attr_define(RemoteUI *ui, Integer id, HlAttrs rgb_attrs, HlAtt
|
||||
PUT_C(rgb, "url", CSTR_AS_OBJ(url));
|
||||
}
|
||||
|
||||
ADD_C(args, DICTIONARY_OBJ(rgb));
|
||||
ADD_C(args, DICTIONARY_OBJ(cterm));
|
||||
ADD_C(args, DICT_OBJ(rgb));
|
||||
ADD_C(args, DICT_OBJ(cterm));
|
||||
|
||||
if (ui->ui_ext[kUIHlState]) {
|
||||
ADD_C(args, ARRAY_OBJ(info));
|
||||
@@ -709,7 +708,7 @@ void remote_ui_highlight_set(RemoteUI *ui, int id)
|
||||
MAXSIZE_TEMP_DICT(dict, HLATTRS_DICT_SIZE);
|
||||
hlattrs2dict(&dict, NULL, syn_attr2entry(id), ui->rgb, false);
|
||||
MAXSIZE_TEMP_ARRAY(args, 1);
|
||||
ADD_C(args, DICTIONARY_OBJ(dict));
|
||||
ADD_C(args, DICT_OBJ(dict));
|
||||
push_call(ui, "highlight_set", args);
|
||||
}
|
||||
|
||||
@@ -920,11 +919,11 @@ static Array translate_contents(RemoteUI *ui, Array contents, Arena *arena)
|
||||
Array new_item = arena_array(arena, 2);
|
||||
int attr = (int)item.items[0].data.integer;
|
||||
if (attr) {
|
||||
Dictionary rgb_attrs = arena_dict(arena, HLATTRS_DICT_SIZE);
|
||||
Dict rgb_attrs = arena_dict(arena, HLATTRS_DICT_SIZE);
|
||||
hlattrs2dict(&rgb_attrs, NULL, syn_attr2entry(attr), ui->rgb, false);
|
||||
ADD_C(new_item, DICTIONARY_OBJ(rgb_attrs));
|
||||
ADD_C(new_item, DICT_OBJ(rgb_attrs));
|
||||
} else {
|
||||
ADD_C(new_item, DICTIONARY_OBJ((Dictionary)ARRAY_DICT_INIT));
|
||||
ADD_C(new_item, DICT_OBJ((Dict)ARRAY_DICT_INIT));
|
||||
}
|
||||
ADD_C(new_item, item.items[1]);
|
||||
ADD_C(new_contents, ARRAY_OBJ(new_item));
|
||||
|
@@ -117,7 +117,7 @@ Integer nvim_get_hl_id_by_name(String name)
|
||||
/// @param[out] err Error details, if any.
|
||||
/// @return Highlight groups as a map from group name to a highlight definition map as in |nvim_set_hl()|,
|
||||
/// or only a single highlight definition map if requested by name or id.
|
||||
Dictionary nvim_get_hl(Integer ns_id, Dict(get_highlight) *opts, Arena *arena, Error *err)
|
||||
Dict nvim_get_hl(Integer ns_id, Dict(get_highlight) *opts, Arena *arena, Error *err)
|
||||
FUNC_API_SINCE(11)
|
||||
{
|
||||
return ns_get_hl_defs((NS)ns_id, opts, arena, err);
|
||||
@@ -526,13 +526,13 @@ Object nvim_exec_lua(String code, Array args, Arena *arena, Error *err)
|
||||
/// @param log_level The log level
|
||||
/// @param opts Reserved for future use.
|
||||
/// @param[out] err Error details, if any
|
||||
Object nvim_notify(String msg, Integer log_level, Dictionary opts, Arena *arena, Error *err)
|
||||
Object nvim_notify(String msg, Integer log_level, Dict opts, Arena *arena, Error *err)
|
||||
FUNC_API_SINCE(7)
|
||||
{
|
||||
MAXSIZE_TEMP_ARRAY(args, 3);
|
||||
ADD_C(args, STRING_OBJ(msg));
|
||||
ADD_C(args, INTEGER_OBJ(log_level));
|
||||
ADD_C(args, DICTIONARY_OBJ(opts));
|
||||
ADD_C(args, DICT_OBJ(opts));
|
||||
|
||||
return NLUA_EXEC_STATIC("return vim.notify(...)", args, kRetObject, arena, err);
|
||||
}
|
||||
@@ -1350,10 +1350,10 @@ Integer nvim_get_color_by_name(String name)
|
||||
/// (e.g. 65535).
|
||||
///
|
||||
/// @return Map of color names and RGB values.
|
||||
Dictionary nvim_get_color_map(Arena *arena)
|
||||
Dict nvim_get_color_map(Arena *arena)
|
||||
FUNC_API_SINCE(1)
|
||||
{
|
||||
Dictionary colors = arena_dict(arena, ARRAY_SIZE(color_name_table));
|
||||
Dict colors = arena_dict(arena, ARRAY_SIZE(color_name_table));
|
||||
|
||||
for (int i = 0; color_name_table[i].name != NULL; i++) {
|
||||
PUT_C(colors, color_name_table[i].name, INTEGER_OBJ(color_name_table[i].color));
|
||||
@@ -1369,7 +1369,7 @@ Dictionary nvim_get_color_map(Arena *arena)
|
||||
/// @param[out] err Error details, if any
|
||||
///
|
||||
/// @return map of global |context|.
|
||||
Dictionary nvim_get_context(Dict(context) *opts, Arena *arena, Error *err)
|
||||
Dict nvim_get_context(Dict(context) *opts, Arena *arena, Error *err)
|
||||
FUNC_API_SINCE(6)
|
||||
{
|
||||
Array types = ARRAY_DICT_INIT;
|
||||
@@ -1396,7 +1396,7 @@ Dictionary nvim_get_context(Dict(context) *opts, Arena *arena, Error *err)
|
||||
int_types |= kCtxFuncs;
|
||||
} else {
|
||||
VALIDATE_S(false, "type", s, {
|
||||
return (Dictionary)ARRAY_DICT_INIT;
|
||||
return (Dict)ARRAY_DICT_INIT;
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1405,7 +1405,7 @@ Dictionary nvim_get_context(Dict(context) *opts, Arena *arena, Error *err)
|
||||
|
||||
Context ctx = CONTEXT_INIT;
|
||||
ctx_save(&ctx, int_types);
|
||||
Dictionary dict = ctx_to_dict(&ctx, arena);
|
||||
Dict dict = ctx_to_dict(&ctx, arena);
|
||||
ctx_free(&ctx);
|
||||
return dict;
|
||||
}
|
||||
@@ -1413,7 +1413,7 @@ Dictionary nvim_get_context(Dict(context) *opts, Arena *arena, Error *err)
|
||||
/// Sets the current editor state from the given |context| map.
|
||||
///
|
||||
/// @param dict |Context| map.
|
||||
Object nvim_load_context(Dictionary dict, Error *err)
|
||||
Object nvim_load_context(Dict dict, Error *err)
|
||||
FUNC_API_SINCE(6)
|
||||
{
|
||||
Context ctx = CONTEXT_INIT;
|
||||
@@ -1435,11 +1435,11 @@ Object nvim_load_context(Dictionary dict, Error *err)
|
||||
/// Gets the current mode. |mode()|
|
||||
/// "blocking" is true if Nvim is waiting for input.
|
||||
///
|
||||
/// @returns Dictionary { "mode": String, "blocking": Boolean }
|
||||
Dictionary nvim_get_mode(Arena *arena)
|
||||
/// @returns Dict { "mode": String, "blocking": Boolean }
|
||||
Dict nvim_get_mode(Arena *arena)
|
||||
FUNC_API_SINCE(2) FUNC_API_FAST
|
||||
{
|
||||
Dictionary rv = arena_dict(arena, 2);
|
||||
Dict rv = arena_dict(arena, 2);
|
||||
char *modestr = arena_alloc(arena, MODE_MAX_LENGTH, false);
|
||||
get_mode(modestr);
|
||||
bool blocked = input_blocking();
|
||||
@@ -1455,7 +1455,7 @@ Dictionary nvim_get_mode(Arena *arena)
|
||||
/// @param mode Mode short-name ("n", "i", "v", ...)
|
||||
/// @returns Array of |maparg()|-like dictionaries describing mappings.
|
||||
/// The "buffer" key is always zero.
|
||||
ArrayOf(Dictionary) nvim_get_keymap(String mode, Arena *arena)
|
||||
ArrayOf(Dict) nvim_get_keymap(String mode, Arena *arena)
|
||||
FUNC_API_SINCE(3)
|
||||
{
|
||||
return keymap_array(mode, NULL, arena);
|
||||
@@ -1514,7 +1514,7 @@ void nvim_del_keymap(uint64_t channel_id, String mode, String lhs, Error *err)
|
||||
}
|
||||
|
||||
/// Returns a 2-tuple (Array), where item 0 is the current channel id and item
|
||||
/// 1 is the |api-metadata| map (Dictionary).
|
||||
/// 1 is the |api-metadata| map (Dict).
|
||||
///
|
||||
/// @returns 2-tuple `[{channel-id}, {api-metadata}]`
|
||||
Array nvim_get_api_info(uint64_t channel_id, Arena *arena)
|
||||
@@ -1543,7 +1543,7 @@ Array nvim_get_api_info(uint64_t channel_id, Arena *arena)
|
||||
///
|
||||
/// @param channel_id
|
||||
/// @param name Short name for the connected client
|
||||
/// @param version Dictionary describing the version, with these
|
||||
/// @param version Dict describing the version, with these
|
||||
/// (optional) keys:
|
||||
/// - "major" major version (defaults to 0 if not set, for no release yet)
|
||||
/// - "minor" minor version
|
||||
@@ -1582,8 +1582,8 @@ Array nvim_get_api_info(uint64_t channel_id, Arena *arena)
|
||||
/// .png or .svg format is preferred.
|
||||
///
|
||||
/// @param[out] err Error details, if any
|
||||
void nvim_set_client_info(uint64_t channel_id, String name, Dictionary version, String type,
|
||||
Dictionary methods, Dictionary attributes, Arena *arena, Error *err)
|
||||
void nvim_set_client_info(uint64_t channel_id, String name, Dict version, String type, Dict methods,
|
||||
Dict attributes, Arena *arena, Error *err)
|
||||
FUNC_API_SINCE(4) FUNC_API_REMOTE_ONLY
|
||||
{
|
||||
MAXSIZE_TEMP_DICT(info, 5);
|
||||
@@ -1597,7 +1597,7 @@ void nvim_set_client_info(uint64_t channel_id, String name, Dictionary version,
|
||||
}
|
||||
}
|
||||
if (!has_major) {
|
||||
Dictionary v = arena_dict(arena, version.size + 1);
|
||||
Dict v = arena_dict(arena, version.size + 1);
|
||||
if (version.size) {
|
||||
memcpy(v.items, version.items, version.size * sizeof(v.items[0]));
|
||||
v.size = version.size;
|
||||
@@ -1605,13 +1605,13 @@ void nvim_set_client_info(uint64_t channel_id, String name, Dictionary version,
|
||||
PUT_C(v, "major", INTEGER_OBJ(0));
|
||||
version = v;
|
||||
}
|
||||
PUT_C(info, "version", DICTIONARY_OBJ(version));
|
||||
PUT_C(info, "version", DICT_OBJ(version));
|
||||
|
||||
PUT_C(info, "type", STRING_OBJ(type));
|
||||
PUT_C(info, "methods", DICTIONARY_OBJ(methods));
|
||||
PUT_C(info, "attributes", DICTIONARY_OBJ(attributes));
|
||||
PUT_C(info, "methods", DICT_OBJ(methods));
|
||||
PUT_C(info, "attributes", DICT_OBJ(attributes));
|
||||
|
||||
rpc_set_client_info(channel_id, copy_dictionary(info, NULL));
|
||||
rpc_set_client_info(channel_id, copy_dict(info, NULL));
|
||||
}
|
||||
|
||||
/// Gets information about a channel.
|
||||
@@ -1636,11 +1636,11 @@ void nvim_set_client_info(uint64_t channel_id, String name, Dictionary version,
|
||||
/// - "client" (optional) Info about the peer (client on the other end of the RPC channel),
|
||||
/// which it provided via |nvim_set_client_info()|.
|
||||
///
|
||||
Dictionary nvim_get_chan_info(uint64_t channel_id, Integer chan, Arena *arena, Error *err)
|
||||
Dict nvim_get_chan_info(uint64_t channel_id, Integer chan, Arena *arena, Error *err)
|
||||
FUNC_API_SINCE(4)
|
||||
{
|
||||
if (chan < 0) {
|
||||
return (Dictionary)ARRAY_DICT_INIT;
|
||||
return (Dict)ARRAY_DICT_INIT;
|
||||
}
|
||||
|
||||
if (chan == 0 && !is_internal_call(channel_id)) {
|
||||
@@ -1737,17 +1737,17 @@ Array nvim__id_array(Array arr, Arena *arena)
|
||||
return copy_array(arr, arena);
|
||||
}
|
||||
|
||||
/// Returns dictionary given as argument.
|
||||
/// Returns dict given as argument.
|
||||
///
|
||||
/// This API function is used for testing. One should not rely on its presence
|
||||
/// in plugins.
|
||||
///
|
||||
/// @param[in] dct Dictionary to return.
|
||||
/// @param[in] dct Dict to return.
|
||||
///
|
||||
/// @return its argument.
|
||||
Dictionary nvim__id_dictionary(Dictionary dct, Arena *arena)
|
||||
Dict nvim__id_dict(Dict dct, Arena *arena)
|
||||
{
|
||||
return copy_dictionary(dct, arena);
|
||||
return copy_dict(dct, arena);
|
||||
}
|
||||
|
||||
/// Returns floating-point value given as argument.
|
||||
@@ -1766,9 +1766,9 @@ Float nvim__id_float(Float flt)
|
||||
/// Gets internal stats.
|
||||
///
|
||||
/// @return Map of various internal stats.
|
||||
Dictionary nvim__stats(Arena *arena)
|
||||
Dict nvim__stats(Arena *arena)
|
||||
{
|
||||
Dictionary rv = arena_dict(arena, 6);
|
||||
Dict rv = arena_dict(arena, 6);
|
||||
PUT_C(rv, "fsync", INTEGER_OBJ(g_stats.fsync));
|
||||
PUT_C(rv, "log_skip", INTEGER_OBJ(g_stats.log_skip));
|
||||
PUT_C(rv, "lua_refcount", INTEGER_OBJ(nlua_get_global_ref_count()));
|
||||
@@ -1845,8 +1845,8 @@ Object nvim_get_proc(Integer pid, Arena *arena, Error *err)
|
||||
});
|
||||
|
||||
#ifdef MSWIN
|
||||
rvobj = DICTIONARY_OBJ(os_proc_info((int)pid, arena));
|
||||
if (rvobj.data.dictionary.size == 0) { // Process not found.
|
||||
rvobj = DICT_OBJ(os_proc_info((int)pid, arena));
|
||||
if (rvobj.data.dict.size == 0) { // Process not found.
|
||||
return NIL;
|
||||
}
|
||||
#else
|
||||
@@ -1856,7 +1856,7 @@ Object nvim_get_proc(Integer pid, Arena *arena, Error *err)
|
||||
Object o = NLUA_EXEC_STATIC("return vim._os_proc_info(...)", a, kRetObject, arena, err);
|
||||
if (o.type == kObjectTypeArray && o.data.array.size == 0) {
|
||||
return NIL; // Process not found.
|
||||
} else if (o.type == kObjectTypeDictionary) {
|
||||
} else if (o.type == kObjectTypeDict) {
|
||||
rvobj = o;
|
||||
} else if (!ERROR_SET(err)) {
|
||||
api_set_error(err, kErrorTypeException,
|
||||
@@ -1920,7 +1920,7 @@ Array nvim__inspect_cell(Integer grid, Integer row, Integer col, Arena *arena, E
|
||||
schar_get(sc_buf, g->chars[off]);
|
||||
ADD_C(ret, CSTR_AS_OBJ(sc_buf));
|
||||
int attr = g->attrs[off];
|
||||
ADD_C(ret, DICTIONARY_OBJ(hl_get_attr_by_id(attr, true, arena, err)));
|
||||
ADD_C(ret, DICT_OBJ(hl_get_attr_by_id(attr, true, arena, err)));
|
||||
// will not work first time
|
||||
if (!highlight_use_hlstate()) {
|
||||
ADD_C(ret, ARRAY_OBJ(hl_inspect(attr, arena)));
|
||||
@@ -2063,18 +2063,18 @@ Array nvim_get_mark(String name, Dict(empty) *opts, Arena *arena, Error *err)
|
||||
/// - use_statuscol_lnum: (number) Evaluate statuscolumn for this line number instead of statusline.
|
||||
///
|
||||
/// @param[out] err Error details, if any.
|
||||
/// @return Dictionary containing statusline information, with these keys:
|
||||
/// @return Dict containing statusline information, with these keys:
|
||||
/// - str: (string) Characters that will be displayed on the statusline.
|
||||
/// - width: (number) Display width of the statusline.
|
||||
/// - highlights: Array containing highlight information of the statusline. Only included when
|
||||
/// the "highlights" key in {opts} is true. Each element of the array is a
|
||||
/// |Dictionary| with these keys:
|
||||
/// |Dict| with these keys:
|
||||
/// - start: (number) Byte index (0-based) of first character that uses the highlight.
|
||||
/// - group: (string) Name of highlight group.
|
||||
Dictionary nvim_eval_statusline(String str, Dict(eval_statusline) *opts, Arena *arena, Error *err)
|
||||
Dict nvim_eval_statusline(String str, Dict(eval_statusline) *opts, Arena *arena, Error *err)
|
||||
FUNC_API_SINCE(8) FUNC_API_FAST
|
||||
{
|
||||
Dictionary result = ARRAY_DICT_INIT;
|
||||
Dict result = ARRAY_DICT_INIT;
|
||||
|
||||
int maxwidth;
|
||||
schar_T fillchar = 0;
|
||||
@@ -2200,18 +2200,18 @@ Dictionary nvim_eval_statusline(String str, Dict(eval_statusline) *opts, Arena *
|
||||
// If first character doesn't have a defined highlight,
|
||||
// add the default highlight at the beginning of the highlight list
|
||||
if (hltab->start == NULL || (hltab->start - buf) != 0) {
|
||||
Dictionary hl_info = arena_dict(arena, 2);
|
||||
Dict hl_info = arena_dict(arena, 2);
|
||||
const char *grpname = get_default_stl_hl(opts->use_tabline ? NULL : wp,
|
||||
opts->use_winbar, stc_hl_id);
|
||||
|
||||
PUT_C(hl_info, "start", INTEGER_OBJ(0));
|
||||
PUT_C(hl_info, "group", CSTR_AS_OBJ(grpname));
|
||||
|
||||
ADD_C(hl_values, DICTIONARY_OBJ(hl_info));
|
||||
ADD_C(hl_values, DICT_OBJ(hl_info));
|
||||
}
|
||||
|
||||
for (stl_hlrec_t *sp = hltab; sp->start != NULL; sp++) {
|
||||
Dictionary hl_info = arena_dict(arena, 2);
|
||||
Dict hl_info = arena_dict(arena, 2);
|
||||
|
||||
PUT_C(hl_info, "start", INTEGER_OBJ(sp->start - buf));
|
||||
|
||||
@@ -2225,7 +2225,7 @@ Dictionary nvim_eval_statusline(String str, Dict(eval_statusline) *opts, Arena *
|
||||
grpname = arena_memdupz(arena, user_group, strlen(user_group));
|
||||
}
|
||||
PUT_C(hl_info, "group", CSTR_AS_OBJ(grpname));
|
||||
ADD_C(hl_values, DICTIONARY_OBJ(hl_info));
|
||||
ADD_C(hl_values, DICT_OBJ(hl_info));
|
||||
}
|
||||
PUT_C(result, "highlights", ARRAY_OBJ(hl_values));
|
||||
}
|
||||
@@ -2251,12 +2251,12 @@ void nvim_error_event(uint64_t channel_id, Integer lvl, String data)
|
||||
/// @param index Completion candidate index
|
||||
/// @param opts Optional parameters.
|
||||
/// - info: (string) info text.
|
||||
/// @return Dictionary containing these keys:
|
||||
/// @return Dict containing these keys:
|
||||
/// - winid: (number) floating window id
|
||||
/// - bufnr: (number) buffer id in floating window
|
||||
Dictionary nvim__complete_set(Integer index, Dict(complete_set) *opts, Arena *arena)
|
||||
Dict nvim__complete_set(Integer index, Dict(complete_set) *opts, Arena *arena)
|
||||
{
|
||||
Dictionary rv = arena_dict(arena, 2);
|
||||
Dict rv = arena_dict(arena, 2);
|
||||
if (HAS_KEY(opts, complete_set, info)) {
|
||||
win_T *wp = pum_set_info((int)index, opts->info.data);
|
||||
if (wp) {
|
||||
|
@@ -48,12 +48,12 @@
|
||||
/// - output: (boolean, default false) Whether to capture and return
|
||||
/// all (non-error, non-shell |:!|) output.
|
||||
/// @param[out] err Error details (Vim error), if any
|
||||
/// @return Dictionary containing information about execution, with these keys:
|
||||
/// @return Dict containing information about execution, with these keys:
|
||||
/// - output: (string|nil) Output if `opts.output` is true.
|
||||
Dictionary nvim_exec2(uint64_t channel_id, String src, Dict(exec_opts) *opts, Error *err)
|
||||
Dict nvim_exec2(uint64_t channel_id, String src, Dict(exec_opts) *opts, Error *err)
|
||||
FUNC_API_SINCE(11) FUNC_API_RET_ALLOC
|
||||
{
|
||||
Dictionary result = ARRAY_DICT_INIT;
|
||||
Dict result = ARRAY_DICT_INIT;
|
||||
|
||||
String output = exec_impl(channel_id, src, opts, err);
|
||||
if (ERROR_SET(err)) {
|
||||
@@ -140,8 +140,7 @@ void nvim_command(String command, Error *err)
|
||||
try_end(err);
|
||||
}
|
||||
|
||||
/// Evaluates a Vimscript |expression|.
|
||||
/// Dictionaries and Lists are recursively expanded.
|
||||
/// Evaluates a Vimscript |expression|. Dicts and Lists are recursively expanded.
|
||||
///
|
||||
/// On execution error: fails with Vimscript error, updates v:errmsg.
|
||||
///
|
||||
@@ -270,7 +269,7 @@ Object nvim_call_function(String fn, Array args, Arena *arena, Error *err)
|
||||
///
|
||||
/// On execution error: fails with Vimscript error, updates v:errmsg.
|
||||
///
|
||||
/// @param dict Dictionary, or String evaluating to a Vimscript |self| dict
|
||||
/// @param dict Dict, or String evaluating to a Vimscript |self| dict
|
||||
/// @param fn Name of the function defined on the Vimscript dict
|
||||
/// @param args Function arguments packed in an Array
|
||||
/// @param[out] err Error details, if any
|
||||
@@ -297,12 +296,11 @@ Object nvim_call_dict_function(Object dict, String fn, Array args, Arena *arena,
|
||||
// refcount of a dict. Not necessary for a RPC dict.
|
||||
mustfree = true;
|
||||
break;
|
||||
case kObjectTypeDictionary:
|
||||
case kObjectTypeDict:
|
||||
object_to_vim(dict, &rettv, err);
|
||||
break;
|
||||
default:
|
||||
api_set_error(err, kErrorTypeValidation,
|
||||
"dict argument type must be String or Dictionary");
|
||||
api_set_error(err, kErrorTypeValidation, "dict argument type must be String or Dict");
|
||||
return rv;
|
||||
}
|
||||
dict_T *self_dict = rettv.vval.v_dict;
|
||||
@@ -311,7 +309,7 @@ Object nvim_call_dict_function(Object dict, String fn, Array args, Arena *arena,
|
||||
goto end;
|
||||
}
|
||||
|
||||
if (fn.data && fn.size > 0 && dict.type != kObjectTypeDictionary) {
|
||||
if (fn.data && fn.size > 0 && dict.type != kObjectTypeDict) {
|
||||
dictitem_T *const di = tv_dict_find(self_dict, fn.data, (ptrdiff_t)fn.size);
|
||||
if (di == NULL) {
|
||||
api_set_error(err, kErrorTypeValidation, "Not found: %s", fn.data);
|
||||
@@ -377,8 +375,8 @@ typedef kvec_withinit_t(ExprASTConvStackItem, 16) ExprASTConvStack;
|
||||
/// one should highlight region [start_col, end_col)).
|
||||
///
|
||||
/// @return
|
||||
/// - AST: top-level dictionary with these keys:
|
||||
/// - "error": Dictionary with error, present only if parser saw some
|
||||
/// - AST: top-level dict with these keys:
|
||||
/// - "error": Dict with error, present only if parser saw some
|
||||
/// error. Contains the following keys:
|
||||
/// - "message": String, error message in printf format, translated.
|
||||
/// Must contain exactly one "%.*s".
|
||||
@@ -387,7 +385,7 @@ typedef kvec_withinit_t(ExprASTConvStackItem, 16) ExprASTConvStack;
|
||||
/// that should be equal to the length of expr string.
|
||||
/// ("Successfully parsed" here means "participated in AST
|
||||
/// creation", not "till the first error".)
|
||||
/// - "ast": AST, either nil or a dictionary with these keys:
|
||||
/// - "ast": AST, either nil or a dict with these keys:
|
||||
/// - "type": node type, one of the value names from ExprASTNodeType
|
||||
/// stringified without "kExprNode" prefix.
|
||||
/// - "start": a pair `[line, column]` describing where node is "started"
|
||||
@@ -427,8 +425,7 @@ typedef kvec_withinit_t(ExprASTConvStackItem, 16) ExprASTConvStack;
|
||||
/// - "svalue": String, value for "SingleQuotedString" and
|
||||
/// "DoubleQuotedString" nodes.
|
||||
/// @param[out] err Error details, if any
|
||||
Dictionary nvim_parse_expression(String expr, String flags, Boolean highlight, Arena *arena,
|
||||
Error *err)
|
||||
Dict nvim_parse_expression(String expr, String flags, Boolean highlight, Arena *arena, Error *err)
|
||||
FUNC_API_SINCE(4) FUNC_API_FAST
|
||||
{
|
||||
int pflags = 0;
|
||||
@@ -443,11 +440,11 @@ Dictionary nvim_parse_expression(String expr, String flags, Boolean highlight, A
|
||||
case NUL:
|
||||
api_set_error(err, kErrorTypeValidation, "Invalid flag: '\\0' (%u)",
|
||||
(unsigned)flags.data[i]);
|
||||
return (Dictionary)ARRAY_DICT_INIT;
|
||||
return (Dict)ARRAY_DICT_INIT;
|
||||
default:
|
||||
api_set_error(err, kErrorTypeValidation, "Invalid flag: '%c' (%u)",
|
||||
flags.data[i], (unsigned)flags.data[i]);
|
||||
return (Dictionary)ARRAY_DICT_INIT;
|
||||
return (Dict)ARRAY_DICT_INIT;
|
||||
}
|
||||
}
|
||||
ParserLine parser_lines[] = {
|
||||
@@ -471,15 +468,15 @@ Dictionary nvim_parse_expression(String expr, String flags, Boolean highlight, A
|
||||
+ (size_t)highlight // "highlight"
|
||||
+ 0);
|
||||
|
||||
Dictionary ret = arena_dict(arena, ret_size);
|
||||
Dict ret = arena_dict(arena, ret_size);
|
||||
PUT_C(ret, "len", INTEGER_OBJ((Integer)(pstate.pos.line == 1
|
||||
? parser_lines[0].size
|
||||
: pstate.pos.col)));
|
||||
if (east.err.msg != NULL) {
|
||||
Dictionary err_dict = arena_dict(arena, 2);
|
||||
Dict err_dict = arena_dict(arena, 2);
|
||||
PUT_C(err_dict, "message", CSTR_TO_ARENA_OBJ(arena, east.err.msg));
|
||||
PUT_C(err_dict, "arg", CBUF_TO_ARENA_OBJ(arena, east.err.arg, (size_t)east.err.arg_len));
|
||||
PUT_C(ret, "error", DICTIONARY_OBJ(err_dict));
|
||||
PUT_C(ret, "error", DICT_OBJ(err_dict));
|
||||
}
|
||||
if (highlight) {
|
||||
Array hl = arena_array(arena, kv_size(colors));
|
||||
@@ -530,10 +527,10 @@ Dictionary nvim_parse_expression(String expr, String flags, Boolean highlight, A
|
||||
|| node->type == kExprNodeSingleQuotedString) // "svalue"
|
||||
+ (node->type == kExprNodeAssignment) // "augmentation"
|
||||
+ 0);
|
||||
Dictionary ret_node = arena_dict(arena, items_size);
|
||||
*cur_item.ret_node_p = DICTIONARY_OBJ(ret_node);
|
||||
Dict ret_node = arena_dict(arena, items_size);
|
||||
*cur_item.ret_node_p = DICT_OBJ(ret_node);
|
||||
}
|
||||
Dictionary *ret_node = &cur_item.ret_node_p->data.dictionary;
|
||||
Dict *ret_node = &cur_item.ret_node_p->data.dict;
|
||||
if (node->children != NULL) {
|
||||
const size_t num_children = 1 + (node->children->next != NULL);
|
||||
Array children_array = arena_array(arena, num_children);
|
||||
@@ -638,8 +635,7 @@ Dictionary nvim_parse_expression(String expr, String flags, Boolean highlight, A
|
||||
case kExprNodeMod:
|
||||
break;
|
||||
}
|
||||
assert(cur_item.ret_node_p->data.dictionary.size
|
||||
== cur_item.ret_node_p->data.dictionary.capacity);
|
||||
assert(cur_item.ret_node_p->data.dict.size == cur_item.ret_node_p->data.dict.capacity);
|
||||
xfree(*cur_item.node_p);
|
||||
*cur_item.node_p = NULL;
|
||||
}
|
||||
|
@@ -503,16 +503,15 @@ void nvim_win_set_hl_ns(Window window, Integer ns_id, Error *err)
|
||||
/// - end_vcol: Ending virtual column index on "end_row",
|
||||
/// 0-based exclusive, rounded up to full screen lines.
|
||||
/// When omitted include the whole line.
|
||||
/// @return Dictionary containing text height information, with these keys:
|
||||
/// @return Dict containing text height information, with these keys:
|
||||
/// - all: The total number of screen lines occupied by the range.
|
||||
/// - fill: The number of diff filler or virtual lines among them.
|
||||
///
|
||||
/// @see |virtcol()| for text width.
|
||||
Dictionary nvim_win_text_height(Window window, Dict(win_text_height) *opts, Arena *arena,
|
||||
Error *err)
|
||||
Dict nvim_win_text_height(Window window, Dict(win_text_height) *opts, Arena *arena, Error *err)
|
||||
FUNC_API_SINCE(12)
|
||||
{
|
||||
Dictionary rv = arena_dict(arena, 2);
|
||||
Dict rv = arena_dict(arena, 2);
|
||||
|
||||
win_T *const win = find_window_by_handle(window, err);
|
||||
if (!win) {
|
||||
|
Reference in New Issue
Block a user