Subject: bug#51691: 28.0.60; bug-reference-mode conflicts with rainbow-mode

From: Jimmy Yuen Ho Wong <[email-masked]>
Date: Mon, 08 Nov 2021 17:41:26 +0000

Reproduction:

1. emacs -q
2. Visit an elisp file in a git repo that has a hex color value in a
string parameter followed by a
hash, e.g. (set-face-attribute 'default nil :background "#002b36" :foreground "#839496")
3. M-x rainbow-mode.
4. Observe that the hex color value has been highlighted.
5. M-x bug-reference-mode or bug-reference-prog-mode.
6. Observe that the hex color has and overlay with a link interface
applied.

Expectation:

All bug-reference-*-mode overlays should only be applied to docstrings
and/or comments and nothing else.

In GNU Emacs 28.0.60 (build 1, x86_64-apple-darwin20.6.0, NS appkit-2022.60 Version 11.6.1 (Build 20G224))
 of 2021-11-07 built on MobileCat.local
Repository revision: d85cf33e494f4e9ada2a9359247e88775e92e7c0
Repository branch: HEAD
Windowing system distributor 'Apple', version 10.3.2022
System Description:  macOS 11.6.1

Configured using:
 'configure --prefix=/opt/local --disable-silent-rules --without-dbus
 --without-gconf --without-libotf --without-m17n-flt --with-libgmp
 --with-gnutls --with-json --with-xml2 --with-modules --infodir
 /opt/local/share/info/emacs --with-ns --with-lcms2 --without-harfbuzz
 --without-imagemagick --without-xaw3d --with-native-compilation
 --with-rsvg --with-xwidgets 'CFLAGS=-pipe -Os
 -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk -arch
 x86_64' 'CPPFLAGS=-I/opt/local/include
 -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk'
 'LDFLAGS=-L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-no_pie
 -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk
 -arch x86_64''

Configured features:
ACL GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP
NOTIFY KQUEUE NS PDUMPER PNG RSVG THREADS TIFF TOOLKIT_SCROLL_BARS
XWIDGETS ZLIB

Important settings:
  value of $LC_ALL: en_GB.UTF-8
  value of $LANG: en_GB.UTF-8
  locale-coding-system: utf-8-unix

Major mode: ELisp/l

Minor modes in effect:
  company-box-mode: t
  company-prescient-mode: t
  prescient-persist-mode: t
  rainbow-mode: t
  elisp-def-mode: t
  display-line-numbers-mode: t
  subword-mode: t
  form-feed-mode: t
  beginend-prog-mode: t
  imenu-list-minor-mode: t
  purpose-mode: t
  windmove-mode: t
  bug-reference-prog-mode: t
  diff-hl-flydiff-mode: t
  projectile-rails-global-mode: t
  projectile-mode: t
  crm-custom-mode: t
  override-global-mode: t
  dap-tooltip-mode: t
  dap-ui-many-windows-mode: t
  dap-ui-controls-mode: t
  dap-ui-mode: t
  treemacs-filewatch-mode: t
  treemacs-follow-mode: t
  treemacs-git-mode: t
  treemacs-fringe-indicator-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  shell-dirtrack-mode: t
  winner-mode: t
  which-key-mode: t
  which-function-mode: t
  smooth-scrolling-mode: t
  show-smartparens-global-mode: t
  show-smartparens-mode: t
  smartparens-global-mode: t
  smartparens-mode: t
  server-mode: t
  savehist-mode: t
  save-place-mode: t
  rxt-global-mode: t
  rxt-mode: t
  recentf-mode: t
  minibuffer-depth-indicate-mode: t
  ido-vertical-mode: t
  ido-ubiquitous-mode: t
  global-whitespace-cleanup-mode: t
  whitespace-cleanup-mode: t
  global-tree-sitter-mode: t
  global-so-long-mode: t
  global-origami-mode: t
  origami-mode: t
  global-move-dup-mode: t
  move-dup-mode: t
  global-hl-line-mode: t
  global-flycheck-mode: t
  global-diff-hl-show-hunk-mouse-mode: t
  diff-hl-show-hunk-mouse-mode: t
  global-diff-hl-mode: t
  diff-hl-mode: t
  global-company-mode: t
  company-mode: t
  global-auto-revert-mode: t
  global-aggressive-indent-mode: t
  aggressive-indent-mode: t
  flx-ido-mode: t
  ido-everywhere: t
  icomplete-vertical-mode: t
  icomplete-mode: t
  fido-mode: t
  editorconfig-mode: t
  direnv-mode: t
  desktop-save-mode: t
  delete-selection-mode: t
  dap-auto-configure-mode: t
  dap-mode: t
  yas-minor-mode: t
  auto-compile-on-save-mode: t
  auto-compile-mode: t
  amx-mode: t
  abridge-diff-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  window-divider-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  temp-buffer-resize-mode: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  visual-line-mode: t
  transient-mark-mode: t

Load-path shadows:
/opt/local/share/emacs/site-lisp/cmake-mode hides /Users/wyuenho/.emacs.d/elpa/cmake-mode-20210104.1831/cmake-mode
/Users/wyuenho/.emacs.d/elpa/transient-20211105.100/transient hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/transient

Features:
(shadow sort mail-extr emacsbug sendmail thunk autoload mm-archive
url-cache facemenu two-column lsp-diagnostics lsp-modeline
lsp-completion dap-python highlight-indent-guides python-docstring
sphinx-doc diff-hl-dired all-the-icons-dired dired-collapse
dired-hacks-utils flycheck-inline vc-mtn vc-hg vc-bzr vc-src vc-sccs
vc-svn vc-cvs vc-rcs company-box company-box-doc frame-local
company-box-icons company-prescient prescient company-keywords
company-etags etags fileloop generator company-gtags
company-dabbrev-code company-dabbrev company-yasnippet company-capf
company-files company-cmake company-clang company-semantic
company-template company-bbdb rainbow-mode elisp-def ert debug backtrace
display-line-numbers cap-words superword subword smartparens-config
smartparens-javascript smartparens-ruby smartparens-python
smartparens-markdown smartparens-text smartparens-c form-feed
editorconfig-core editorconfig-core-handle editorconfig-fnmatch beginend
window-purpose-x shut-up imenu-list hideshow window-purpose
window-purpose-fixes window-purpose-prefix-overload
window-purpose-switch window-purpose-layout window-purpose-core
window-purpose-configuration window-purpose-utils windmove
dired-hide-dotfiles shrink-path git-timemachine vc-git magit-lfs
forge-list forge-commands forge-semi forge-bitbucket buck forge-gogs
gogs forge-gitea gtea forge-gitlab glab forge-github ghub-graphql treepy
gsexp ghub gnutls forge-notify forge-revnote forge-pullreq forge-issue
forge-topic yaml bug-reference forge-post forge-repo forge forge-core
forge-db closql emacsql-sqlite emacsql emacsql-compiler url-http
url-auth url-gw magit-bookmark magit-submodule magit-obsolete
magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull
magit-fetch magit-clone magit-remote magit-commit magit-sequence
magit-notes magit-worktree magit-tag magit-merge magit-branch
magit-reset magit-files magit-refs magit-status magit magit-repos
magit-apply magit-wip magit-log diff-hl-flydiff ediff-merg ediff-mult
ediff-wind ediff-diff ediff-help ediff-init ediff-util dumb-jump popup
rg rg-info-hack rg-menu rg-ibuffer rg-result wgrep-rg wgrep rg-history
rg-header projectile-rails rake inflections inf-ruby ruby-mode smie
autoinsert projectile grep ibuf-ext ibuffer ibuffer-loaddefs lsp-metals
view lsp-metals-treeview lsp-metals-protocol lsp-sourcekit lsp yard-mode
lsp-pyright lsp-jedi importmagic epc ctable concurrent deferred
python-isort python-black request python tramp-sh docker-tramp
tramp-cache tramp tramp-loaddefs trampver tramp-integration files-x
tramp-compat ls-lisp python-insert-docstring typescript-mode json-mode
json-snatcher js cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles
cc-align cc-engine cc-vars cc-defs reformatter flycheck-package
package-lint finder finder-inf eterm-256color term disp-table ehelp
xterm-color native-complete use-package-ensure lsp-ui lsp-ui-flycheck
lsp-ui-doc xwidget image-mode exif treemacs-bookmarks bookmark goto-addr
lsp-ui-imenu lsp-ui-peek lsp-ui-sideline lsp-ui-util face-remap iedit
iedit-lib mc-hide-unmatched-lines-mode mc-mark-more mc-cycle-cursors
multiple-cursors-core rect crm-custom pager-default-keybindings pager
browse-kill-ring paradox paradox-menu paradox-commit-list
paradox-execute paradox-github paradox-core parse-time iso8601
use-package-bind-key bind-key use-package-delight osx-trash
exec-path-from-shell all-the-icons all-the-icons-faces data-material
data-weathericons data-octicons data-fileicons data-faicons
data-alltheicons spaceline-config spaceline-segments spaceline powerline
powerline-separators powerline-themes solarized-dark-theme
solarized-theme solarized solarized-faces delight quelpa-use-package
use-package-core quelpa lisp-mnt help-fns radix-tree tree-sitter-langs
tree-sitter-langs-build tar-mode arc-mode archive-mode tree-sitter-hl
dap-mouse dap-ui lsp-treemacs lsp-treemacs-themes treemacs
treemacs-header-line treemacs-compatibility treemacs-mode
treemacs-interface treemacs-extensions treemacs-mouse-interface
treemacs-tags treemacs-persistence treemacs-filewatch-mode
treemacs-follow-mode treemacs-rendering treemacs-async
treemacs-workspaces treemacs-dom treemacs-visuals
treemacs-fringe-indicator treemacs-scope pulse treemacs-faces
treemacs-icons treemacs-themes treemacs-core-utils pfuture
treemacs-logging treemacs-customization treemacs-macros gdb-mi gud bui
bui-list bui-info bui-entry bui-core bui-history bui-button bui-utils
lsp-lens magit-diff smerge-mode diff git-commit log-edit message rfc822
mml mml-sec epa derived gnus-util rmail rmail-loaddefs time-date
mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util
ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader add-log
magit-core magit-libgit libgit libegit2 magit-autorevert magit-margin
magit-transient magit-process with-editor shell pcomplete magit-mode
transient format-spec magit-git magit-section magit-utils crm winner
which-key which-func smooth-scrolling smartparens server savehist
saveplace pcre2el rxt re-builder recentf mb-depth ido-vertical-mode
ido-completing-read+ memoize cus-edit pp minibuf-eldef help-at-pt
whitespace-cleanup-mode whitespace tree-sitter tree-sitter-load
tree-sitter-cli tsc tsc-dyn tsc-dyn-get dired-aux dired dired-loaddefs
tsc-obsolete so-long origami origami-parsers cl move-dup hl-line
flycheck find-func diff-hl-show-hunk diff-hl-inline-popup diff-hl
log-view pcvs-util vc-dir vc vc-dispatcher company autorevert
aggressive-indent flx-ido advice flx ido icomplete editorconfig direnv
diff-mode desktop frameset delsel dap-mode dap-launch posframe
dap-overlays lsp-mode lsp-protocol yasnippet-snippets yasnippet xref
project tree-widget wid-edit spinner network-stream puny nsm rmc
markdown-mode color thingatpt noutline outline easy-mmode lv inline
imenu ht f ewoc epg rfc6068 epg-config dash compile text-property-search
comint ansi-color ring auto-compile packed amx s abridge-diff let-alist
filenotify cus-load edmacro kmacro info package browse-url url url-proxy
url-privacy url-expand url-methods url-history url-cookie url-domsuf
url-util mailcap url-handlers url-parse auth-source eieio eieio-core
eieio-loaddefs password-cache json map url-vars comp comp-cstr warnings
subr-x rx cl-seq cl-macs cl-extra help-mode seq byte-opt bytecomp
byte-compile cconv gv pcase cl-loaddefs cl-lib iso-transl tooltip eldoc
paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode
mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer cl-generic
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote threads
xwidget-internal kqueue cocoa ns lcms2 multi-tty make-network-process
native-compile emacs)

Memory information:
((conses 16 2679737 1154482)
 (symbols 48 82421 1853)
 (strings 32 377006 208677)
 (string-bytes 1 12790009)
 (vectors 16 172464)
 (vector-slots 8 4612400 1356135)
 (floats 8 1128 1868)
 (intervals 56 253310 82012)
 (buffers 992 38))