Creating a standalone customized IDE

Hi,

I'm currently working on creating a standalone, customized IDE for Go.
I'll base it on IntelliJ IDEA Community at first and I'd like to include a few other custom plugins (.ignore and Markdown come to mind) while removing all that's not necesarry to offer a more Go friendly experience to the end-users. Maybe later on this could be also a way to create an IDE based on other IDEs such as one from WebStorm or CLion for example.
Towards this goal, I've created this PR: https://github.com/go-lang-plugin-org/go-lang-idea-plugin/pull/2072 on which I'll be working in the coming days / weeks.
Any help is very much appreciated and if there's someone else that already went thru the process and has a clean set of steps / commits (or even just the end result) and could point it out to me, that would be really nice and highly appreciated.
I'll ask questions here related to this task in hopes that afterwards this can be curated (along with the PR itself) to create a tutorial for such a task.
Hope it will help someone.


Kind regards,
Florin

6 comments
Comment actions Permalink

Hi Florian,

I'm hoping to do this soon, so any information you can provide about how you went about it would be fantastic. I've investigated this on and off, here's the information I have:

Here are some starting points in PyCharm:

https://github.com/JetBrains/intellij-community/blob/master/python/build/pycharm_community_build.gant

https://github.com/JetBrains/intellij-community/blob/master/build/scripts/layouts.gant

I believe it's basically compulsory to use Gant for this at the moment.

There's some high-level information here about how RoboVM did it: https://blog.jetbrains.com/idea/2015/10/robovm-and-the-move-to-the-intellij-platform. Their platform is open source, so you could check that out. I believe their IDE is Mac-only, though. Relevant repo is here: https://github.com/robovm/robovm-studio, there's some doc and presumably you can check the commits they made to get there too.

See also: https://devnet.jetbrains.com/message/5546646 and https://devnet.jetbrains.com/message/5541316.

One thing that is missing from the open-source PyCharm IIRC is something to make a native Windows installer. You'll probably need to use one of these to do so: http://www.installsite.org/pages/en/msi/authoring.htm. I believe WiX is the most robust OSS option with support for Java, but it's meant to be a pain to use. That's only based on half an hour with Google though, I really know nothing about it.

Important things I don't have answers to:

Is it possible for third parties to bundle the new OSX JDK fork?

How platform updates should work - there's some mention of this in the RoboVM page, but I haven't read it in detail.

How to customise the UI. I'd like an option to hide a bunch of the configuration like PyCharm educational edition does for a newbie mode, I haven't investigated this yet.

The whole building of searchable options is something you'll probably want to do, but it's a pretty mysterious process. See https://devnet.jetbrains.com/message/5535041.

I'm looking forward to your findings! Please let us know how you get on.

Cheers,
Colin

0
Comment actions Permalink

Please share any relevant forum threads you found useful here https://youtrack.jetbrains.com/issue/IJSDK-105 so we can build a reference doc page. Thanks!


0
Comment actions Permalink

Here's confirmation that at least as of April the Windows installer creation process is not open source: https://devnet.jetbrains.com/message/5539557

0
Comment actions Permalink

Windows installer scripts are now part of CE (d9b9b0c48c0b9190195d25d78a008b562a5f3959)


0
Comment actions Permalink

Great! Thanks Yann, I'm very glad to see this being made easier (re: your doc issue, and this change).

0
Comment actions Permalink

I've tried with no success for the last few days to work more on this. It seems that the way to build the IDE is so tightly coupled with the layout / structure of the IntelliJ sources that is almost impossible to decouple it right now.

You can have a look at my attempt so far: https://github.com/dlsniper/google-go-lang-idea-plugin/tree/go-ide/goide but it's not much.

The whole process should be started by running "./build.sh" in the "goide" folder

0

Please sign in to leave a comment.