[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#2703: 23.0.91; Error in Python indenter
From: |
Bob Rogers |
Subject: |
bug#2703: 23.0.91; Error in Python indenter |
Date: |
Tue, 17 Mar 2009 21:24:49 -0400 (EDT) |
1. Put the following code into the indent-test.py file:
================
def parse_cvs(self, stream):
new_entry \
= Entry(encoded_date = mod.encoded_date,
files = mods)
# The indenter can't handle this line.
combined_entries.append(new_entry)
================
2. "emacs -Q indent-test.py"
3. Move the cursor anywhere on the comment line, and type TAB. You
should see this error message:
python-indent-line: Wrong type argument: number-or-marker-p, nil
The patch at the bottom to lisp/python.el (rev 1.95, which is current
in trunk) addresses the immediate problem, by refusing to add nil to the
end of python-indent-list. The resulting behavior is still not right:
The indenter then oscillates between indenting by 0 and 8, without
considering 4 at all. I suspect that python-beginning-of-statement is
getting confused by the mixed continuation style of the previous three
lines, and this confusion is the cause of both problems, but I haven't
been able to track it further.
TIA,
-- Bob Rogers
http://www.rgrjr.com/
------------------------------------------------------------------------
In GNU Emacs 23.0.91.1 (i686-pc-linux-gnu, GTK+ Version 2.12.9)
of 2009-03-06 on rgr
Windowing system distributor `The X.Org Foundation', version 11.0.10400090
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: en_US.UTF-8
value of $XMODIFIERS: nil
locale-coding-system: utf-8-unix
default-enable-multibyte-characters: t
Major mode: Shell
Minor modes in effect:
diff-auto-refine-mode: t
shell-dirtrack-mode: t
mouse-wheel-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
Recent input:
<backspace> C-u C-SPC C-u C-SPC C-u C-n C-n C-n <tab>
C-SPC C-u C-p C-p C-p C-w <tab> C-_ C-e C-f C-e C-f
C-k C-k C-k C-k C-k C-k C-n M-f <tab> C-p M-^ C-e C-f
<tab> M-f <tab> C-_ C-n <tab> C-n C-n C-u - 4 C-g C-x
C-x M-{ C-u - 4 C-x TAB C-SPC C-p C-p C-w C-u C-SPC
C-u C-SPC C-p M-b <tab> C-n C-a C-k C-k M-b <tab> C-_
C-_ C-_ M-b <tab> C-n C-n M-> C-w C-u C-SPC C-p M-b
<tab> C-u C-p C-p C-p C-a C-SPC C-n C-n C-w C-u C-SPC
C-u C-SPC C-u C-j C-SPC C-_ M-> C-p M-b <tab> C-a <tab>
M-f M-b C-k T h i s SPC d o e s n ' t SPC i n d e n
t SPC c o r r e c t l y . <tab> M-b M-b M-b M-b M-b
T h e SPC i n d e n t e r SPC c a n ' t SPC h a n d
l e SPC M-l C-k SPC l i n e . q <backspace> <tab> C-f
C-e C-f C-f C-x 4 b * M e s <tab> <return> M-> C-p
C-p C-p C-p C-SPC C-p M-w C-u C-SPC C-x b f o o <return>
M-> <return> C-y C-u C-SPC C-M-f C-M-f C-f C-o C-f
C-f C-M-f C-o C-M-f C-o C-f C-f C-e C-M-b C-M-f C-f
C-f C-x o C-u C-p C-p M-f M-f C-d C-d C-n M-b = SPC
SPC C-n C-p <backspace> C-n SPC SPC C-n <tab> C-p C-p
M-^ <backspace> <backspace> C-n C-n <tab> C-_ C-_ C-_
C-x C-s C-x o <f8> e m a c s SPC - Q SPC i n d e <tab>
SPC & <return> <help-echo> M-x r e p o r <tab> <re
turn>
Recent messages:
python-indent-list is ((0 . #("def parse_cvs(self, stream):" 0 3 (fontified t
face font-lock-keyword-face) 3 4 (fontified t) 4 13 (fontified t face
font-lock-function-name-face) 13 14 (fontified t) 14 18 (fontified t face
py-pseudo-keyword-face) 18 28 (fontified t))) (8 . #("= Entry(encoded_date =
mod.encoded_date," 0 2 (fontified t) 2 26 (fontified t) 26 38 (fontified t) 38
39 (rear-nonsticky t fontified t) 39 40 (fontified t))) nil)
[target nil]
python-indent-line: Wrong type argument: number-or-marker-p, nil
python-indent-list is ((0 . #("def parse_cvs(self, stream):" 0 3 (fontified t
face font-lock-keyword-face) 3 4 (fontified t) 4 13 (fontified t face
font-lock-function-name-face) 13 14 (fontified t) 14 18 (fontified t face
py-pseudo-keyword-face) 18 28 (fontified t))) (4 . #("new_entry =
Entry(encoded_date = mod.encoded_date," 0 9 (fontified t) 9 10 (fontified t) 10
12 (fontified t) 12 36 (fontified t) 36 48 (fontified t) 48 49 (rear-nonsticky
t fontified t) 49 50 (fontified t))))
[target 4]
Undo! [3 times]
Auto-saving...
Saving file /home/rogers/projects/system/scripts/indent-test.py...
Wrote /home/rogers/projects/system/scripts/indent-test.py
Partially completed
----------------
Index: lisp/progmodes/python.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/progmodes/python.el,v
retrieving revision 1.95
diff -c -r1.95 python.el
*** lisp/progmodes/python.el 20 Feb 2009 16:30:56 -0000 1.95
--- lisp/progmodes/python.el 18 Mar 2009 00:11:18 -0000
***************
*** 723,731 ****
(forward-line)
(unless (python-comment-line-p)
(let ((elt (assq (current-indentation) python-indent-list)))
! (setq python-indent-list
! (nconc (delete elt python-indent-list)
! (list elt))))))
(caar (last python-indent-list)))))))
;;;; Cycling through the possible indentations with successive TABs.
--- 723,732 ----
(forward-line)
(unless (python-comment-line-p)
(let ((elt (assq (current-indentation) python-indent-list)))
! (when elt
! (setq python-indent-list
! (nconc (delete elt python-indent-list)
! (list elt)))))))
(caar (last python-indent-list)))))))
;;;; Cycling through the possible indentations with successive TABs.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bug#2703: 23.0.91; Error in Python indenter,
Bob Rogers <=