* lisp/emacs-lisp/lisp-mode.el (lisp--el-non-funcall-position-p):
Tweak `condition-case' position check to skip the VAR form.
(< pos (point))))
(and (eq parent 'condition-case)
(progn
- (forward-sexp 2)
- (< (point) pos))))))))))
+ (forward-sexp 1)
+ ;; If we're in the second form, then we're in
+ ;; a funcall position.
+ (not (< (point) pos (progn (forward-sexp 1)
+ (point)))))))))))))
(defun lisp--el-match-keyword (limit)
;; FIXME: Move to elisp-mode.el.
"(\\(if\\)")
nil)))
-(ert-deftest test-elisp-font-keywords-if ()
+(ert-deftest test-elisp-font-keywords-4 ()
:expected-result :failed ; FIXME bug#43265
(should (eq (test--font '(condition-case nil
(foo)
"(\\(if\\)")
nil)))
+(ert-deftest test-elisp-font-keywords-5 ()
+ (should (eq (test--font '(condition-case (when a)
+ (foo)
+ (error t))
+ "(\\(when\\)")
+ nil)))
+
(provide 'elisp-mode-tests)
;;; elisp-mode-tests.el ends here