Title: IDLE: Add an option to show line numbers along the left side of the editor window, and have it enabled by default.
Type: enhancement Stage: commit review
Components: IDLE Versions: Python 3.5, Python 3.4, Python 2.7
Status: open Resolution:
Dependencies: 3068 Superseder:
Assigned To: terry.reedy Nosy List: JayKrish, Saimadhav.Heblikar, Todd.Rovito, irdb, jesstess, markroseman, ned.deily, rhettinger, roger.serwy, serhiy.storchaka, taleinat, terry.reedy
Priority: normal Keywords: patch

Created on 2013-03-24 05:13 by Todd.Rovito, last changed 2015-08-06 15:48 by markroseman.

File name Uploaded Description Edit
17535IDLELineNumbers3dot4.patch Todd.Rovito, 2013-03-24 22:18 review Saimadhav.Heblikar, 2014-03-13 11:57
line numbering mockup image.png Saimadhav.Heblikar, 2014-03-13 11:58
line-numbering-v1.diff Saimadhav.Heblikar, 2014-06-19 13:16 review
line-numbering-v2.diff Saimadhav.Heblikar, 2014-06-22 14:41 review
linenumber-text-widget-v1.diff Saimadhav.Heblikar, 2014-08-01 14:11 review terry.reedy, 2014-08-06 06:11 Test set commands from editor after font change.
linenumber-text-widget-v2.diff Saimadhav.Heblikar, 2014-08-16 06:24 review
linenumber-text-widget-v3.diff Saimadhav.Heblikar, 2014-08-16 17:02 review
Messages (29)
msg185115 - (view) Author: Todd Rovito (Todd.Rovito) * Date: 2013-03-24 05:13
I think it could be very helpful to add line numbers along the left side of the editor window.  The feature could be toggled on/off easily enough.  This was mentioned in the "Invent with Python" blog about IDLE so obviously other people would like the feature.
msg185164 - (view) Author: Todd Rovito (Todd.Rovito) * Date: 2013-03-24 22:18
I got the extension from Roger Serwy's IDLEX, it is one of my favorite extensions.  In addition to adding the extension I updated the documentation both idle.rst and help.txt.  Finally I tested the patch on Mac OS X and it works great.  This patch is for 3.4 but it does work with 2.7 but the documentation for 2.7 is not synced.  Thanks.
msg185166 - (view) Author: Todd Rovito (Todd.Rovito) * Date: 2013-03-24 22:20
For this patch to work correctly the option menu must be present so issue 17532 has to be resolved.
msg185170 - (view) Author: Roger Serwy (roger.serwy) * (Python committer) Date: 2013-03-24 23:11
Todd, the extension from the IdleX project contains 
work-arounds for interacting cleanly with the Code Context extension. It 
also has a hack for dealing with the shortcomings of the 
Percolator/Delegator ordering.

There are other shortcomings in the extension that I could not address 
from IDLE's extension loading architecture. Notably, IDLE does not have 
a method to broadcast that a font was changed, so the extension polls 
every second to see what the font is. The Code Context extension also 
does this. This is clearly an inefficient way to handle identifying a 
configuration change.

I released IdleX with the University of Illinois. Presently, the code is 
under the NCSA license agreement and assigned to the Board of Trustees. 
If the PSF would allow inclusion as-is, then I'm all for it. Otherwise I 
will need to ask UIUC about how to re-license the code.
msg185173 - (view) Author: Todd Rovito (Todd.Rovito) * Date: 2013-03-25 01:28
The NCSA license is very permissive I would be surprised if the PSF didn't accept it since both are BSD based.  Needless to say I am not a lawyer and I am not sure who to speak with about this issue.  

I was able to find some precedence with the PEP 3146 which proposed the merging of Unladen Swallow with CPython.  Unladen Swallow used LLVM which also used the NCSA license.  But the merge never happened so I don't know what to think.  

Does this mean all the extensions from IDLEX are under NCSA license even

I am flexible please let me know how you want to proceed....
msg185181 - (view) Author: Roger Serwy (roger.serwy) * (Python committer) Date: 2013-03-25 03:03
The file uploaded in 2010 falls under my PSF contributor agreement which 
has the Apache V2.0 license. The updates to the code in the latest 
version of IdleX fall under the NCSA license.
msg185543 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2013-03-30 05:05
PSF accepts contributions from authors under Contributor Agreements. It does not grab software from 3rd parties, no matter how lenient the license. Roger, if you assigned all rights to the University, you should talk with them about either getting some back or about the University signing a corporate agreement. Also, there is a new psf 'legal' list for discussing legal matters.

And yes, I am interested in line numbers also. I do not need them to edit my own files, but they are handy when communicating about stdlib files.
msg185805 - (view) Author: Roger Serwy (roger.serwy) * (Python committer) Date: 2013-04-02 04:14
I received permission from UIUC to relicense IdleX code used for contributions into Python.
msg213386 - (view) Author: Saimadhav Heblikar (Saimadhav.Heblikar) * Date: 2014-03-13 11:57
As a part of my GSOC 2014 proposal, i had prepared a mockup which adds linenumbering feature to a text widget.I am adding the mockup along with a image.

Intercepts low level calls and detects if any of the actions modify current view.If they do , then re-render the line numbers.Uses a canvas to display,(using create_text)

*Also contains code to add breakpoints.Not a part of this issue,so ignore that aspect
msg220973 - (view) Author: Saimadhav Heblikar (Saimadhav.Heblikar) * Date: 2014-06-19 13:16
Attached is a patch which adds linenumbering to IDLE. [1] is the current discussion regarding this topic at idle-dev.

This patch is a initial patch. It is missing menu and config additions. I have posted it in this state, so that we can catch platform specific bugs and performance related issues(if any). In the patch, all major additions are in a new file This is keeping easier debugging in mind. The code will be restructured in the next version of the patch, which will have the above said additions and performance optimization(if any).

I will be working on menu additions, config dialog additions and performance optimization in the mean time.

For those who are interested, I used, 'dlineinfo', '%d.0' % linenum) instead of text.dlineinfo('%d.0' % linenum), because using any text.* method, used to cause a continuous increase in memory usage. I found this out the hard way, when, earlier I was making repeated text.index() calls.

[1] -
msg221256 - (view) Author: Saimadhav Heblikar (Saimadhav.Heblikar) * Date: 2014-06-22 14:41
List of additions/changes
    1. EditorWindow uses LineNumber.Text instead of tkinter.Text.
    2. Added linenumber canvas to IDLE windows except PyShell
    3. Some info about LineNumber.Text
        a) Inherits tk.Text
        b) Generates <<Changed>> virtual event, when insert, delete, replace,
           cursor changes position, window resized, scrolled etc. Nothing else
           is affected. The result of the original call is returned.
    4. LineNumber.LineNumberCanvas info
        a) font_color and breakpoint_color have default values
        b) Linenumber and breakpoints disabled by default. Instantiating
           a LineNumberCanvas object does not pack it.
        c) Pack it programmatically by calling its "attach" method.
           Compulsorily supply the text widget to attach to.
           Supply other parameters like font_color, background, 
           breakpoint_color as necessary.
        d) Unpack using "detach" method.
        e) Breakpoint feature is enabled only if LineNumberCanvas can 
           "see" an EditorWindow instance called "editwin" as its attribute.
           It(editwin) should implement set_breakpoint(linenumber) and 
           clear_breakpoint(linenumber) methods. EditorWindow responsible
           for binding breakpoint action on the canvas to LineNumberCanvas'
           toggle_breakpoint method.
        f) Contains a htest for GUI testing linenumbering and breakpoints.
        g) Any valid color can be set for linenumber canvas' background,
           its font color and breakpoint color. NS: Breakpoint does not have
           a background color.
        h) Linenumber canvas enabled by default.
    5. Linenumber preferences in configDialog's "General" tab.
       Highlight preferences in  configDialog's "Highlight" tab.
    6. Other changes
       a) Refactoring of PyShell's set_breakpoint_here, set_breakpoint,
          clear_breakpoint_here and clear_breakpoint to make more consistent.
msg221321 - (view) Author: Raymond Hettinger (rhettinger) * (Python committer) Date: 2014-06-22 22:44
FWIW, I don't think line numbers should be "enabled by default" for IDLE or any other editor.  It isn't the norm and can be distracting.  If you've ever tried to use IDLE to teach kids, you would value minimizing visual distractions.
msg221341 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2014-06-23 04:57
Many IDEs do show line numbers by default. And it does make discussing code with others simpler, e.g. when teaching. But I tend to agree with Raymond that it would be better to keep the default interface clean. Anyone who will want line numbers will be able to turn them on them easily.
msg223086 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2014-07-15 05:07
I tried v2 and it works, subject to the following comments.

1. (The biggest issue) For me, the 'obvious' implementation would be a narrow text window using the same font and size as the main window. The canvas introduces the problem of having to calculate the number position instead of letting tk do it for free. On my screen, they are two pixel too low.

The fixed size for numbers can be a problem also. If someone with super eyesight (or a system that displays chars larger than nominal) uses 8 pt type, the bigger numbers are jammed together. If someone with poor eyesight uses a bigger font, the numbers will be too small. (This applies to dialogs too, but that is another issue.)

Breakpoint symbols, for the few people who use them, could be selected from ascii ('|', '>', or '+') or non-ascii symbols. I do not think we need a canvas just to have a graphic for this.

I am also interested in a marginal Text_strip class because I think one might be a possible solution to some of the problems with the Shell.

2. Roger claimed "IDLE does not have a method to broadcast that a font was changed". Roger, as extension writer, had to take Idle as given, whereas we can add a 'font-changed' virtual event.  This seems like a good idea. So would be a 'highlights-changed' event. It appears that editor windows get poked (notified) whenever the preferences Apply or Ok button are hit. Text is blackened and re-colorized even if there is no option change. (Edit a large file like to see this.) Adding this event should be a separate issue that this one depends on.

3. To me, the default background for line numbers is way too dark.  Easily changed.

4. There should be a way to toggle line numbers in individual editor windows independently of the default setting for a user. (I agree that the delivered default should be off.)  I would add this to the Format menu.
msg224504 - (view) Author: Saimadhav Heblikar (Saimadhav.Heblikar) * Date: 2014-08-01 14:11
Attached is Text widget based implementation to add linenumbering to IDLE.

NS: The purpose of comment block in update_sidebar_text_font
The reason why it is there is to allow tk to "catch up" with changes(esp on large files) after a font change. While it *IS* not required for me, it *WAS* in the past. I don't know what has changed, but as it stands it is not required, IDK if it has been caused by a hardware change on my end.
Anyways, while reviewing, please open a large file, and change the font size from minimum to maximum to minimum many times. Post here if the Linenumbering goes out of sync with and without uncommenting the comment block.
msg224911 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2014-08-06 06:11
I believe the patch works slightly better on my system with the above mentioned block uncommented. The problem being addressed is this. The editor sendx a set command to the vertical scrollbar after *any* action that affects the lines displayed. We intercept the set command to set the sidebar in addition to the scrollbar slider. Works great. But after a font change, the editor emits two badly off and bogus commands, causing line numbers and the slider to unnecessarily jiggle up and down (or down and up). It then send a third set command with the proper fractions. Attached is the file I wrote to verify visual observations.

I would like to commit this after checking a few details mentioned in previous messages. I would, however, like someone to first test the latest patch on OSX.
msg225377 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2014-08-16 00:19
As Terry requested, here are a few comments on running linenumber-text-widget-v1.diff on OS X.  Overall, this looks to me to be a useful option.

1. Having line numbering enabled by default was a bit of a surprise, particularly in light of 2.

2. The "Toggle Linenumbering" menu item should be in the Options menu cascade, not the Window(s) one.  I believe Options is where other extensions add their menu items.  Initially, I could see no way to disable line numbering without knowing how to create, if necessary, and edit ~/.idlerc/config-extensions.cfg, which presumable few users do.  Only later did I stumble across the "Toggle Linenumbering" menu option in the Window menu cascade.  As an OS X user, I would never have thought to look there; normally on OS X, that menu cascade is limited to options related to selecting windows or tabs and selected options related to them, like Zoom or Minimize.  (Presumably, the edit extensions preferences feature will help provide another, standard way for the user to deal with this in the long run.)  

3. I found the default color values made the line numbers difficult to read.  Perhaps a better default would be fgcolor=White instead of Black when bgcolor=Gray?

4. The extension fails to load with Tk 8.4.x:
    _tkinter.TclError: unknown option "-inactiveselectbackground"

It appears that option is new in Tk 8.5:

I'm not sure what to recommend here.  Eventually, 8.4.x usage will slowly fade away so demanding that IDLE, especially extensions, not depend on any post-8.4 features may be a too-restrictive constraint.  Perhaps it is OK to just test for pre-8.5 at extension initialization and cleanly skip if Tk is too old.

5. The LineNumber extension should be added to the list of default extensions in the IDLE Help file (Lib/idlelib/help.txt) and the IDLE section of the Library Reference (Doc/library/idle.rst).  Also add the "Toggle Linenumbering" menu item.

6. The LineNumber extension config-extensions.def options need to be documented for the user (this is a generic issue for IDLE extensions).  For example, I would not have had any clue that it was possible to enable line numbers for the shell window without examining the file and noticing the "enable_shell=0" hint.

(Noted in passing: while the help/doc suggests: "See the beginning of config-extensions.def in the idlelib directory for further information.", even in the unlikely event that a user knew in what directory to look for it, it's not possible to open that file in an IDLE editor window with the current default Cocoa Tk's since Cocoa Tk does not provide a filter option on the open window; only .py* and .txt files can be opened.)
msg225379 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2014-08-16 01:08
Thanks for the comments.

1. I previously said somewhere 'enabled but initially off' by default. I intend to make sure of that before committing.

2. Option menu sounds good..

3. I tried out a *much* lighter gray, as with Notepad++. Saimadhav is leaving that to me to determin and change.

4. If inactiveselectbackground is needed and there is no alternative (Saimadhav?) I would be inclined to skip pre-8.5.

5. I have put off writing a doc until the spec is finished. (And I would like to have help.txt auto-generated from idle.rst, which is an issue somewhere.)

6. I do not intend line numbering for Shell. Rather, the sidebar should be used for prompt and output markers to solve #7676. The patch has been written with this in mind. How to handle this vis-a-vis config-extensions had not been decided yet. I would prefer one [sidebar] section, but Saimadhav does not think that is possible.  In any case, we have focused first on just line numbering, which I would like to push with the revisions indicated above, and then adding breakpoint toggling (in a followup patch, separately reviewed) and the shell sidebar (in yet another patch, ditto).

(Note. see #22209)
msg225384 - (view) Author: Saimadhav Heblikar (Saimadhav.Heblikar) * Date: 2014-08-16 06:24
@ Ned Deily:
Thank you for the comment's.

1. I documented it in the config-extensions.def how to make it visible on startup(or not). In the new patch, it is not visible by default.

2. I have made the changes.

4. I'll explain the reason why this argument is required:
Without this argument, if a user "selects" the sidebar Text widget, a highlight can be seen around the selected area. Adding this argument prevents it showing up.
The new patch prevents this unknown option error, by adding the inactiveselectbackground only if Tk version >= 8.5

(Because of this issue which you raised, I found a new bug and fixed it - see below.)

5. Done

6. I added a comment in the config-extensions.def file. The enable_shell option has been removed for now. It is not related to linenumbering.

@Terry Reedy:

1. Done. Disabled by default

4. I mentioned the reason why it is required above.

New bug which was discovered because of 4 and fixed:
Scrolling on the sidebar text widget using mouse by dragging would scroll just the sidebar text widget and not the main text widget. This has been fixed by adding  self.text.yview_moveto(args[0]) in vbar_set.
msg225387 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2014-08-16 08:33
Thanks for addressing the comments.  With linenumber-text-widget-v2.diff:

1. With Tk 8.4, the extension gets a bit further but still fails:

  File "/Users/nad/Projects/PyDev/active/dev/3x/t/idlelib/", line 9, in <module>
  File "/Users/nad/Projects/PyDev/active/dev/3x/t/idlelib/", line 1570, in main
    shell = flist.open_shell()
  File "/Users/nad/Projects/PyDev/active/dev/3x/t/idlelib/", line 327, in open_shell
    if not self.pyshell.begin():
  File "/Users/nad/Projects/PyDev/active/dev/3x/t/idlelib/", line 1054, in begin
    (sys.version, sys.platform, self.COPYRIGHT, nosub))
  File "/Users/nad/Projects/PyDev/active/dev/3x/t/idlelib/", line 1296, in write
    count = OutputWindow.write(self, s, tags, "iomark")
  File "/Users/nad/Projects/PyDev/active/dev/3x/t/idlelib/", line 40, in write
    self.text.insert(mark, s, tags)
  File "/Users/nad/Projects/PyDev/active/dev/3x/t/idlelib/", line 25, in insert, chars, tags)
  File "/Users/nad/Projects/PyDev/active/dev/3x/t/idlelib/", line 81, in insert
  File "/Users/nad/Projects/PyDev/active/dev/3x/t/idlelib/", line 158, in update_sidebar_text
    self.sidebar_text['width'] += width_difference
TypeError: Can't convert 'int' object to str implicitly

2. I just noticed that the (now) "Line Number" menu item has no visual indication of its state nor does it preserve its state over IDLE sessions.  The Code Context extension for edit windows does both: the menu item has a checkmark when enabled and that state is restored when IDLE is restarted.
msg225402 - (view) Author: Saimadhav Heblikar (Saimadhav.Heblikar) * Date: 2014-08-16 17:02
On 16 August 2014 14:03, Ned Deily <> wrote:
> 1. With Tk 8.4, the extension gets a bit further but still fails:
I fixed this now. Please let me know how it works now. 

> 2. I just noticed that the (now) "Line Number" menu item has no visual indication of its state nor does it preserve its state over IDLE sessions.  The Code Context extension for edit windows does both: the menu item has a checkmark when enabled and that state is restored when IDLE is restarted.

msg225411 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2014-08-16 19:52
>> 1. With Tk 8.4, the extension gets a bit further but still fails:
>I fixed this now. Please let me know how it works now. 

Yep, 8.4 now seems to work just fine.

>> 2. I just noticed that the (now) "Line Number" menu item has no visual indication of its state nor does it preserve its state over IDLE sessions.  The Code Context extension for edit windows does both: the menu item has a checkmark when enabled and that state is restored when IDLE is restarted.

Thanks, that's much better.  One small problem: the "Line Number" menu option appears to be a global one, affecting all new windows.  But, if the option is toggled when more than one window is open (edit and/or shell), only the window which has the focus changes (adds or deletes the numbering sidebar); the other windows do not change although their "Line Number" menu option does (i.e. the check mark correctly appears or disappears).  So now the other windows are "out-of-sync" WRT line number status and could lead the user to think that the "Line Number" option is supposed to be local to each window.  Then when restarting IDLE, all windows are created with the last global value of "Line Number".  If the option is supposed to be global, then, when toggling the menu option, all open windows should ideally be updated immediately or at least updated the next time each becomes active.
msg225416 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2014-08-16 21:18
I believe the line number behavior Ned describes is the same as the Code Context behavior.  I just tested the latter to verify Saimadhav's email report. I think both *should* be the same.

The docs say Code Context is a toggle. However, it does not mention the checkmark or the initial state of new windows. Clicking Code Context toggles the state of the current window only; I think this is proper. I also want that for line-numbering.

It also toggles the initial state of future windows, as indicated by the checkmark.  In other words, the checkmark does NOT indicate the state of the current window, which is visually obvious anyway.  Instead, it indicates the initial state of new windows, and it the latter that is saved across sessions.  This behavior may not be expected, but given the alternatives*, I consider it plausible if not designed. It definitely needs to be documented. 

* So what are the alternatives?

1. Make the checkmark toggle local to the window, as you expected. But then what would be the initial state of new windows (and saved as such)?  One solution would be two Code Context options, one for current window (checkmark not really needed) and another for future windows (saved). The current design cleverly combines two buttons into one. Perhaps it is too clever, but I don't like two buttons either. Another solution would be to just use whatever is in config default+user. This would be more palatable once we add a config-extension dialog. But it would still be more of a nuisance than the current within-session switching.

2. Make the window toggle global to all current windows.  I suspect that this would be visually obnoxious.  If someone hated Context/Numbering and only turned either on temporarily, intended for one window, out of necessity, it would be behaviorally obnoxious.  There may also have been a performance consideration that is somewhat but not totally obsolete.

The feature was added in #936169 in 2005. AFAIK, there have been no complaints. There are none I could find on the tracker. So my inclination is to commit Line Numbering with the same menu behavior as Code Context.  If we ever want to change (both), that should be a new issue and discussion.  Tal, you were involved in #936169. Any comments?
msg225418 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2014-08-16 21:32
3.  Make the checkmark toggle local to the window and make the preferences 
option toggle default value to all windows. This is how it works in Kate (KDE 
text editor).
msg225419 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2014-08-16 21:46
I believe your 3. is my 1b. It really requires being able to change preference for an extension without editing ~HOME/.idlerc/config-extensions.cfg by hand. See #3068.
msg226048 - (view) Author: Roger Serwy (roger.serwy) * (Python committer) Date: 2014-08-29 03:51
When it comes to the checkmark next to Code Context in the menu, be aware of issue13179. You can launch IDLE, open two separate editors, enable Code Context in one, and the other will have its menu entry checked as well when it is not enabled.
msg226372 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2014-09-04 19:03
And if you enable code context in the other window, neither will have the checkmark. As I said, the one button is being used to toggle two things: the state of the current window and the default for future windows, and the checkmark only indicates the second. I agree that this is confusing.
msg229709 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2014-10-20 02:33
A blog post replay mentioned  I will take a look when I get back to this issue.  I have also thought trying the Extension configure menu approach #3068 of pasting widgets on a scrollable canvas to both moving together.
msg248131 - (view) Author: Mark Roseman (markroseman) * Date: 2015-08-06 15:48
Just as a point of information and possible future reference, there is a 'tklib' (collection of Tk-related modules written in Tcl) module called 'ctext' which does syntax highlighting as well as implements the line numbering thing (also using a text widget beside the main text). There may be some tricks in there to steal.
Date User Action Args
2015-08-07 23:10:33terry.reedylinkissue24825 superseder
2015-08-06 15:48:22markrosemansetmessages: + msg248131
2015-08-06 15:30:44markrosemansetnosy: + markroseman
2015-03-20 05:33:44irdbsetnosy: + irdb
2014-10-20 04:59:27terry.reedylinkissue13504 dependencies
2014-10-20 02:33:20terry.reedysetdependencies: + IDLE - Add an extension configuration dialog
messages: + msg229709
2014-09-04 19:03:13terry.reedysetmessages: + msg226372
2014-08-29 03:51:10roger.serwysetmessages: + msg226048
2014-08-16 21:46:12terry.reedysetmessages: + msg225419
2014-08-16 21:32:10serhiy.storchakasetmessages: + msg225418
2014-08-16 21:18:51terry.reedysetmessages: + msg225416
2014-08-16 19:52:01ned.deilysetmessages: + msg225411
2014-08-16 17:02:54Saimadhav.Heblikarsetfiles: + linenumber-text-widget-v3.diff

messages: + msg225402
2014-08-16 08:33:02ned.deilysetmessages: + msg225387
2014-08-16 06:24:53Saimadhav.Heblikarsetfiles: + linenumber-text-widget-v2.diff

messages: + msg225384
2014-08-16 01:08:04terry.reedysetmessages: + msg225379
2014-08-16 00:19:43ned.deilysetmessages: + msg225377
2014-08-06 06:11:05terry.reedysetfiles: +

nosy: + ned.deily
messages: + msg224911

assignee: terry.reedy
stage: commit review
2014-08-01 14:11:49Saimadhav.Heblikarsetfiles: + linenumber-text-widget-v1.diff

messages: + msg224504
2014-07-15 05:07:53terry.reedysetmessages: + msg223086
2014-06-23 04:57:17taleinatsetmessages: + msg221341
2014-06-22 22:44:14rhettingersetnosy: + rhettinger
messages: + msg221321
2014-06-22 14:50:43Saimadhav.Heblikarsetnosy: + taleinat
2014-06-22 14:41:18Saimadhav.Heblikarsetfiles: + line-numbering-v2.diff

messages: + msg221256
2014-06-19 13:16:55Saimadhav.Heblikarsetfiles: + line-numbering-v1.diff
versions: + Python 3.5, - Python 3.3
nosy: + jesstess

messages: + msg220973
2014-03-13 11:58:53Saimadhav.Heblikarsetfiles: + line numbering mockup image.png
2014-03-13 11:58:09Saimadhav.Heblikarsetfiles: - Screenshot from 2014-03-09 16:09:37.png
2014-03-13 11:57:57Saimadhav.Heblikarsetfiles: + Screenshot from 2014-03-09 16:09:37.png
2014-03-13 11:57:10Saimadhav.Heblikarsetfiles: +
nosy: + Saimadhav.Heblikar
messages: + msg213386

2013-07-11 13:15:47serhiy.storchakasetnosy: + serhiy.storchaka
2013-07-11 02:58:50JayKrishsetnosy: + JayKrish
2013-04-02 04:14:18roger.serwysetmessages: + msg185805
2013-03-30 05:05:26terry.reedysetnosy: + terry.reedy

messages: + msg185543
versions: - Python 3.1, Python 3.2
2013-03-25 03:03:58roger.serwysetmessages: + msg185181
2013-03-25 01:28:55Todd.Rovitosetmessages: + msg185173
2013-03-24 23:11:29roger.serwysetmessages: + msg185170
2013-03-24 22:20:14Todd.Rovitosetmessages: + msg185166
2013-03-24 22:18:16Todd.Rovitosetfiles: + 17535IDLELineNumbers3dot4.patch
keywords: + patch
messages: + msg185164
2013-03-24 05:13:58Todd.Rovitosetnosy: + roger.serwy
2013-03-24 05:13:33Todd.Rovitocreate