Hi.
First of all I would like to say that I think the codestyle debate should spread 
across to dynamic templates, external tools, and external resources.

Carlos' suggestions seem like a little bit of overkill to me. But not without their 
merits. Although I agree that codestyles should be linked to projects they should not 
be in the actual project. Any one codestyle should exist only in one location. 
Otherwise when ever a code style specs are changed you have to visit every project to 
update them. 

I think all this could easily be solved by setting a location for a shared config and 
a personal config directory. then every group of developers can manage that as they 
wish: throw it into source control, replicate it to everyone's box, put it on shared 
drives etc. Then in each project you can associate the shared styles, templates, 
external tools, and resources you want/need.

Florian Hehlen


-----Original Message-----
From: Carlos Costa e Silva [mailto:[EMAIL PROTECTED]]
Sent: 14 August 2002 05:17
To: [EMAIL PROTECTED]
Subject: [Eap-features] Re: Codestyle on network drive


It's time for a discussion on what should be done on codestyles, I haven't
seen yet any post by anyone at jetbrains about this. It would be useful to
know their thoughts on this (in Ariadna and maybe on the next versions).

After all the postings about this, here's my view on a implementation:


1. Codestyles should migrate from ide options to project options: codestyle
is a project property.

2. The default project has the list of available codestyles in *this*
computer the default codestyles are permanently stored in the config dir,
the same as now. (By the way, the config dir should be placed inside the
system dir, so that it's in a read write place).

3. The current project has an assigned codestyle. A copy of the codestyle is
stored inside the project file. If the project is moved/copied/checked
out/etc, the codestyle goes with it.

!!! The codestyle inside the project file is the one used for code layouts,
optimize imports/etc. !!!

Having the codestyle inside the project file is the simplest way to ensure
the project one codestyle and it's also a simple way to distribute the
codestyle to new users/installations/etc.


Note that the codestyle list could continue on IDE options, but moving it to
the default project makes only one interface for maintaining codestyles.


4. For projects with one codestyle per user, the current project has an
option "no codestyle". In this case, the default project codestyle is used
for code layouting, etc.


5. Action to synchronize codestyles between the project and the defaults:
another user may have changed the style in the current project or a default
codestyle has changed and should be applied to several projects.
Codestyles should have a timestamp so that the we can know which codestyle
is obsolete.

6. Import codestyle command: if the codestyle exists only in the project,
it's imported to the list of codestyles existing in the computer.

This, I think :-) is the minimum implementation necessary.


Optional:

7. IDE option "autocheck codestyle timestamps": when the project is opened
idea compares timestamps ands asks the user if he wants to synchronize
codestyles.


Further options which I don't need implemented - after all, my projects have
mandatory codestyles :-)

Simple:

8. Startup option "-Didea.codestyle.path=path_to_codestyle.xml" to have the
codestyle reside wherever the user wants. This makes it possible for users
to share codestyles without having the codestyle inside the project file
(for places with multi styles per project).


Complicated:

9. Automatic code layout with project codestyle before commit to repository
and before diffs. Automatic code-layout with codestyle on default project on
checkout/update from repository.
An IDE option to control this would be necessary. No reformat should be done
if both styles are the same (including the timestamp).


And that's all folks. I think I'll take some holydays, so that I'll not be
burned with all the flames :-)

Carlos

--
Carlos Costa e Silva <[EMAIL PROTECTED]>






_______________________________________________
Eap-features mailing list
[EMAIL PROTECTED]
http://lists.jetbrains.com/mailman/listinfo/eap-features

Visit our website at http://www.ubswarburg.com

This message contains confidential information and is intended only
for the individual named.  If you are not the named addressee you
should not disseminate, distribute or copy this e-mail.  Please
notify the sender immediately by e-mail if you have received this
e-mail by mistake and delete this e-mail from your system.

E-mail transmission cannot be guaranteed to be secure or error-free
as information could be intercepted, corrupted, lost, destroyed,
arrive late or incomplete, or contain viruses.  The sender therefore
does not accept liability for any errors or omissions in the contents
of this message which arise as a result of e-mail transmission.  If
verification is required please request a hard-copy version.  This
message is provided for informational purposes and should not be
construed as a solicitation or offer to buy or sell any securities or
related financial instruments.

_______________________________________________
Eap-features mailing list
[EMAIL PROTECTED]
http://lists.jetbrains.com/mailman/listinfo/eap-features

Reply via email to