Subject: Re: bug#60012: 30.0.50; bug-reference-prog-mode: Error during redisplay with tree-sitter modes

From: Eli Zaretskii <[email-masked]>
Date: Mon, 12 Dec 2022 18:54:28 +0200

> From: Aleksandr Vityazev <[email-masked]>
> Date: Mon, 12 Dec 2022 16:38:10 +0000
> 
> The error was discovered when I was watching
> https://github.com/zevlg/telega.el. I will add copies of the necessary
> files from there to reproduce the behavior.
> 
> 1. mkidr ~/test-project
> 2. mv test-project
> 2. Add a .dir-locals.el file with the following content:
> 
> --8<---------------cut here---------------start------------->8---
> ;;; Directory Local Variables
> ;;; For more information see (info "(emacs) Directory Variables")
> 
> ((nil . ((bug-reference-url-format . "https://github.com/zevlg/telega.el/issues/%s")
>          (bug-reference-bug-regexp
>           . "<https?://\\(github)\\.com/zevlg/telega.el/issues/\\([0-9]+\\)>"))))
> --8<---------------cut here---------------end--------------->8---
> 
> 3. Add Dockerfile file with the following content:
> 
> --8<---------------cut here---------------start------------->8---
> FROM alpine:latest AS builder
> ARG tdlib_branch=master
> ARG telega_branch=master
> CMD ["/bin/bash"]
> --8<---------------cut here---------------end--------------->8---
> 
> 4. with emacs -Q (add-hook 'prog-mode-hook 'bug-reference-prog-mode)
> 5. C-x C-f ~/test-project/Dockerfile
> 6. The file will be opened with dockerfile-ts-mode
> 7. See that syntax highlighting does not work
> 
> At this time the following should be in the *Messages* buffer:
> Error during redisplay: (jit-lock-function 1) signaled (invalid-regexp
> "Unmatched ( or \\(")
> 
> You can get the same if you add some C file and open it with c-ts-mode.
> If you open the file in normal c-mode. There are no such errors.
> 
> I do not see any errors in the regular expression - 
> "<https?://\\(github)\\.com/zevlg/telega.el/issues/\\([0-9]+\\)>".

The error is that the \( part before github is not matches by \).