[Openmcl-devel] Tab character in indented Lisp code, turn it off how?

Gail Zacharias gz at clozure.com
Tue Nov 27 03:41:44 PST 2007


Googling around is fun, but it doesn't tell you which style guides 
are actually in use in commercial projects.

For what it's worth, I reported bug #87 precisely because of this 
issue - I wanted to change to the default behavior (for myself) to 
indent using spaces, but couldn't.


At 11/27/2007 03:50 AM, Gary Byers wrote:
>Googling for 'tabs "coding style"'suggests that there are many different
>conventions in widespread use (which would have been my guess even if
>I hadn't just Googled ...)
>
>Guessing whether "tabs" or "spaces" is the approprate default for a given
>user probably doesn't have more than a 50% chance of being right.
>
>Making it easy to customize default editor behavior and to adapt to
>different conventions seems more important at this point than changing
>the default.  When that's no longer true and it's time to think about
>what the default should be, I propose that a coin be flipped.
>
>[If anyone's convinced that they have some compelling argument that's
>more persuasive than a coin flip would be, Googling for 'tabs "coding
>style" "endless flame war"' might dissuade them of that belief.  Then
>again, it might not: didn't the people involved in those discussions
>Google first ?]
>
>
>On Tue, 27 Nov 2007, Hans Hübner wrote:
>
>>All code style guides that I have come accross in commercial projects
>>during the years require that no Tabs are present in source files.  I
>>would make indenting using spaces the default.
>>
>>-Hans
>>
>>On Nov 26, 2007 7:08 PM, Gary Byers <gb at clozure.com> wrote:
>>>
>>>
>>>On Mon, 26 Nov 2007, Rainer Joswig wrote:
>>>
>>>>Hi,
>>>>
>>>>I see that indenting Lisp code inserts tab characters for spaces.
>>>>
>>>>I'll guess that there is a switch to turn that off?
>>>
>>>There's a Hemlock variable that contains a function used
>>>to insert whitespace for indentation.  (Somewhat confusingly,
>>>the name of the variable suggests that tabs would be used
>>>for indentation; whether they are or not depends on the
>>>value of that variable):
>>>
>>>? (hemlock::variable-value hemlock::indent-with-tabs)
>>>#<Compiled-function HEMLOCK::INDENT-USING-TABS #x3000416FD4EF>
>>>? (setf (hemlock::variable-value hemlock::indent-with-tabs) 
>>>#'hemlock::indent-using-spaces)
>>>#<Compiled-function HEMLOCK::INDENT-USING-SPACES #x3000416FCF1F>
>>>? (hemlock::variable-value hemlock::spaces-per-tab)
>>>8
>>>
>>>Hemlock variables can be buffer-local (the examples above just
>>>accessd the global values.)  Whatever one may think of the way
>>>that they're implemented in Hemlock, the concept of buffer-local
>>>variables (or something very much like them) is certainly useful.
>>>
>>>>
>>>>Personally I would prefer to not have tab characters
>>>>in a Lisp file. What do you think?
>>>
>>>It's been about 10 years since I cared either way (long enough that
>>>I've forgotten why I ever did.)
>>>
>>>I think that most of the reasons for this blissful indifference had
>>>to do with using an editor that provided a rich set of features
>>>("entab", "detab", "set tab width", "use/don't-use tabs", ...)
>>>for dealing with this.  (Even if I rarely had occasion to deal
>>>with any of it.)
>>>
>>>I don't have any strong opinion about whether the default behavior
>>>should involve using tabs or not; I do believe that it should be
>>>easy to change the default behavior and to override the default
>>>as needed.
>>>
>>>
>>>>
>>>>Tab characters are inserted at least by
>>>>
>>>>* Hemlock command: Indent Region
>>>>* Pressing Tab in a Hemlock window
>>>>
>>>>Regards,
>>>>
>>>>Rainer Joswig
>>>>
>>>>_______________________________________________
>>>>Openmcl-devel mailing list
>>>>Openmcl-devel at clozure.com
>>>>http://clozure.com/mailman/listinfo/openmcl-devel
>>>>
>>>
>>>_______________________________________________
>>>Openmcl-devel mailing list
>>>Openmcl-devel at clozure.com
>>>http://clozure.com/mailman/listinfo/openmcl-devel
>>
>
>_______________________________________________
>Openmcl-devel mailing list
>Openmcl-devel at clozure.com
>http://clozure.com/mailman/listinfo/openmcl-devel



More information about the Openmcl-devel mailing list