More project/module level settings?

Hi,

shouldn't more of the settings be module(or at least project) specific?
E.g. the most annoying one is "Resources", because many times registered
resources use the same URI in various projects, but they're different.
It's just a pain to re-register all the time when opening a specific
project :(.

There are also other settings that have "module/project" importance(like
some of the Tools - e.g. if started form the project's directory), but
Resources being "global only" is a real PITA.

Thank you,

Demetrios.

7 comments
Comment actions Permalink

Hi Demetrios, what kind of resources do you mean? The "External Resources"
is indeed designed to handle things like XML schemas that not to be changed
between projects.


0
Comment actions Permalink

Hi Demetrios, what kind of resources do you mean? The "External Resources"
is indeed designed to handle things like XML schemas that not to be changed
between projects.

Yes, "External Resources". Some of them still change however, especially
if those schemes, DTDs or TLDs are "in development" (or are not final).
(Especially for Taglibs this is simply painful).

But as I said, there are more settings that would be much practical if
they would be not only global(so the module/project setting to override
the global one).

Demetrios.

0
Comment actions Permalink

Yes, "External Resources". Some of them still change however, especially
if those schemes, DTDs or TLDs are "in development" (or are not final).
(Especially for Taglibs this is simply painful).


Have you tried to put your tlds in a "META-INF" directory under your source
root? They should be recognized in this case.


0
Comment actions Permalink

>> Yes, "External Resources". Some of them still change however, especially
>> if those schemes, DTDs or TLDs are "in development" (or are not final).
>> (Especially for Taglibs this is simply painful).


Have you tried to put your tlds in a "META-INF" directory under your source
root? They should be recognized in this case.

Yes, it works if there's only one, but not if there are more. Of course
they should use correct versions to avoid issues like that, but the
problem is that most projects simply don't use versions with TLDs :(,
(so the only way to ensure what TLD to use, is to specify it, but this
is a global setting).

The "module/project(say local) on global override" would have the
advantage of "override" too, so if a "local" setting would be present,
it would override the global one, otherwise the global one would be
used, and everything would work without problems.

Thank you,

Demetrios.

0
Comment actions Permalink

Yes, it works if there's only one, but not if there are more. Of course
they should use correct versions to avoid issues like that, but the
problem is that most projects simply don't use versions with TLDs :(, (so
the only way to ensure what TLD to use, is to specify it, but this is a
global setting).


Do you mean that you have several tlds with the same uri but different
tlib-version?
We could add support for that case, choosing the latest version. Could it be
helpful?
Anyway, the "External Resources" are to be used for external ones, not for
those belonging to project sources.


0
Comment actions Permalink

>> Yes, it works if there's only one, but not if there are more. Of course
>> they should use correct versions to avoid issues like that, but the
>> problem is that most projects simply don't use versions with TLDs :(, (so
>> the only way to ensure what TLD to use, is to specify it, but this is a
>> global setting).


Do you mean that you have several tlds with the same uri but different
tlib-version?

This happens allot too in web development :).

We could add support for that case, choosing the latest version. Could it be
helpful?

Unfortunately I think it's a little more complicated. In many cases not
the latest is the desired one. Much simpler would be just to allow the
user to select what it wants, since IntelliJ can't always infer what's
better :).

Anyway, the "External Resources" are to be used for external ones, not for
those belonging to project sources.

They are "external" in many cases in that a module depends on another
module or another project, or a jar. This is why it's a complete "soup",
and only allowing the user to specify at the module level what to use
would help (like the "override" feature).

I see the problem right now that the (External)Resources allows only
one resource with an URI. Only one is needed at the "calling level",
i.e. in the JSP of one module, but in different modules, and projects
the same URI means different things.

Of course, in case of Resources, by simply allowing more resources with
the same URI and adding a radio button for the "active" one would solve
the problem, but I think this would be a hack, since it would target
only the "resources".

This is why I think an "override" approach would be better, since it
would solve other settings too (that need a similar behavior), e.g.
- Tools: many tools are project/module dependent. Even more, the tool
resides in the project/module directory.
- Live Templates: Many projects have specific live templates. This is
true for big projects that are not new (and have some evolution behind).
File Templates falls here too
- Application Servers: in many cases an application server is used only
in one project, but the global settings are shared among the entire team.
- Plug-ins. Because of performance reasons, some plug-ins are used
exclusively in some projects, so every time that project is opened the
user activates one by one only those plug-ins, and restarts the IDE.
This is a real PITA.
- File Types. Because IntelliJ selects the file type(for non-xml files)
only based on extension, in different projects a file could represent
different things, so the user "re-associates" it with a different type
based on the projects.

The list could continue with settings that are global, but should also
have a "local" override possibility.

Thank you,

Demetrios.

0
Comment actions Permalink

Well, this is a very wide approach, but I'd like to concentrate on the tld
resolving first.
IDEA should do it in the same way as servlet container, and if it does not,
it should be fixed.
It seems IDEA does not consider deployment structure now, and searches for
tlds everythere, that leads to problems in your case.
How your tlds are deployed? Have you web facets in your modules?


0

Please sign in to leave a comment.