First draft of first RFC concerning layered_rpcs.
@lastorset ping - as requested on my blog. Very interested in your comments.
Here's the link to the rendered version A little easier to read.
I have some questions:
My thoughts on 16 bits for priority: I think it makes sense. In edge case you'd like each plugin to have distinct priority. And, say, 8 bits is not so much in this case: I currently have Emacs setup with nearly a hundred packages, so I can imagine somebody has > 255 of them. 16 bits is much more future-proof IMO, especially in case there would be an actual Swiboe server running remotely and servicing multiple users (not sure if that's in current design though).
Add clarifying thoughts about priorities.
@mmatyas Those are very good questions. I posted some clarifying thoughts in 6db81db. Mostly, my thoughts mirror @mkpankov's.
The idea of priorities came from UltiSnips. Before priorities, the order of when your snippets were loaded defined which snippet overwrote which other. This was problematic, because of lazy-loading of plugins, reversed orders of plugin path traversal for pathogen and vundle. now every snippet has a priority and order is clear.
Add one more paragraph about considered alternatives to priorities.
Typo: define -> defined
Ok, thanks for the explanation! What I'm afraid of is that many plugin creators may simply leave priority on default, and if that may cause problems. I wonder if you've got similar issues during working on UltiSnips?
I think leaving priorities at 0 is fine for most plugins anyways, so I am not worried about that. It is important that there is something that can be tweaked if there are collisions.
In UltiSnips I had one or two bug reports of people not getting the priority system, but none where it made problems. I think for the RPCs, priorities are a bit more intuitive than for snippets, so I think that will work out too.
Seems like there are no more comments on this RFC. I'll leave it open for now and will merge that in on the weekend if there are no more comments.
📌 Commit 5e6477c has been approved by SirVer
⌛️ Testing commit 5e6477c with merge fc308e0...
Auto merge of #30 - SirVer:rfc000_rpc, r=SirVer
RFC for the layered RPC system
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/swiboe/swiboe/30)
<!-- Reviewable:end -->
☀️ Test successful - status