celest icon indicating copy to clipboard operation
celest copied to clipboard

Celest Plugin for IntelliJ and VS Code

Open marcglasberg opened this issue 2 years ago • 6 comments

Feature ideas for a Celest Plugin for IntelliJ and VS Code

  • Start Celest and monitor if Celest is running or not.
  • Upload the backend to the Celest Server, and manage it.
  • View the Celest database schema and inspect its values (IntelliJ already allows viewing SQL databases, maybe all that's needed is a connector of some sort?).
  • Show a list of all functions in a list (and navigate to them).
  • Mark as errors (in the code editor) when models and exceptions use invalid types.
  • Show the serialized JSON for functions, models and exceptions.
  • Show version migration schema as explained here: https://github.com/celest-dev/celest/issues/4 (when and if this is implemented)

Add more ideas in the comments below.

marcglasberg avatar Feb 08 '24 03:02 marcglasberg

Thanks for submitting this feature request, Marcelo! The features here make sense, and we're chatting about how to best give this level of visibility to developers. We're not sure a plugin is the way to go yet. I'd love to understand from you more on why you would want to see the serialized JSON in your proposed plugin?

abdallahshaban557 avatar Feb 08 '24 04:02 abdallahshaban557

It doesn't need to be a plugin, it could be just a CLI command. But IDE Plugins are sometimes just a more usable way to access the CLI.

Being able to get the JSON specs for some of the Celest services can help me create API documentation when the Celest backend is meant to be a service accessed by third-parties, which is one of my use cases. Or better yet, maybe Celest could create the complete documentation for the services automatically.

But please consider this is a "brainstorming issue". Pay attention to the ideas you think are worth it and discard the rest.

marcglasberg avatar Feb 08 '24 16:02 marcglasberg

Thanks, @marcglasberg. I do like the idea of finding a better way to start/stop the Celest CLI. I think something like a plugin makes sense because it could lend itself to integration with the debug console, e.g. showing merged Celest/Flutter logs when running the app.

The alternative options in the CLI didn't excite me. For example, running celest start could just start the Celest analyzer in the background and exit immediately. The problem is that we would need another command like celest stop which you would need to remember to run yourself, and it would still be per-project. We would also need a new mechanism to expose errors.

Ultimately, though, I agree there is room for improvement and we are certainly not done innovating here!

dnys1 avatar Feb 08 '24 16:02 dnys1

  • Show backend logs (including function prints)
  • Show some very visible icon depending if Celest is running locally or in the cloud.

marcglasberg avatar Feb 10 '24 01:02 marcglasberg

  • In the IDE Editor, when I CTRL-click in the admin or doSomething from await celest.functions.admin.doSomething() it should navigate to the function definition, not to the generated function implementation.

marcglasberg avatar Feb 14 '24 23:02 marcglasberg

  • Since it's not possible to make celest only visible in the frontend, and celestBackend only visible in the backend, the plugin must take care of that by marking their wrong usages with an error. See https://github.com/celest-dev/celest/issues/47

marcglasberg avatar Mar 05 '24 00:03 marcglasberg