On 25 Aug 2020, at 14:34, Per Persson via TextMate wrote:
Hi,
I have noticed a weird behavior with indentation that I'm pretty sure hasn't always been present (as it would have driven me nuts). I've only seen this with python files, and since I keep my own python3 bundle I removed that and installed the default python bundle with the same results.
Let me try to illustrate.
Using the settings increaseIndentPattern = '^\s*(class|((async\s+)?(def|with|for))|elif|else|except|finally|if|try|while)\b.*:\s*$|({|[)\s*$'; decreaseIndentPattern = '^\s*(elif|else|except|finally)\b.*:|^\s*(}|])'; disableIndentCorrections = :true; indentOnPaste = 'simple';
I forget the details of the behavior I didn’t like before, but I use
disableIndentCorrections = 'emptyLines'
Give that a try. Python is my primary language and it mostly does what I want. The exceptions:
It doesn’t auto-indent after `(`, but that’s probably the language grammar.
After a block like
~~~python class MyClass: def action(self): pass
⇥ ~~~
Hitting ⇥ at the location shown above will line up with `pass` and not the previous `def`. I guess it’s doing the thing that makes sense, even though it’s never what I want and bites me almost daily.