mirror of
https://github.com/neovim/neovim.git
synced 2025-09-08 04:18:18 +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:
@@ -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);
|
||||
|
Reference in New Issue
Block a user