lapce-plugin-rust icon indicating copy to clipboard operation
lapce-plugin-rust copied to clipboard

Hide pieces of the API

Open MinusGix opened this issue 1 year ago • 0 comments

There's various pieces of the API that should probably be hidden or made non-constructable.
Hiding functions would allow us to later replace or alter the code behind them without breaking 'good' plugins because they shouldn't be using them directly. Making some structures non-constructable would let us add fields in the future easily.

  • handle_rpc is an internal function, it should be #[doc(hidden)].
  • Ideally users should never have to use object_from_stdin/object_from_stdout. These should probably be internal, and we just pass the requests/notifications to the plugin.
  • parse_stdin should be hidden
  • Http should be made non-constructable (add a hidden empty marker field), just in case.
  • VoltEnvironment should be made non-constructable.
    • Really I think VoltEnvironment should have to be created if you want to use it.
    • Would let us cache values in the future.
  • PluginError should perhaps be #[non_exhaustive] in case we want to add other error kinds with types in the future.

MinusGix avatar Sep 07 '23 02:09 MinusGix