Variable: erc-keep-place-indicator-mode-hook

erc-keep-place-indicator-mode-hook is a customizable variable defined in erc-goodies.el.gz.

Value

nil

Documentation

Hook run after entering or leaving erc-keep-place-indicator-mode(var)/erc-keep-place-indicator-mode(fun).

No problems result if this variable is not bound. add-hook automatically binds it. (This is true for all hook variables.)

Source Code

;; Defined in /usr/src/emacs/lisp/erc/erc-goodies.el.gz
;;;###autoload(put 'keep-place-indicator 'erc--feature 'erc-goodies)
;;;###autoload(autoload 'erc-keep-place-indicator-mode "erc-goodies" nil t)
(define-erc-module keep-place-indicator nil
  "Buffer-local `keep-place' with fringe arrow and/or highlighted face.
Play nice with global module `keep-place' but don't depend on it.
Expect that users may want different combinations of `keep-place'
and `keep-place-indicator' in different buffers."
  ((cond (erc-keep-place-mode)
         ((memq 'keep-place erc-modules)
          (erc-keep-place-mode +1))
         ;; Enable a local version of `keep-place-mode'.
         (t (add-hook 'erc-insert-pre-hook  #'erc-keep-place 65 t)))
   (require 'fringe)
   (add-hook 'window-buffer-change-functions
             #'erc--keep-place-indicator-on-window-buffer-change 40)
   (add-hook 'erc-keep-place-mode-hook
             #'erc--keep-place-indicator-on-global-module 40)
   (if (pcase erc-keep-place-indicator-buffer-type
         ('target erc--target)
         ('server (not erc--target))
         ('t t))
       (progn
         (erc--restore-initialize-priors erc-keep-place-indicator-mode
           erc--keep-place-indicator-overlay (make-overlay 0 0))
         (when-let (((memq erc-keep-place-indicator-style '(t arrow)))
                    (ov-property (if (zerop (fringe-columns 'left))
                                     'after-string
                                   'before-string))
                    (display (if (zerop (fringe-columns 'left))
                                 `((margin left-margin) ,overlay-arrow-string)
                               '(left-fringe right-triangle
                                             erc-keep-place-indicator-arrow)))
                    (bef (propertize " " 'display display)))
           (overlay-put erc--keep-place-indicator-overlay ov-property bef))
         (when (memq erc-keep-place-indicator-style '(t face))
           (overlay-put erc--keep-place-indicator-overlay 'face
                        'erc-keep-place-indicator-line)))
     (erc-keep-place-indicator-mode -1)))
  ((when erc--keep-place-indicator-overlay
     (delete-overlay erc--keep-place-indicator-overlay))
   (let ((buffer (current-buffer)))
     ;; Remove global hooks unless others exist with mode enabled.
     (unless (erc-buffer-filter (lambda ()
                                  (and (not (eq buffer (current-buffer)))
                                       erc-keep-place-indicator-mode)))
       (remove-hook 'erc-keep-place-mode-hook
                    #'erc--keep-place-indicator-on-global-module)
       (remove-hook 'window-buffer-change-functions
                    #'erc--keep-place-indicator-on-window-buffer-change)))
   (when (local-variable-p 'erc-insert-pre-hook)
     (remove-hook 'erc-insert-pre-hook  #'erc-keep-place t))
   (remove-hook 'erc-keep-place-mode-hook
                #'erc--keep-place-indicator-on-global-module t)
   (kill-local-variable 'erc--keep-place-indicator-overlay))
  'local)