This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2015年03月14日 23:43 by rhettinger, last changed 2022年04月11日 14:58 by admin. This issue is now closed.
| Pull Requests | |||
|---|---|---|---|
| URL | Status | Linked | Edit |
| PR 1602 | closed | louielu, 2017年05月16日 10:39 | |
| PR 1603 | closed | louielu, 2017年05月16日 10:41 | |
| PR 1642 | closed | louielu, 2017年05月18日 05:36 | |
| PR 1643 | closed | louielu, 2017年05月18日 05:51 | |
| PR 1644 | closed | louielu, 2017年05月18日 05:55 | |
| Messages (11) | |||
|---|---|---|---|
| msg238110 - (view) | Author: Raymond Hettinger (rhettinger) * (Python committer) | Date: 2015年03月14日 23:43 | |
We have an option to clear trailing whitespace (Format / Strip trailing whitespace) but it isn't always clear when to use it (because the trailing whitespace is invisible). One thing the can be done is to colorize trailing white space to make it more visible (this idea is inspired by a similar feature in mercurial's colorized diffs). Another option is put a hook on File / Save to scan for trailing whitespace and offer to remove it (this idea is inspired by the whitespace commit hook used in Python's own source code management). |
|||
| msg238741 - (view) | Author: Terry J. Reedy (terry.reedy) * (Python committer) | Date: 2015年03月21日 00:00 | |
I agree that this area needs improvement. 'Strip trailing whitespace' should strip trailing blank lines at the end of a file, as well as trailing blank spaces at the end of each line. Both are required to commit to our repository. I would like to have a configuration option to always strip trailing blanks, at least for .py files. I believe the cursor moving from one line to another is an event that is or could be caugth and acted on. If so, trailing spaces could be removed immediately from the line left, and Save would only have to check the current line and the end of the file. I would rather remove blanks than mark them for later removal. |
|||
| msg293757 - (view) | Author: Louie Lu (louielu) * | Date: 2017年05月16日 10:42 | |
PR 1602 add trailing whitespace highlight, which using color from error. PR 1603 add TrimExtension to provide auto trim while saving the file. |
|||
| msg293910 - (view) | Author: Terry J. Reedy (terry.reedy) * (Python committer) | Date: 2017年05月18日 06:14 | |
Louie, when you close and open PRs, please give at least a brief explanation. In particular, how is the new one different? |
|||
| msg293911 - (view) | Author: Louie Lu (louielu) * | Date: 2017年05月18日 06:18 | |
terry, these close isn't changing anything. But I'm migrating my GitHub account from old one to new one, thus will close the PR and reopen another one, sorry for annoying mailing. |
|||
| msg293984 - (view) | Author: Cheryl Sabella (cheryl.sabella) * (Python committer) | Date: 2017年05月19日 23:30 | |
Terry, Should IDLE library modules get docstrings or is that something you'd rather not have? Putting the question here because ColorDelegator in colorizer.py doesn't have any docstrings. I wanted to read some of the IDLE code and I can try to add missing docstrings if it's something that should be done. Thanks! |
|||
| msg294005 - (view) | Author: Terry J. Reedy (terry.reedy) * (Python committer) | Date: 2017年05月20日 05:44 | |
Louie: It appears that old PRs might merge as they are but any change, including an update merge, requires that you close and re-open. When you re-open, please add "was prnnnn". It would be easier for me if you redid all the IDLE PRs in a batch or two. Cheryl: Yes. Idlelib callables need docstrings, especially because they are not otherwise documented. Based on our work on bdb, I was hoping you would work on IDLE. I added you to #30290 Some of the colorizer functions are hard to usefully characterize. This is parly because everything is done by side-effect and most functions have multiple side-effects. There is a connection between the lack of docstrings and the vestigial nature of test_colorizer. |
|||
| msg294043 - (view) | Author: Cheryl Sabella (cheryl.sabella) * (Python committer) | Date: 2017年05月20日 18:11 | |
Thanks, Terry! I'll take a look at 30290. No need to start with colorizer; it was in this ticket so I referenced it more for convenience than anything. |
|||
| msg344109 - (view) | Author: Terry J. Reedy (terry.reedy) * (Python committer) | Date: 2019年05月31日 19:17 | |
Raymond, which definition of 'whitespace' do you intent?
Git gui also marks trailing spaces in frozen diffs. This is much harder to do while editing as text can be read, keyed, and pasted. Most spaces and blank lines are only temporarily trailing, before something more is added. I believe I would dislike the idea of temporarily marking them, unless it were very subtle. They really only need to be stripped just before saving. So I think we should make that easy and not too intrusive.
1. Ask if there is trailing whitespace. For instance,
if (text.find('\s\n') != -1) or <text ends with '\n\n'>:
<Query 'strip?', with 'Yes' the default for .py files>
2. Add a setting to strip on save, default yes.
3. always strip trailing whitespace from .py files when saving.
Perhaps flash 'trailing whitespace stripped' to status bar.
The danger with any of these is stripping of wanted trailing whitespace in tripple-quoted string literals. Such whitespace is rare, but I don't know how rare.
Alternate ways of making such are better in making the blanks permanently visible in any display, not just in IDLE. The problem is teaching this.
>>> s = (
'This is justified text\n'
'with blank spaces. \n'
'It is is followed by \n'
'a trailing blank line.\n'
'\n')
>>> s
'This is justified text\nwith blank spaces. \nIt is is followed by \na trailing blank line.\n\n'
while an error marking would tell users to do it manually.
---
I closed PR 1644 because implementing features as extensions is obsolete and because the trim function duplicates the existing function (once it is fixed to include blank lines).
I am dubious about PR 1643. Tagging trailing whitespace as an error would suggest that the user should delete it. With strip on save, this would be noise.
|
|||
| msg356828 - (view) | Author: Tal Einat (taleinat) * (Python committer) | Date: 2019年11月17日 20:03 | |
See also issue33046 specifically suggesting auto-removal of trailing whitespace on saving a file, as per Raymond's second suggestion here. It has a PR which seems about ready to go. I see that as the simplest approach to this issue, both in terms of implementation and in terms of UI/UX. Could we mark that issue as superseding this one? |
|||
| msg356840 - (view) | Author: Terry J. Reedy (terry.reedy) * (Python committer) | Date: 2019年11月18日 04:51 | |
Given the issues I raised and Raymond's rejection of this, his first suggested option, on the PR, in favor of his second suggested option, #33046, I agree, at least for now. The use case for whitespace tagging would be if someone wants to selectively delete trailing whitespace. However, python/cpython rejects any trailing whitespace for all of .py, .c, and .rst files. So this must be exceedingly rare and is not something that IDLE must facilitate. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:58:13 | admin | set | github: 67855 |
| 2019年11月18日 04:51:36 | terry.reedy | set | status: open -> closed superseder: IDLE option to strip trailing whitespace automatically on save messages: + msg356840 resolution: rejected stage: needs patch -> resolved |
| 2019年11月17日 20:03:56 | taleinat | set | nosy:
+ taleinat messages: + msg356828 |
| 2019年05月31日 19:17:39 | terry.reedy | set | stage: patch review -> needs patch messages: + msg344109 versions: + Python 3.8, - Python 3.6 |
| 2017年05月20日 18:11:39 | cheryl.sabella | set | messages: + msg294043 |
| 2017年05月20日 05:44:38 | terry.reedy | set | messages: + msg294005 |
| 2017年05月19日 23:30:57 | cheryl.sabella | set | nosy:
+ cheryl.sabella messages: + msg293984 |
| 2017年05月18日 06:18:26 | louielu | set | messages: + msg293911 |
| 2017年05月18日 06:14:19 | terry.reedy | set | assignee: terry.reedy messages: + msg293910 |
| 2017年05月18日 05:55:39 | louielu | set | pull_requests: + pull_request1739 |
| 2017年05月18日 05:51:59 | louielu | set | pull_requests: + pull_request1738 |
| 2017年05月18日 05:36:15 | louielu | set | pull_requests: + pull_request1737 |
| 2017年05月16日 18:14:07 | terry.reedy | set | stage: needs patch -> patch review versions: + Python 3.6, Python 3.7, - Python 2.7, Python 3.4, Python 3.5 |
| 2017年05月16日 10:42:44 | louielu | set | nosy:
+ louielu messages: + msg293757 |
| 2017年05月16日 10:41:27 | louielu | set | pull_requests: + pull_request1694 |
| 2017年05月16日 10:39:28 | louielu | set | pull_requests: + pull_request1693 |
| 2015年03月21日 00:00:48 | terry.reedy | set | versions:
+ Python 2.7, Python 3.4 nosy: + terry.reedy messages: + msg238741 stage: needs patch |
| 2015年03月14日 23:43:04 | rhettinger | create | |