martanne / vis

A vi-like editor based on Plan 9's structural regular expressions
Other
4.26k stars 261 forks source link

Request: Add a command/control FIFO #535

Open RibalGZ opened 7 years ago

RibalGZ commented 7 years ago

I Would like to see some kind of support to send and receive messages through a FIFO file, like the dwmfifo patch does for DWM: http://dwm.suckless.org/patches/dwmfifo

This would allow us to script the vis behavior using any language in a simpler way.

I think that a possible behavior could be like this one:

ghost commented 7 years ago

Vis may get client-server design at some point. Maybe a FIFO could be the way to do this.

This can be relevant too: https://github.com/martanne/vis/issues/59

martanne commented 7 years ago

For starters FIFOs are unidirectional, we probably want to use Unix domain sockets for bidirectional communication.

I tend to think that a language agnostic RPC API is the the right way to tackle this. It could then be used to implement a textual protocol (as you seem to propose?), a FUSE or 9P based file system interface or whatever craziness you come up with.

Prerequisite for that is a global main loop and a sound model (or a conscious decision to ignore the problem) on how to handle concurrent changes. This was recently also touched on in #537. I'm not sure what yet another issue, besides those already linked, accomplishes?