On August 25, 2020 at 9:13 PM, "Rob McBroom" <mailinglist0(a)skurfer.com>
wrote:
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.
Thanks, that did the trick! This behaviour should probably be the default for python.
The exceptions:
It doesn’t auto-indent after (, but that’s probably the language grammar.
I though it would be just a matter of adding ( and ) to increase/decrease indent patterns,
but that doesn't seem to have any effect whatsoever. In fact, removing the part of the
increase/decrease indent pattern regexes matching [{ and }] doesn't change the current
behaviour, so it seems that it is handled differently. Googling, I found a thread that
suggests that auto-indent of paired [] and {} is based a macro triggered by the return
key when in a certain scope:
http://textmate.1073791.n5.nabble.com/txmt-dev-Working-with-indentation-rul…
(about half-way down the conversation)
I say we need some authoritative advice here ;)
After a block like
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.
Yeah, I agree. A bit ugly workaround is to add a snippet that applies when caret is in
the leftmost position, e.g.:
`printf "%*s" ${TM_TAB_SIZE} ''`$0
and setting the scope selector to L:(source.python dyn.caret.begin.line) and key
equivalent to ⇥.
This would obviously only work if you use spaces for tabs...
Cheers,
Per