-
Notifications
You must be signed in to change notification settings - Fork 28
Open
Description
Short-Term
- Update to latest neovim release
- Check if we can/should support other runtimes (I've some glib code lying around I could brush up... maybe others have arisen now?)
- Expose stderr #54
Mid-Term
- Consider making a difference between requests and notifications, and send out notifications with the proper message type, and don't wait for a response
- Does neovim actually recognize this? Read the docs! Maybe everything's a requests anyways, then don't bother
- It does, see https://neovim.io/doc/user/api.html#api-global-events. Maybe not so usefull since there seems little to do where you don't want direct error feedback
- Requests vs. Notifications #7
- Does neovim actually recognize this? Read the docs! Maybe everything's a requests anyways, then don't bother
Fuzzy goals
- Need more tests
- Test all connection types on all OSes
- Test exttypes
- Check https://docs.rs/loom/0.2.14/loom/
- Check rust's API guidelines
- More examples
Things to think about
- Could we reasonably offer a single-threaded API, i.e. doing away with Send and Sync? Don't want to duplicate it all, but since we're generating the neovim API automatically anyways, it might be feasible
- Consider logging
- Maybe tokio's tracing is an idea?
- Rewrite the API to be type save, and hide
rmpv::Valuefrom the user- Maybe hiding
rmpv::Valueisn't helpfull or needed? - Can probably be done for outgoing requests by recursively creating values
- Fixed args are easy, but something like
nvim_call_functionprobably needs going through a trait
- Fixed args are easy, but something like
- Incoming Responses can be done like fixed args
- Incoming Notifications/Requests might be impossible.
- Check out
rmp-serdeor so, so maybe the user has to just declare a struct
- Check out
- Strongly typed API #8
- Maybe hiding
Old stuff
- Figure out how plugins can quit
- Can we merge
RequesterintoNeovim? Could avoid doubling the API - Figure out what to do if the handler needs some cleanup logic
- Consider error handling
- Maybe get away from
Box<dyn Error>in favor of a small enum? - Error handling #6
- Maybe get away from
- Document the library
- I consider this done initially, from now on everything new should be directly documented, and we should be fine.
- We need Tokio right now. What can we do to stay "as generic as possible", so we can move to other executors when the possibility arrives?
- Use stuff from
futuresas far as possible. - See what we really need to expose from
crate::runtime
- Use stuff from
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels