u/TheSaasDev

The problem with Pi is its extension system

Honestly, I love Pi, and I'm going to keep using it. But the extension system is painful when it comes to using multiple different extensions that conflict with each other when they really don't have to conflict. They only conflict because of how the extension system is designed.

The only way to have a smooth experience using extensions is to write your own or to carefully choose one over another and accept the tradeoff when you really shouldn't have to.

Prime example, want nice edit tool rendering? Use pi-tool-display. But you can't if you want to use a hashline edit extension.

I feel like one of 2 things need to happen for Pi to really take off and become the neovim of harnesses (because at least to me, that's what it feels like it wants to be).

Either:

  1. The extension system is overhauled to allow coexistence. Examples, separate the tool rendering layer and the tool execution layer, allow request/response style communication between extensions (not just event bus)

  2. Extension writers do not focus on writing an extension that registers things like tools, but instead exporting APIs and such that others can install and compose themselves in their own extension. So you can for example compose hashline editing with nice edit tool rendering.

Thoughts?

PS: Maybe this has already been discussed a lot, but I haven't seen much of it. I'm kinda new here.

reddit.com
u/TheSaasDev — 2 days ago