Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #74165
| References | (4 earlier) <mailman.11614.1404782560.18130.python-list@python.org> <53bbb047$0$2926$c3e8da3$76491128@news.astraweb.com> <87a98kgqsm.fsf@elektro.pacujo.net> <mailman.11620.1404815310.18130.python-list@python.org> <874mysgl2y.fsf@elektro.pacujo.net> |
|---|---|
| Date | 2014-07-08 21:37 +1000 |
| Subject | Re: PEP8 and 4 spaces |
| From | Chris Angelico <rosuav@gmail.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.11624.1404819468.18130.python-list@python.org> (permalink) |
On Tue, Jul 8, 2014 at 9:13 PM, Marko Rauhamaa <marko@pacujo.net> wrote:
> Chris Angelico <rosuav@gmail.com>:
>
>> Not quite; tools like diff that put a character at the beginning of
>> the line are likely to be tab-aware,
>
> No, just tried it again: diff outputs tabs as tabs.
>
> $ diff abc def
> 1,2c1,2
> < abc
> < abc
> ---
> > def
> > def
>
> where line 1 begins with a tab and line 2 begins with 8 spaces in each
> file.
Check out its -t and -T options; diff is definitely tab-aware.
>> and gcc is certainly going to comprehend them
>
> $ gcc -c test.c
> test.c:1:2: error: expected identifier or ‘(’ at end of input
>
> where test.c contains
>
> <TAB>(<LF>
>
> IOW, gcc reports that the open parenthesis is in column 2.
It's easier to number the positions that way, in the same way that you
would number lines - by how many times you have to hit down or right
arrow to get there. In my MUD client, I measure text positions in
characters (within a line; a particular position is identified by
(line, char), because lines are generally far more important than
overall positions), even when tabs are involved; a tab simply counts
as one character, even though it displays as up to eight times the
width. Actually, I'm currently contemplating a reworking of how that's
all mapped out, which would mean that *any* character is allowed to
take up *any* width, including zero, in which case the only
significance is that a tab takes up a variable width depending on
where it is in the line (which is already coped with).
>> And I think less takes notice of them, too,
>
> How?
Shrink your terminal down to some weird width like 45, create a file
with long lines including tabs, 'less' the file, and use the right
arrow key to scroll horizontally. It takes note of tabs and renders
them properly.
>> so it's only the very simplest tools like cat that actually ignore
>> them or treat them as single characters (or even bytes).
>
> They all seem to be "simple." At least Python is:
>
> $ python3 -c 'print ('
> File "<string>", line 1
> print (
> ^
> SyntaxError: unexpected EOF while parsing
>
> where the caret is pointing at the wrong visual column.
If someone cares enough to write a patch, I'm sure the traceback
renderer could be improved. But how many people actually use tabs
inside code like that?
ChrisA
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Re: PEP8 and 4 spaces Ben Finney <ben@benfinney.id.au> - 2014-07-07 11:00 +1000
Re: PEP8 and 4 spaces Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-07-07 02:28 +0000
Re: PEP8 and 4 spaces Chris Angelico <rosuav@gmail.com> - 2014-07-07 12:50 +1000
Re: PEP8 and 4 spaces Dan Sommers <dan@tombstonezero.net> - 2014-07-07 05:35 +0000
Re: PEP8 and 4 spaces Ben Finney <ben@benfinney.id.au> - 2014-07-08 11:22 +1000
Re: PEP8 and 4 spaces wxjmfauth@gmail.com - 2014-07-08 00:03 -0700
Re: PEP8 and 4 spaces Steven D'Aprano <steve@pearwood.info> - 2014-07-08 08:48 +0000
Re: PEP8 and 4 spaces Chris Angelico <rosuav@gmail.com> - 2014-07-08 19:05 +1000
Re: PEP8 and 4 spaces Marko Rauhamaa <marko@pacujo.net> - 2014-07-08 12:09 +0300
Re: PEP8 and 4 spaces Chris Angelico <rosuav@gmail.com> - 2014-07-08 20:28 +1000
Re: PEP8 and 4 spaces Marko Rauhamaa <marko@pacujo.net> - 2014-07-08 14:13 +0300
Re: PEP8 and 4 spaces Chris Angelico <rosuav@gmail.com> - 2014-07-08 21:37 +1000
Re: PEP8 and 4 spaces Ben Finney <ben@benfinney.id.au> - 2014-07-09 12:41 +1000
Re: PEP8 and 4 spaces wxjmfauth@gmail.com - 2014-07-09 01:19 -0700
csiph-web