On 11/17/2009 5:15 AM, Juan Vuletich wrote:
Igor Stasenko wrote:
My 2 cents.
Import: a text stream should detect a line-ending sequence automatically, or use explicitly specified line-ending sequence, if it instructed so. Text editors should not bother with line end formats: their main purpose is to correctly display & edit the text, so its much more important to display it correctly, but quite unimportant in what format the edited text is stored. If current text editor uses cr as line ending - i'm fine with that. Lets then make sure, that it doesn't needs to deal with lf char, since any lf occurences should be wiped out (converted) before going into text editor - at text import stage.
Export: at text export, one could always tell , what line endings he wants to see (by default it could use Smalltalk>>platformLineEndings ).
I don't think that Squeak meant to be used as a generic-purpose text editor, thus, i don't see real importance in making a smart import-edit-export cycle which should care about preserving line ending sequence unchanged.
There simply should not be any import-edit-export cycle at all. The purpose of an editor is to show the user the characters that comprise the String being edited, and allow him to add / remove characters at will. This is so obvious that I feel silly saying it. Why would some characters be silently messed by the system? I see no reason. It is like the horrible "ASCII mode" in FTP, that breaks every file it downloads.
Simple questions below. I do not necessarily know the answers.
If I open up a Workspace and begin editing, whether Squeak or Cuis, by default what kind of line endings do I get?
Will I ever in editing newly created Squeak text/strings by default ever have multiple different line-endings?
If I ever have text in Squeak which has multiple line-endings, where did it come from? A file? Regardless of whether that file is on disk or in a stream via network.
And if a file then there is somewhere in this process some form of reading the file from wherever and bringing into Squeak for reading, editing, displaying or whatever. And if I ever want to use my edits outside of Squeak, then there is the process of creating or updating the file with the edits. Therefore there must be an import/edit-display/export cycle. Otherwise it is all internal to Squeak and if so should only use Squeak's defaults.
I personally fail to see why anybody would want to retain multiple line ending types in any file or text regardless as to whether they were there already or not. They in general only get there from multiple edits of the file, from multiple OSes. It is done for interoperability between platforms and editors but is not a natural thing for any editor to do otherwise. Does any editor anywhere when creating a new document insert more than one type of line ending? This is a display of what is natural.
Personally as a simple end user. I would prefer that my files if being edited by some editor, somewhere, that it correct all of the crappy multiple line endings and simply use the platform native line endings when saving the file. I couldn't care less what the text editors internal representation was of those line endings. I see no real purpose for any file with multiple line endings. Fact is that we are operating on some specific platform. Whether Windows, Mac, Linux, BSD or whatever. By default and by nature all of those systems have expectations of what a line ending is. If I am on my Windows machine I would prefer all files I edit to be with Windows preferred line endings. And on my Mac with Macs. And on my Ubuntu Linux machine, Linuxes. If I send a file from one to another I am pleased if it gets converted to the native format for my file on that platform. It is an unpleasant experience to double-click a file and see Notepad open up and the entire file is on one line. But if I explicitly open the file in WordPad it displays just fine. Yuck!
In text files multiple types of line endings serve absolutely no purpose. The are all equivalent and should all be converted to platform preference. And if they serve some purpose and would break something if otherwise replaced. We are then talking about an application specific file and that is a whole different ballgame.
In general, I want an editor to edit any document, object, etc. as it would naturally as if it was also the creator.
This is my opinion. But it is one from a long time of computer usage with many OSes and using text files between them. Windows almost always has a way of screwing up files with multiple or wrong line endings unless you explicitly select a client which does the right thing.