The VisiData ecosystem is growing, and it would be useful to have ways to teach people about it through the terminal.
@tsibley proposed in https://github.com/saulpw/visidata/pull/445:
Would you be receptive to helping folks discover plugins via status line suggestions?
e.g. "Install the vds3 plugin to read s3:// URLs."I'm thinking of situations like the one I ran into, where someone runs vd s3://foo/bar.csv and finds it doesn't work. If VisiData had prompted me to check out the plugin (instead of throwing a KeyError), that would have been really slick. I'd be willing to implement this, if you're receptive.
Additionally, educational messages can be added to the motd.
I love the idea of adding a default openurl_s3 that refers users to the vds3 plugin. Maybe we can find a good way to make it updateable apart from actual vd releases. Like if there were a provides column in plugins.tsv that had openurl_s3 in this case, and then vd created a stub for each of those that weren't already available.
That seems like a neat idea - so when checking for loaders, VisiData could do a fallback check for plugin recommendations based on that provides column before "really" giving up?
More like, if plugins.tsv is available (and maybe it should either be downloaded automatically like motd, or both could be combined into a larger vdnews.json or something), then on startup vd automatically creates stub provides functions if they don't already exist (i.e. the plugin hasn't been loaded):
def openurl_s3(*args):
fail("not available by default; you might want to install the vds3 plugin")
Ohhhh neat, that'd work nicely.
Is there anything left here for @saulpw to do, or is it up to the community now to add "provides" columns/stubs in for their plugins?
Kondo'ed.
Most helpful comment
I love the idea of adding a default
openurl_s3that refers users to the vds3 plugin. Maybe we can find a good way to make it updateable apart from actual vd releases. Like if there were aprovidescolumn in plugins.tsv that hadopenurl_s3in this case, and then vd created a stub for each of those that weren't already available.