Comments (2)
I wouldn't say that this is intentional, in that it would be nice for the plugin to work properly in this case, but it's unlikely that we'll add support for it.
For the sake of simplicity, SimpylFold does not implement a full-fledged parser for the Python syntax, but relies on regular expressions, which necessitates that we make certain assumptions about how your code is formatted. In particular, we assume that you follow the Python community's common formatting conventions, especially those dictated by PEP 8. Other formatting styles may be accepted by the Python interpreter, but we don't explicitly strive to fold correctly when dealing with styles that do not conform to PEP 8 and other common conventions.
While I don't believe PEP 8 specifically says anything about putting ):
on its own line, there is a discussion on this topic where the majority consensus seems to be that this is a generally discouraged style.
On putting a blank line before a docstring, PEP 257 (on docstring conventions) states that, for single-line docstrings, "There's no blank line either before or after the docstring", and for multi-line docstrings, it discusses inserting a blank line after certain types of docstrings, but does not ever say to insert a blank line before the docstring, which I take to mean that this is also discouraged.
There's nothing wrong with using a different style, but we can't support everyone's unique preferred style while keeping SimpylFold simple. I'd accept a tiny patch to address your case if it (in my subjective opinion) does not make the plugin code more complicated, but otherwise, it's not something I'm going to spend time trying to support.
from simpylfold.
Thanks for the detailed response, @tmhedberg ! They are really helpful, especially the references to PEP 8 and discussion threads. I can use them in the future to convince others to follow the same convention so that this plugin works as much as possible :)
from simpylfold.
Related Issues (20)
- Not clear how to use this plugin HOT 2
- Folds are invalid after running formatter with ale HOT 3
- Releases Support HOT 1
- More configuration HOT 2
- SimpylFold with large modules makes basic operations slow HOT 3
- Auto close fold include current line after delete line HOT 5
- Comment BLOCKS (in file licenses)
- Plugin ceases to work if a module is named after its parent directory HOT 1
- Support folding long block of code by indentation? HOT 4
- Plugin is not working on Ubuntu Vi IMproved 8.0 HOT 3
- Folds only exist after using zx (E490: No fold found) when using "telescope" fzf plugin HOT 6
- Support for other languages? HOT 1
- is it possible to have only 1 line separating folds ? HOT 2
- the function/class names should have an higher contrast than the lines numbers HOT 3
- Possibility of defining custom folds? HOT 1
- Repository not found HOT 1
- Folding Code in Child Classes HOT 2
- SimpylFold won't indent top level functions HOT 4
- Can't turn off docstring folding HOT 5
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 simpylfold.