About BashSupport’s Future

Summary

IntelliJ 2019.2 comes with build-in support for shell scripts. This is incompatible with BashSupport. Therefore there have to be changes.

This post outlines what’s happening next: maintenance mode for BashSupport and the possibility of BashSupport Pro on top of the JetBrains plugin.

Questions? Feedback?

Discuss in the new BashSupport community forums.

Upcoming changes for IntelliJ 2019.2 and later

JetBrains’s new plugin

JetBrains is bundling basic support for shell scripts with IntelliJ 2019.2 and later. The new plugin is called Shell. It supports highlighting, documentation lookup, Shellcheck integration, formatting via shfmt and a few more features.

This new plugin comes with the community edition and is enabled by default for all users.

Compared to BashSupport there’s still some missing functionality.

For example, the rename refactoring is pretty basic. It’s only replacing the name and is not handling include files, scope of variables, etc.

Overall the plugin is very well done and I expect that JetBrains will add some missing features soon.

BashSupport

BashSupport is already available for 2019.2. It will be available for the later versions of the JetBrains IDEs, too.

You shouldn’t have both plugins enabled at the same time. They are both assigned to *.sh and *.bash, but Shell is given precedence over BashSupport here. Files like .bashrc are assigned to BashSupport, though. You’ll end up with a confusing setup and possibly other problems when both are enabled.

Therefore a notification will be displayed when BashSupport detects that JetBrains Shell is enabled, too:

message displayed by BashSupport for IntelliJ 2019.2 and later"

The current state of BashSupport

Most successful community plugin

BashSupport is already more than 10 years old. So far it’s the most widely used community plugin. The latest release was downloaded more than 1.000.000 times.

I never expected this when I started to work on this a long time ago.

Thank you so much for using it! I really appreciate this. Without you it wouldn’t be this successful. And I learned a lot developing it.

Slowed-down development

I also never expected how much work this is. You probably have noticed that the development has slowed down quite a bit. I know that this is frustrating. It just isn’t quick enough to implement what many of you would love to see.

The main reason for this slower pace is time. BashSupport is developed in my spare time. And this spare time is now much less than ten years ago.

Next steps

JetBrains’s plugin

JetBrains is delivering outstanding quality. This new plugin won’t be different. It will provide what most users need. I’m not planning to compete with JetBrains’s offering. I also do not expect that I’m able to top JetBrains’s pace, quality, and manpower (or woman-power, respectively).

Immediate future of BashSupport

BashSupport will remain open-source and will remain to be available on the plugin repository. This won’t change.

Development of BashSupport will slow down even more. It will come to an end at some point in the future. Supporting a million users as a side project is not possible (for me). And doing this when there’s a strong competitor in the field isn’t reasonable, I think.

I will provide updates for upcoming major versions as long as it’s feasible. I expect that this will be possible for a few more years.

It’s sad to see BashSupport come to an end. But with the new JetBrains plugin and the history of the last years there’s no other way to handle this, in my opinion.

What about porting BashSupport?

It doesn’t make sense to migrate the existing source code to the new plugin.

JetBrains is using different data structures. Porting the existing features would be very time consuming. I assume that JetBrains will add missing features in the upcoming major versions. This will duplicate some of the ported features. And this would also mean constant adjustments of ported code to the latest changes.

BashSupport Pro

Newly added features to the JetBrains Shell plugin will (most likely) be limited to the most common use-cases. I expect that more advanced features, like a debugger, won’t be implemented.

Personally I’d love to continue to work on BashSupport and provide what’s missing in the Shell plugin.

Therefore I’m planning to offer a paid plugin, called BashSupport Pro. This would be closed-source software. The current version of BashSupport will remain open-source, of course.

If you are a user of BashSupport, then things will stay as they are. You can use it as long as you want. BashSupport Pro will be a separate plugin, it will not replace BashSupport.

Please add your thoughts in the new BashSupport community forums.

Why?

I really like open-source software. But creating and maintaining this kind of software for a large community is very, very time-consuming. It can easily become your main job - but without compensation.

Offering a paid plugin at a reasonable price sounds like a good alternative to me.

When?

The earliest date is when IntelliJ 2019.3 will be released. I’ll have to submit changes to the JetBrains Shell plugin to make it easier to extend by the new BashSupport plugin.

If it turns out that BashSupport Pro isn’t feasible or if there’s no interest at all in such a plugin, then it’s still possible that it will not be released.

Your feedback!

How do you feel about this approach?

Which functionality would you like to see the most in a Pro version?

What kind of pricing for individuals and companies sounds reasonable to you?

What’s most annoying in BashSupport and should not be repeated with BashSupport Pro?

Do you have questions about the planned Pro version?

I’d be glad to know what you think. Please head over to the BashSupport community and let me know!