Extending existing UI?

I actually havn't done plugin development for the IntelliJ platform until know,
but I'm eager to extend the "Tip of the Day":
I would like to let the user viewing the tip choose if (s)he wants to see this tip again or if (s)he wants to skip this one when choosing from the list (as it is already well known.

So without knowing a lot about building a plugin:
What would be possible approaches?

I thought of two:
- "Extending"(as in hook into) the existing UI (the "Tip of the Day"-popUp) to show an additional checkbox (and add some additional configuration options).
- Provide a seperate "Tip of the day"- plugin which would basically be a real extension (as in MyTipOfTheDayPopUp extends TipOfTheDayPopUp) of the things that are already included in the IDE.

Can anybody point me in the right direction (as in other approaches, documentation, ...),
so I can find out how to enhance this wonderful IDE?


IntelliJ IDEA does not allow plugins to customize the UI to this degree. You can write a plugin that will provide an alternative "TIp of the day" menu item that will show the UI of your choice, but the tip dialog shown on startup will always be the "Tip of the Day" dialog currently implemented in the product.


so maybe it would be a better idea to provide a pull-request to the https://github.com/JetBrains/intellij-community?
Is it in this repo or anywhere else?

thx for the short and clear answer.


Yes, the code is in that repo. See the TipPanel class.


Great, I will look into it.

Are there any tests that I should "extend" when working on this.
(I would also be happy to get pointed to a general or specific contribution guide regarding this topic.)



No, we don't have any tests for the tip of the day dialog (as well as for most other high-level UI components).



Did you manage to do any tip of the day coding? I'm also interested in it can you share please your github repo? Thanks!


No, i didn't have the resources (mainly missing time) to get started.
(I made a fork, and had a look at it, but this is not kept up to date right now, so this would not be of any help.)

I can post it here if I'll finally get to it.
If you get started earlier and wan't to hear about my ideas or wan't my support point me to your repo. ;)


Please sign in to leave a comment.