Subject: 25.0.50; Make ‘blink-matching-paren’work with ‘show-paren-mode’ flawlessly

From: Mark Karpov <[email-masked]>
Date: Wed, 19 Aug 2015 18:36:02 +0600

Please see http://debbugs.gnu.org/cgi/bugreport.cgi?bug=21286 for
background for this issue.

As you can see from that discussion, Dmitry Gutov kindly implemented new
option for ‘blink-matching-paren’ as per my request. Now it can be set
to ‘jump-offscreen’, so when you type matching closing parenthesis,
Emacs jumps to opening parenthesis even if it's not currently visible,
then it quickly jumps back. (I set period to half a second, and overall
effect is just fantastic.)

The problem is that this doesn't work at all if ‘show-paren-mode’ is
enabled. I'm using ‘show-paren-mode’ constantly and I would like to use
it together with new jumping feature, that would be great.

Could you please make ‘show-paren-mode’ and ‘blink-matching-paren’ work
together?

In GNU Emacs 25.0.50.18 (x86_64-unknown-linux-gnu, GTK+ Version 3.16.6)
 of 2015-08-19 on arch
Repository revision: 62661fe759dfc826f31b032e49f0f15b40a207d5
Windowing system distributor `The X.Org Foundation', version 11.0.11702000
Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS
NOTIFY ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11

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

Major mode: H

Minor modes in effect:
  shell-dirtrack-mode: t
  interactive-haskell-mode: t
  haskell-indentation-mode: t
  diff-auto-refine-mode: t
  hl-todo-mode: t
  flycheck-mode: t
  flyspell-mode: t
  whitespace-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  show-paren-mode: t
  minibuffer-electric-default-mode: t
  ido-vertical-mode: t
  ido-ubiquitous-mode: t
  ido-everywhere: t
  highlight-line-mode: t
  global-auto-revert-mode: t
  global-aggressive-indent-mode: t
  display-time-mode: t
  delete-selection-mode: t
  ace-popup-menu-mode: t
  smartparens-global-mode: t
  smartparens-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  auto-fill-function: do-auto-fill
  transient-mark-mode: t
  auto-fill-mode: 1

Recent messages:
Sending...done
Are you sure you want to quit reading news? (y or n) y
Saving file /home/mark/.newsrc...
Wrote /home/mark/.newsrc
Saving /home/mark/.newsrc.eld...
Saving file /home/mark/.newsrc.eld...
Wrote /home/mark/.newsrc.eld
Saving /home/mark/.newsrc.eld...done
Mark activated
<menu> g C-g is undefined
Quit

Load-path shadows:
None found.

Features:
(shadow emacsbug ebal misearch multi-isearch mailalias smtpmail sendmail
nnir sort smiley gnus-cite flow-fill mm-archive mail-extr gnus-async
gnus-bcklg qp gnus-ml disp-table nndraft nnmh nnfolder utf-7 epa-file
epa derived epg gnutls network-stream nsm starttls gnus-agent gnus-srvr
gnus-score score-mode nnvirtual gnus-msg gnus-art mm-uu mml2015 mm-view
mml-smime smime dig mailcap nntp gnus-cache gnus-sum gnus-group
gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source tls utf7 netrc
nnoo parse-time gnus-spec gnus-int gnus-range message format-spec rfc822
mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047
rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus
gnus-ems nnheader mail-utils wid-edit cus-start cus-load smex ace-window
haskell-doc inf-haskell haskell-decl-scan imenu shell pcomplete haskell
haskell-completions haskell-load haskell-commands highlight-uses-mode
haskell-modules haskell-sandbox haskell-repl haskell-debug
haskell-interactive-mode haskell-presentation-mode haskell-collapse
haskell-navigate-imports haskell-compile haskell-process haskell-session
url-util url-parse auth-source gnus-util mm-util help-fns mail-prsvr
password-cache url-vars json haskell-indentation haskell-font-lock
smartparens-haskell haskell-mode haskell-string haskell-sort-imports
haskell-lexeme haskell-align-imports haskell-compat
haskell-complete-module noutline outline flymake etags xref project
eieio eieio-core compile comint dabbrev ansi-color bookmark pp vc
vc-dispatcher vc-git diff-mode hl-line dired rainbow-delimiters hl-todo
flycheck-haskell haskell-cabal haskell-utils haskell-customize flycheck
find-func rx flyspell ispell whitespace mk-visual solarized-dark-theme
solarized mk-texinfo mk-tex mk-python mk-prolog mk-org mk-markdown
mk-man mk-magit mk-lisp mk-ibuffer mk-haskell mk-gnus mk-eshell mk-erc
mk-elisp mk-dired mk-diff mk-clojure kill-or-bury-alive mk-calendar mk-c
mk-bookmark mk-minor-modes common-lisp-snippets yasnippet cl
whole-line-or-region paren minibuf-eldef ido-vertical-mode
ido-ubiquitous ido-completing-read+ cl-macs gv ido highlight-line
autorevert filenotify cl-seq aggressive-indent easy-mmode time delsel
ace-popup-menu smartparens-config smartparens byte-opt thingatpt
mk-global edmacro kmacro ace-link avy ring misc server mk-utils subr-x f
dash s ucs-normalize finder-inf tex-site fix-word advice slime-autoloads
info bytecomp byte-compile cl-extra help-mode seq cl-loaddefs pcase
cl-lib cconv package easymenu epg-config time-date mule-util tooltip
eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list newcomment elisp-mode lisp-mode prog-mode register page
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core frame 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 charscript case-table epa-hook jka-cmpr-hook help
simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces
cus-face macroexp files text-properties overlay sha1 md5 base64 format
env code-pages mule custom widget hashtable-print-readable backquote
dbusbind inotify dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 506848 142766)
 (symbols 48 44641 55)
 (miscs 40 265 2037)
 (strings 32 96895 62259)
 (string-bytes 1 2842717)
 (vectors 16 69062)
 (vector-slots 8 1951792 119964)
 (floats 8 597 1763)
 (intervals 56 4952 1236)
 (buffers 976 42)
 (heap 1024 72417 10716))