Subject: Re: bug#75729: [PATCH v4] python-mode: add `exit` to the list of block-enders

From: Eli Zaretskii <[email-masked]>
Date: Sat, 25 Jan 2025 12:54:04 +0200

> From: Konstantin Kharlamov <[email-masked]>
> Cc: Eli Zaretskii <[email-masked]>, Stefan Kangas <[email-masked]>, 
> 	[email-masked]
> Date: Thu, 23 Jan 2025 01:12:32 +0300
> 
> On Thu, 2025-01-23 at 01:01 +0900, kobarity wrote:
> > 
> > Ship Mints wrote:
> > > Do you want to consider more of the terminal calls? os.exit()
> > > os._exit()
> > > sys.exit() quit() (though quit raises SystemExit which could be
> > > locally
> > > caught; I think it's equivalent to raise SystemExit?).
> > 
> > I too would prefer to include these.  Because I think `sys.exit()` is
> > recommended over `exit().
> > 
> > https://pylint.readthedocs.io/en/latest/user_guide/messages/refactor/consider-using-sys-exit.html
> > 
> > Another point is that although `exit()` ends current codeflow, `exit`
> > does not end current codeflow.  This is where it differs from
> > `return`, etc.
> > 
> > This is a bit complicated, but how about the following code?
> > 
> >             (block-ender       (seq
> >                                 symbol-start
> >                                 (or
> >                                  (seq (or
> >                                        "break" "continue" "pass"
> > "raise" "return")
> >                                   symbol-end)
> >                                  (seq
> >                                   (or
> >                                    (seq (? (or (seq "os." (? ?_))
> > "sys.")) "exit")
> >                                    "quit") (* space) "("))))
> 
> Thank you, I replaced the code and tested it, it works for me. I did a
> small change though: I moved the `(* space…` part on the new line to
> align it with `(or …)`. In the older code it looked like this text is
> part of the `(or …)` expression. But please see if it's okay this way,
> you definitely have more ELisp experience 😊

Thanks, installed on the master branch, and closing the bug.

Please in the future always mention the bug number (when known) in the
commit log message.