Tal Einat <talei...@gmail.com> added the comment:

> 1.  The name `formatregion` could probably be improved.

FormatRegion is good enough, and is consistent with FormatParagraph.

> 2.  The `classifyws` method is a module level method in editor.  It's needed 
> in `formatregion` also, so I made a copy (bad!).  I would have liked to 
> create a `utils.py` for this, but maybe there's a better place for it?  It 
> doesn't just operate on text widgets as it is just a string function.  I'm 
> sure there's an obvious choice that I'm missing.  See also #4 below.

As you're just trying to refactor with minimal changes, this can just stay 
as-is IMO. 

My optimal end solution would be:
1. remove classifyws()
2. create get_line_indent(line) function which returns re.match(r'[ \t]*', 
line).end()
3. use len(indent) and/or len(indent.expandtabs(tabwidth)) as needed.
4. get_line_indent(line) is so simple that having it duplicated would be fine 
IMHO.

> 3.  `tabwidth` and `indentwidth` in `formatregion` are getting the values 
> from the editor window.  I thought about adding those to the init for 
> FormatRegion, but then they would need to be updated if config changed.  Not 
> sure which way would be better.

I say, leave this the way it is.

> 4.  Other methods in editor might be candidates for moving, such as the 
> auto-indent methods (search on `### begin autoindent code ###` in editor) and 
> specifically `smart_indent_event`.  Moving more of the indent code to a 
> separate module helps with #2 and #3 above, but I wasn't sure how much of the 
> text formatting should be moved.  I thought it best to start with the minimal 
> change.

I wouldn't move event handlers. I will say that the code in some of those 
functions could use a bit of cleanup and standardization WRT indentation 
handling, e.g. using get_line_indent() as described above in a few places where 
it is naively re-implemented with a loop.

----------
nosy: +taleinat

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue36390>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to