Comments (5)
There is a new setting trimLinesWithOnlyWhitespace
that has the behavior we discussed above. Please update to at least version 1.10.0
.
Note that you might need to update vscode itself to 1.45.0
first.
from vsc-python-indent.
This has been logged before (#37) and closed with a "better solution" of using the VS Code option to remove whitespace on save, but I personally don't like this option - if this is easy to resolve, I would rather have the option of retaining the behaviour of the default editor.
Thanks!
from vsc-python-indent.
VSCode's behavior around automatically trimming this whitespace is actually fairly complex: it is not just triggered by pressing the Enter
key, and it is stateful. Currently this extension is only triggered by the Enter
key (this extension actually makes the Enter
key a keyboard shortcut for the indent behavior, not a feasible solution for every character on the keyboard), and is totally stateless.
To see this, create the following file (with this extension uninstalled/turned off), line numbers on the left for clarity.
1 def my_example():
2 print('something')
3 ····
4 |
Make sure you put your cursor on line 4, the empty line. Then navigate back up to 3 and press Enter
. Notice it does not delete the spaces.
1 def my_example():
2 print('something')
3 ····
4 ····|
5
This shows the behavior is stateful -- if we hadn't navigated to line 4 before going back to line 3, then the spaces on line 3 would've been deleted. Without doing anything else, press the down arrow to go to line 5, and press any character, e.g. "a", and see that line 4 becomes empty.
1 def my_example():
2 print('something')
3 ····
4
5 a
This shows that the behavior is triggered by more than just Enter
.
from vsc-python-indent.
All that said, I'm not opposed to adding a subset of VSCode's behavior. It'd probably make sense to start with just case when you press Enter
on a line that only has whitespace in it. I think it'd make sense to wrap this in a parameter which is off by default, just so we don't mess up any existing workflows.
from vsc-python-indent.
Makes sense. For me, the difference that bugs me and that I notice all the time is the case I mentioned, so if we can do as you suggest and handle this limited case with a flag, that would be fantastic.
from vsc-python-indent.
Related Issues (20)
- install extension offline, not compatible version HOT 1
- Extension causes high cpu load HOT 2
- Maybe adjust behavior of useTabOnHangingIndent? HOT 1
- keepHangingBracketOnLine doesn't seem to be working for square brackets HOT 3
- Automatic dedent for return doesn't always work HOT 12
- One space get inserted HOT 1
- # region Description invalid
- Connection to server got closed. Server will not be restarted. HOT 2
- Fail to generate Indentation for a specific file and code copied from that file HOT 1
- Pattern matching syntax HOT 1
- Possibility to transfer functionality to other languages? HOT 1
- The plug-in is not compatible with vscode-neovim HOT 7
- Enter when in a if-line HOT 1
- Which theme does demo.gif use? HOT 2
- Publish to open-vsx.org? HOT 3
- Extreme lag from pressing Enter to action when extension is running in remote (ssh) host. HOT 6
- multiple indent blank lines will not clear white space before line HOT 2
- Highlighting ` *` and pressing enter doesn't do anything. HOT 1
- python Indentation of the current line is automatically reduced after line wrap HOT 2
- Add extra 3 whitespaces when add new line and broke indent HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vsc-python-indent.