Skip to content

Annotated API _meta #3088

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Open
alex-courtis opened this issue Mar 23, 2025 · 1 comment
Open

Annotated API _meta #3088

alex-courtis opened this issue Mar 23, 2025 · 1 comment
Labels
API API or Event

Comments

@alex-courtis
Copy link
Member

api.lua exposes implementation details and does not contain all parameter and return types, notably nvim_tree.api.Node, which is currently defined in _meta/api.lua

Refactor api.lua to be an empty-function interface similar to /usr/share/nvim/runtime/lua/vim/lsp/diagnostic.lua and /usr/share/nvim/runtime/lua/vim/lsp/_meta/protocol.lua. /usr/share/nvim/runtime/lua/vim/_meta/api.lua is desirable, however that assumes that vim.api exists as a global i.e. not required.

See Api.decorator.UserDecorator for desired API shape.

A mechanism to hydrate the api with implementations must be built, so that the user may require it. There doesn't appear to be good prior art in other plugins; they link to implementations or stubs that confuse LSP.

See #2668

@alex-courtis
Copy link
Member Author

Classes should also be exposed e.g. nvim_tree.api.DirectoryNode so that users may test type. See #3090 (reply in thread)

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
API API or Event
Projects
None yet
Development

No branches or pull requests

1 participant