[wingide-users] RE: inserting comments on a line
Wingware Support
support at wingware.com
Mon Dec 14 14:25:31 MST 2009
Warren, Russell wrote:
> Mitchell L Model wrote:
>> I am returning to serious Wing use after several years of only
>> occasional light use. I think I am missing something regarding
>> comments: what's the easiest way to insert a comment on the current
>> Python line? More specifically, I would like comments to all start at
>> a designated column as they do in Emacs. The only thing I seem to be
>> able to do now is hold the spacebar down until the cursor gets near
>> the column I want, type a # and a space, then my comment. There must
>> be something better (?).
>
> A few years back someone already made an extension that did exactly
> this. It was a great script. I've recently been lamenting its loss
> after a few pc replacements where I foolishly didn't keep my wing
> scripts for one of them.
>
> You should be able to search the old wing mailing list entries to find
> it, but I haven't had much luck. It was quite a while ago.
I couldn't find it either but here's an implementation. I've added this
to our scripts/editor_extensions.py examples so it won't get lost again.
You can bind a key to use it to one of the following:
insert-spaces-to-tab-stop
insert-spaces-to-tab-stop(tab_size=50)
The first one uses the defined tab size for the file (depends on preferences
and in some cases file content). The second one would be how you set a fixed
column for comments.
The script is:
import wingapi
def insert_spaces_to_tab_stop(tab_size=0):
"""Insert spaces to reach the next tab stop (units of given tab size
or editor's tab size if none is given)"""
ed = wingapi.gApplication.GetActiveEditor()
if ed is None:
return
doc = ed.GetDocument()
if tab_size == 0:
tab_size = ed.GetTabSize()
start, end = ed.GetSelection()
lineno = doc.GetLineNumberFromPosition(start)
line_start = doc.GetLineStart(lineno)
offset = start - line_start
remainder = offset % tab_size
insert = ' ' * (tab_size - remainder)
if start != end:
doc.DeleteChars(start, end-1)
doc.InsertChars(start, ' ' * (tab_size - remainder))
ed.SetSelection(start + (tab_size - remainder), start + (tab_size - remainder))
Hope that helps.
--
Stephan Deibel
Wingware | Python IDE
Advancing Software Development
www.wingware.com
More information about the wingide-users
mailing list