[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#37127: [PATCH] cperl-mode: Suppress a misleading message
From: |
Stefan Monnier |
Subject: |
bug#37127: [PATCH] cperl-mode: Suppress a misleading message |
Date: |
Fri, 30 Oct 2020 10:30:04 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
> +(ert-deftest cperl-bug37127 ()
[...]
> + ;; part two: Regex terminator missing -> message
> + (ert-with-message-capture collected-messages
> + (with-temp-buffer
> + (insert "$_ =~ /(..;")
> + (goto-char (point-min))
> + (cperl-mode)
> + (search-forward ".")
> + (let ((last-command-event ?\)))
> + (cperl-electric-rparen 1)
> + (cperl-find-pods-heres (point-min) (point-max) t)))
> + (should (string-match "^End of .* string/RE"
> + collected-messages)))))
Why is this behavior desirable?
I mean, I don't necessarily mind it, but as a user I find it odd that
typing a `)` which has a matching `(` nearby (which can be found without
crossing any string/RE boundary) should emit a warning about some
"unrelated" surrounding entity like the RE in which it is located.
Emacs usually doesn't emit any such warning when editing within an
unclosed string.
I don't think we should necessarily change CPerl's behavior in this
regard, but that we shouldn't consider it a feature and thus shouldn't
enforce it in our tests.
Stefan