Discuss/vote: IDEA-60841 Allow to enable/disable plugins on a per-project basis

Answered

Just thought that I'd finally create a ticket for one of my favourite pet annoyances:
http://youtrack.jetbrains.net/issue/IDEA-60841?projectKey=IDEA

Opinions? Suggestions? Rotten tomatoes?

2
10 comments

Hello Sergei,

Plugins can contain components that are initialized at application startup,
before you open a project. Such plugins obviously cannot be enabled on a
per-project basis. Because of that, it's not possible to implement this request
without rewriting all such plugins (many of which are our own).

Just thought that I'd finally create a ticket for one of my favourite
pet annoyances:
http://youtrack.jetbrains.net/issue/IDEA-60841?projectKey=IDEA

Opinions? Suggestions? Rotten tomatoes?


--
Dmitry Jemerov
Development Lead
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0

Dmitry,

What I need is probably the opposite: an ability to disable (or suppress) some of the available plugins for the project. I don't mind if they are still loaded (even though it would be a waste of resources), as long as they remove all their actions, menu items, side panels, toolbar buttons.

Consider the following example:

Project 1 needs:
- Spring
- Maven
- Clearcase

Project 2 needs:
- Spring
- Ant
- IvyIDEA
- SVN

That means that on the IDE level I need to enable (at least) a superset of plugins:
- Spring
- Maven
- Clearcase
- Ant
- IvyIDEA
- SVN

...which in turn means that all six plugins will be enabled in both projects. Project 1 thus will have totally irrelevant Ant and Ivy side panels, and Subversion actions, whereas Project 2 will have an unwanted Maven side panel and Clearcase actions.

Ideally, I'd like to be able to do the following:

...for Project 1, turn off the following plugins:
- Ant
- IvyIDEA
- SVN

...and for Project 2, turn off the following plugins:
- Maven
- Clearcase

...which would reduce the set of active plugins in each project to a subset of enabled plugins.

Does it make more sense now?

0

Hello Sergei,

I certainly understand what you want to achieve, but I'd like to reiterate
that it's not possible to implement in the current architecture. Just as
one example: the action system is entirely application scope, so all actions
registered by a plugin will be visible for all open projects. And it's not
feasible to implement a parallel suppression mechanism for every extension
mechanism that's provided by our plugin API.

What I need is probably the opposite: an ability to disable (or
suppress) some of the available plugins for the project. I don't
mind if they are still loaded (even though it would be a waste of
resources), as long as they remove all their actions, menu items, side
panels, toolbar buttons.

Consider the following example:

Project 1 needs:
- Spring
- Maven
- Clearcase
Project 2 needs:
- Spring
- Ant
- IvyIDEA
- SVN
That means that on the IDE level I need to enable (at least) a
superset of plugins:
- Spring
- Maven
- Clearcase
- Ant
- IvyIDEA
- SVN
..which in turn means that all six plugins will be enabled in both
projects. Project 1 thus will have totally irrelevant Ant and Ivy side
panels, and Subversion actions, whereas Project 2 will have an
unwanted Maven side panel and Clearcase actions.

Ideally, I'd like to be able to do the following:

..for Project 1, turn off the following plugins:
- Ant
- IvyIDEA
- SVN
..and for Project 2, turn off the following plugins:
- Maven
- Clearcase
..which would reduce the set of active plugins in each project to a
subset of enabled plugins.

Does it make more sense now?

---
Original message URL:
http://devnet.jetbrains.net/message/5277062#5277062


--
Dmitry Jemerov
Development Lead
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0

Is it possible or would it be posible to have multiple settings directories for per-projects and then just start idea with the different settings location. Something like, idea.sh -p foo.properties or something like that? Where foo.properties is a separate idea.properties file that specifies the different parameters. In this case, might want to separate out the the properties that would be relevant. This way, the plugin architecture doesn't have to change.This might also have other benefits for people running completely different environments instead of always having to manually edit all these files before starting IDEA (which I do now). Sort of a different feature, but should accomplish the above request easily.

0

Hello Charles,

If you're willing to pay the cost of indexing and storing the caches for
each project separately, then yes, you can configure multiple IDEA installations
with separate config and system directories and use them for working on different
projects with different sets of plugins. This is supported right now and
doesn't need any new features to be implemented.

Is it possible or would it be posible to have multiple settings
directories for per-projects and then just start idea with the
different settings location. Something like, idea.sh -p foo.properties
or something like that? Where foo.properties is a separate
idea.properties file that specifies the different parameters. In this
case, might want to separate out the the properties that would be
relevant. This way, the plugin architecture doesn't have to
change.This might also have other benefits for people running
completely different environments instead of always having to manually
edit all these files before starting IDEA (which I do now). Sort of a
different feature, but should accomplish the above request easily.

---
Original message URL:
http://devnet.jetbrains.net/message/5277104#5277104


--
Dmitry Jemerov
Development Lead
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0

Dmitry,

I understand that it must be a non-trivial issue, and something with a potential to wreck the entire plugin architecture as it stands at the moment. Let's leave it in the backlog for now (frankly, I did not even expect it to be considered for IDEA 10, as the release deadline looms closer). However, I believe that one day it will be addressed somehow.

Kind regards,

Sergei

0

"If you're willing to pay the cost of indexing and storing the caches for each project separately, then yes, you can configure multiple IDEA installations with separate config and system directories and use them for working on different projects with different sets of plugins. This is supported right now and doesn't need any new features to be implemented."

Could someone give me some tip how to achieve such effect?

What I need is to leave default configuration for most of my projects and start some other projects with their own config.

I guess that I need to use that configuration: https://www.jetbrains.com/help/idea/content-roots.html for modules and content roots, but I wasn't able to find it as well as for new projects and existing ones.

 

0

To be able to open several projects with different IDE configurations you would need to install several IDE installations and configure the location of settings/plugins directions for each installation.

>What I need is to leave default configuration for most of my projects and start some other projects with their own config.

Would you mind to elaborate what are the project type and what config do you want to be different?

0

I work with 3 different php frameworks (phpStorm) and it's all about managing installed plugins. There is Required Plugins option, but I can't tell IDE in this way that I need some plugins to be disabled on current project. There are also some settings regards to external tools. I have got different tools per framework and I don't need to see them all. But it's not so important.

I read also that Inteliij can be started with following params "-Didea.config.path=C:\prj\.IntelliJIdea9\config -Didea.system.path=C:\prj\.IntelliJIdea9\system -Didea.plugins.path=C:\prj\.IntelliJIdea9\config\plugins"

If it's true and also phpStorm can be launched in that way I could just create different copies of config/plugins directory and create as many shortcuts of the same instance of IDE as I need passing just proper plugins.path

0

>I read also that Inteliij can be started with following params

Yes, specifying these JVM parameters when starting IDE will also work.

0

Please sign in to leave a comment.