livebook-dev / kino

Client-driven interactive widgets for Livebook
Apache License 2.0
362 stars 60 forks source link

Add API for setting smart cell editor source and intellisense node #390

Closed jonatanklosko closed 7 months ago

jonatanklosko commented 7 months ago

Currently we set intellisense node through the client as ctx.setSmartCellEditorIntellisenseNode(node, cookie), but if there are multiple clients we run this for each of them, which doesn't really make sense. I added a new option to the smart cell init configuration, so we can do {:ok, ctx, [editor: [..., intellisense_node: ...]]}, which sets the initial value. Then, it can be updated with a new API reconfigure_smart_cell(ctx, editor: [intellisense_node: ...]).

I also added an option to programmatically set the smart cell source with reconfigure_smart_cell(ctx, editor: [source: ...]).