hdima / python-syntax

Python syntax highlighting script for Vim
http://www.vim.org/scripts/script.php?script_id=790
MIT License
363 stars 109 forks source link

How to enable folding ? #51

Open amigrave opened 8 years ago

amigrave commented 8 years ago

Is there a preferred way to use proper folding with python-syntax ?

By "proper folding" I mean not a trivial folding solely indent based but a more decent one based on def, class and # {{{ }}} markers declarations.

I tried to use Python-Syntax-Folding and braceless.vim but none seems to be compatible with python-syntax.

The indent mode of Python-Syntax-Folding suits my needs but lacks python 3 syntax.

purpleP commented 8 years ago

@amigrave I'd like to point out some things about 'trivial' indent folding.

  1. It's possible to fold more with indent folding, than with existing 'smart' foldings. For example in pycharm I'm dissatisfied that I can't fold big dictionaries, because it only folds function and classes definitions.
  2. In any language I know decently written code is properly indented. So any meaningful construct that you'd like to fold is, guess what, should be also indented. So what would syntax folding or any other folding could bring to that?
amigrave commented 8 years ago

Hi @purpleP

Well I guess it's a matter of taste and workflow.

In my case, I don't want to fold more levels than classes and functions. For some rare exceptions such as big dictionaries I use markers which is the third token set I want to be folded along with class and def.

When I open a python file, I want all classes, functions and markers to be folded, but I would hate to have all possible indent levels folded too.

I guess we have different ways to use folding and my way would not suit your needs, but your way does not suit mine either :-)

nfnty commented 7 years ago

SimpylFold is by far the best Python folding plugin.

amigrave commented 7 years ago

@nfnty Thanks, looks great except for the lack of support for markers ( # {{{)

I see you're pretty active in the development of SimpylFold. I've dropped an issue about this: tmhedberg/SimpylFold#81