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:
Justin M. Keyes
2024-09-20 07:34:50 +02:00
parent 5acdc4499e
commit 737f58e232
77 changed files with 606 additions and 622 deletions

View File

@@ -43,9 +43,9 @@ describe('vim_to_object', function()
simple_test('converts empty string', '')
simple_test('converts non-empty string', 'foobar')
simple_test('converts integer 10', { [type_key] = int_type, value = 10 })
simple_test('converts empty dictionary', {})
simple_test('converts dictionary with scalar values', { test = 10, test2 = true, test3 = 'test' })
simple_test('converts dictionary with containers inside', { test = {}, test2 = { 1, 2 } })
simple_test('converts empty dict', {})
simple_test('converts dict with scalar values', { test = 10, test2 = true, test3 = 'test' })
simple_test('converts dict with containers inside', { test = {}, test2 = { 1, 2 } })
simple_test('converts empty list', { [type_key] = list_type })
simple_test('converts list with scalar values', { 1, 2, 'test', 'foo' })
simple_test(

View File

@@ -35,10 +35,10 @@ local function init_obj2lua_tab()
end
return ret
end,
[tonumber(api.kObjectTypeDictionary)] = function(obj)
[tonumber(api.kObjectTypeDict)] = function(obj)
local ret = {}
for i = 1, tonumber(obj.data.dictionary.size) do
local kv_pair = obj.data.dictionary.items[i - 1]
for i = 1, tonumber(obj.data.dict.size) do
local kv_pair = obj.data.dict.items[i - 1]
ret[ffi.string(kv_pair.key.data, kv_pair.key.size)] = obj2lua(kv_pair.value)
end
return ret
@@ -112,8 +112,8 @@ local lua2obj_type_tab = {
end
end
local len = #kvs
local dct = obj(api.kObjectTypeDictionary, {
dictionary = {
local dct = obj(api.kObjectTypeDict, {
dict = {
size = len,
capacity = len,
items = ffi.cast('KeyValuePair *', api.xmalloc(len * ffi.sizeof('KeyValuePair'))),
@@ -121,7 +121,7 @@ local lua2obj_type_tab = {
})
for i = 1, len do
local key, val = unpack(kvs[i])
dct.data.dictionary.items[i - 1] = ffi.new(
dct.data.dict.items[i - 1] = ffi.new(
'KeyValuePair',
{ key = ffi.gc(lua2obj(key), nil).data.string, value = ffi.gc(lua2obj(val), nil) }
)