space/tab conversion utility?
tim.peters at gmail.com
Thu Jul 29 03:51:52 CEST 2004
[Grant Edwards, wants to convert spaces to tabs]
> 2) Simply converting all leading spaces to the right number of
> tabs (unexpand knows how to do that) isn't correct. Only
> the spaces that are block-indent spaces should be converted.
reindent.py is in your Python distribution, and is the state of the
art for "intelligent" conversion of tab-infected files to
space-celebrating ones. I understand that's not the direction you
want, but it is the *code* you want to start from. Doing a good job
on this is harder than anyone believes until they've failed at least
once, and the problem is indeed dealing with "semantically
insignifcant" whitespace in a pleasant way, trying to guess the
author's intent about visual appearance. reindent.py is aware of the
*semantic* indentation level of each line, and you could fiddle its
internals to convert just the semantically significant leading spaces
to hard tabs.
More information about the Python-list