Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Celest Plugin for IntelliJ and VS Code #34

Open
marcglasberg opened this issue Feb 8, 2024 · 6 comments
Open

Celest Plugin for IntelliJ and VS Code #34

marcglasberg opened this issue Feb 8, 2024 · 6 comments

Comments

@marcglasberg
Copy link

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: Version Migration and Backwards Compatibility #4 (when and if this is implemented)

Add more ideas in the comments below.

@abdallahshaban557
Copy link
Contributor

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?

@marcglasberg
Copy link
Author

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.

@dnys1
Copy link
Member

dnys1 commented Feb 8, 2024

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!

@marcglasberg
Copy link
Author

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

@marcglasberg
Copy link
Author

  • 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
Copy link
Author

  • 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 Allow Celest environment in the backend #47

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants