[Python-Dev] Reindenting the C code base?

Kirk McDonald kirklin.mcdonald at gmail.com
Tue Dec 16 08:58:09 CET 2008


On Mon, Dec 15, 2008 at 11:21 AM, Brett Cannon <brett at python.org> wrote:

> On Mon, Dec 15, 2008 at 00:20, Georg Brandl <g.brandl at gmx.net> wrote:
> > Jeffrey Yasskin schrieb:
> >> On Sun, Dec 14, 2008 at 8:26 AM, Guido van Rossum <guido at python.org>
> wrote:
> >>> On Sat, Dec 13, 2008 at 2:11 PM, Antoine Pitrou <solipsis at pitrou.net>
> wrote:
> >>>> Guido van Rossum <guido <at> python.org> writes:
> >>>>>
> >>>>> I think we should not do this. We should use 4 space indents for new
> >>>>> files, but existing files should not be reindented.
> >>>>
> >>>> Well, right now many files are indented with a mix of spaces and tabs,
> depending
> >>>> on who did the edit and how their editor was configured at the time.
> >>>
> >>> That's  a shame. We used to have more rigorous standards than allowing
> that.
> >>>
> >>>> Perhaps a graceful policy would be to mandate that all new edits be
> made with
> >>>> spaces without touching other functions in the file. Then hopefully
> the code
> >>>> base would gradually converge to a tabless scheme.
> >>>
> >>> I don't think so. I find local consistency more important than global
> >>> consistency. A file can become really hard to read when different
> >>> indentation schemes are used in random parts of the code.
> >>>
> >>> If you have a problem configuring your editor, just say so and someone
> >>> will explain how to do it.
> >>
> >> I've never figured out how to configure emacs to deduce whether the
> >> current file uses spaces or tabs and has a 4 or 8 space indent. I
> >> always try to get it right anyway, but it'd be a lot more convenient
> >> if my editor did it for me. If there are such instructions, perhaps
> >> they should be added to PEPs 7 and 8?
> >
> > I use this little hack to detect indentation in Python's C files:
> >
> > (defun c-select-style ()
> >  "Hack: Select the C style to use from buffer indentation."
> >  (save-excursion
> >    (if (re-search-forward "^\t" 3000 t)
> >        (c-set-style "python")
> >      (c-set-style "python-new"))))
> >
> > (add-hook 'c-mode-hook 'c-select-style)
> >
> > -- where "python" and "python-new" are two appropriate c-mode styles.
> >
>
> Anyone have something similar for Vim?
>
> -Brett
>

Something along the lines of:

:fu Select_c_style()
:   if search('^\t')
:       set noet
        " etc.
:   el
:       set et
        " etc.
:   en
:endf
:au BufRead *.[ch] call Select_c_style()

-Kirk McDonald
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20081215/5c7e13d0/attachment-0001.htm>


More information about the Python-Dev mailing list