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

Wishlist: Cloud9 IDE Plugins (Integrate project-specific tools and processes) #30

Open
jankeromnes opened this Issue Sep 13, 2016 · 7 comments

Comments

Projects
None yet
3 participants
@jankeromnes
Member

jankeromnes commented Sep 13, 2016

Today, once you've created a contribution environment for a project (bootstrapping from scratch in less than 3 seconds), you're pretty much left on your own for the rest of the work to finish your contribution and get it merged into the project upstream.

It would be great to automate most of the contribution process, and let the Janitor take care of any repetitive or time-consuming workflow steps for you. This can be achieved by customizing Cloud9 IDE for any given project.

Here are the Cloud9 IDE plugins we would like to build for most Janitor projects:

  • Button to update the project's source code (and maybe rebase any local modifications on top)
  • Button to build the project from its sources
  • Button to run the project (for desktop projects like Firefox and Chromium, this implies a noVNC preview, e.g. with c9.ide.desktop)
  • Button to send your local modifications for code review (e.g. by uploading a patch and requesting feedback from someone qualified)
  • Push notifications (to let users know about IDE events like "Build successful", see the "Cloud9" part of #22, idea from @Coder206)
  • Show linting feedback in the editor (display project-specific compiler warnings / linting problems right next to offending code, use tools like clang-tidy, clangd (in review), rust language server (how to), rust-clippy, eslint, etc)
  • Show coverage feedback in the editor (show which portions of the code are not covered by any tests yet using code coverage tools like codecov.io, idea from @sylvestre)
  • Show review feedback in the editor (display comments from an associated code review directly in the editor for convenience, idea from @notriddle) @nt1m started working on implemented this.
  • Offer coding helpers in the editor (apply technologies like ctags and clang-tidy to allow symbolic navigation in the project's source code and offer powerful one-click fixes / refactors from the editor's UI, idea from @sylvestre)
  • Show a debugger front-end (to combine the clarity and speed of great UI with the power of gdb and rr)
  • Alphabetically sort any selection of lines

If you have another idea how the Janitor's IDE could be tuned to accelerate/empower your development on a project, please explain it below and I'll add it to the list.

EDIT: Here is a great video lecture by Harvard University on Cloud9 IDE and how to write plugins for it.

@Coder206

This comment has been minimized.

Show comment
Hide comment
@Coder206

Coder206 Sep 13, 2016

Member

@jankeromnes Could you please add my plugin to the list? (C9 push notification)

Member

Coder206 commented Sep 13, 2016

@jankeromnes Could you please add my plugin to the list? (C9 push notification)

@jankeromnes

This comment has been minimized.

Show comment
Hide comment
@jankeromnes

jankeromnes Sep 14, 2016

Member

@Coder206 Done! Please verify that I formulated this the right way.

Member

jankeromnes commented Sep 14, 2016

@Coder206 Done! Please verify that I formulated this the right way.

@Coder206

This comment has been minimized.

Show comment
Hide comment
@Coder206

Coder206 Sep 14, 2016

Member

@jankeromnes Looks great! Thank you so much! 😀

Member

Coder206 commented Sep 14, 2016

@jankeromnes Looks great! Thank you so much! 😀

@jankeromnes jankeromnes referenced this issue Oct 25, 2016

Open

Wishlist: User Configurations #29

8 of 17 tasks complete

@jankeromnes jankeromnes added the IDE label Nov 14, 2016

@jankeromnes jankeromnes changed the title from Optimizing Cloud9 IDE (Plugins Wishlist) to Integrate project-specific tools, services and workflows in the IDE (Cloud9 Plugins Wishlist) Feb 14, 2017

@jankeromnes jankeromnes changed the title from Integrate project-specific tools, services and workflows in the IDE (Cloud9 Plugins Wishlist) to Integrate project-specific tools and processes in the IDE (Cloud9 Plugins Wishlist) Feb 14, 2017

@jankeromnes jankeromnes changed the title from Integrate project-specific tools and processes in the IDE (Cloud9 Plugins Wishlist) to Wishlist: Cloud9 IDE Plugins (Integrate project-specific tools and processes) Mar 2, 2017

@jankeromnes

This comment has been minimized.

Show comment
Hide comment
@jankeromnes

jankeromnes Jun 29, 2017

Member

Note: We can configure Cloud9 IDE specifically for each project (e.g. Preview, Run, etc.) by doing something like this example configuration (thank you @ZeHiro !) cc @nt1m

Member

jankeromnes commented Jun 29, 2017

Note: We can configure Cloud9 IDE specifically for each project (e.g. Preview, Run, etc.) by doing something like this example configuration (thank you @ZeHiro !) cc @nt1m

@nt1m

This comment has been minimized.

Show comment
Hide comment
@nt1m
Member

nt1m commented Jul 5, 2017

Firefox configuration based on @ZeHiro 's config: https://gist.github.com/nt1m/a44666919a4f347e682ed9f757267766

@jankeromnes

This comment has been minimized.

Show comment
Hide comment
@jankeromnes

jankeromnes Jul 5, 2017

Member

Great Firefox configuration, thanks @nt1m! However, I think the names "Quick Build" and "Full Build" aren't very transparent (I think Firefox developers know ./mach build and ./mach build faster, and I think even newcomers have heard of it, so maybe it's worth it to use the command as Runner name directly?)

Also, the "Run" runner (sorry) won't work because we need to do that in noVNC. And as it's not currently possible to make a runner open a new tab, I believe we could use the "Preview" button to open a noVNC link, as suggested in the reply in this thread.

Member

jankeromnes commented Jul 5, 2017

Great Firefox configuration, thanks @nt1m! However, I think the names "Quick Build" and "Full Build" aren't very transparent (I think Firefox developers know ./mach build and ./mach build faster, and I think even newcomers have heard of it, so maybe it's worth it to use the command as Runner name directly?)

Also, the "Run" runner (sorry) won't work because we need to do that in noVNC. And as it's not currently possible to make a runner open a new tab, I believe we could use the "Preview" button to open a noVNC link, as suggested in the reply in this thread.

@jankeromnes

This comment has been minimized.

Show comment
Hide comment
@jankeromnes

jankeromnes Jul 19, 2017

Member

Update: @nt1m built the https://github.com/JanitorTechnology/c9.ide.janitorconfig plugin that reads a janitor.json config file in order to offer common workflow scripts as "Cloud9 IDE Run configurations" (e.g. update sources, build sources, run binaries, open previews, etc).

This super cool work should address part 1 of #12. 👍

Member

jankeromnes commented Jul 19, 2017

Update: @nt1m built the https://github.com/JanitorTechnology/c9.ide.janitorconfig plugin that reads a janitor.json config file in order to offer common workflow scripts as "Cloud9 IDE Run configurations" (e.g. update sources, build sources, run binaries, open previews, etc).

This super cool work should address part 1 of #12. 👍

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