Hans-Peter Diettrich wrote:
Graeme Geldenhuys schrieb:
Also, as I mentioned, the gEdit plugin that enables elastic tabstops
has a option to automatically do conversions. So you can work with
elastic tabstops enabled, but when saved, the file gets converted back
to using spaces.
What will happen when you commit your changes?
Will everybody have to work with your formatting, casted into spaces?
If any commit converts tabs to spaces, then elastic tabs do not solve
any problem any more or less than any other tab handling does.
In this case the stored text has only spaces. If you check it out again,
and wish to edit it, you need an editor, that detects where those spaces
should be tabs (magical guessing according to your taste)
Such conversion (to spaces / from spaces) can be applied to any form of
tabs that you have in your source code
NOTE: The conversion of tabs to spaces can be defined in 2 ways:
1) tabs a converted to an as many spaces as needed, so the look on the
pc of the converter does not change
2) tabs and consecutive tabs (as well as consecutive spaces) are
converted to a single space nly (except in strings or other white space
sensitive areas)
The first solution does not solve anything, as the checked in text still
expresses the format of the one writer who converted it. => Format is
still part of the content, not applied to a content
The 2nd form will work (exceptions see further down) but requires are
really good formater for any one wanting to work with this text
Same thing should apply to code formatting, which is what Elastic
Tabstops does. You press the Tab key, which inserts the char $09 -
nothing more! Now the editor does the formatting for you, but doesn't
modify the source code contents to do it.
I'd agree with different tabstop codes, so that the formatting can be
undone or suppressed at any time.
Tab stops in the source (white space insensitive area / outside strings
etc) are formating.
They are formatting, because they cause different layout, unless they
can be ignored / handled same as spaces
After all Graeme would only need a single (or 2) tab char in the source,
in order to align comments at the end of several lines
I need maybe between 1 and 10 tab stops per line so my editor shows the
comments aligned (using normal tabs)
If all editors are to handle them elastic, then they carry format into
the content
content, and thus would track only changes in the content,
regardless of
whitespace and line breaks.
Line breaks are interesting.
Since some people write:
if a then begin
or:
if a then
begin
the line break itself embeds formatting into the content.
If you want to archive, what you describe (format free content) then all
whitespaces (including tabs, newline) must be stored as simple space
(except some basic interpreters, which have linebreak as part of the
language)
Applying tabs and linebreaks is eye candy, that your editor should apply
on top of the content.....
Linebreaks could be used for paragraph like grouping of statements,
that represent a logical entity in your code, yet are not presented as a
procedure of their own.
---------------------------
I may have shlightly disconnected from reality while writing the above....
Martin
--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus