mirror of
https://github.com/neovim/neovim.git
synced 2025-09-08 20:38:18 +00:00
refactor(api): make typed dicts appear as types in the source code
problem: can we have Serde? solution: we have Serde at home This by itself is just a change of notation, that could be quickly merged to avoid messy merge conflicts, but upcoming changes are planned: - keysets no longer need to be defined in one single file. `keysets.h` is just the initial automatic conversion of the previous `keysets.lua`. keysets just used in a single api/{scope}.h can be moved to that file, later on. - Typed dicts will have more specific types than Object. this will enable most of the existing manual typechecking boilerplate to be eliminated. We will need some annotation for missing value, i e a boolean will need to be represented as a TriState (none/false/true) in some cases. - Eventually: optional parameters in form of a `Dict opts` final parameter will get added in some form to metadata. this will require a discussion/desicion about type forward compatibility.
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
|
||||
#include "klib/kvec.h"
|
||||
#include "msgpack/pack.h"
|
||||
#include "nvim/api/keysets.h"
|
||||
#include "nvim/api/private/helpers.h"
|
||||
#include "nvim/assert.h"
|
||||
#include "nvim/event/wstream.h"
|
||||
@@ -19,7 +20,6 @@
|
||||
#include "nvim/types.h"
|
||||
|
||||
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
||||
# include "keysets.generated.h" // IWYU pragma: export
|
||||
# include "msgpack_rpc/helpers.c.generated.h"
|
||||
#endif
|
||||
|
||||
|
Reference in New Issue
Block a user