From 45ba025e53f8d91f7b46dfabafa5c8aafe4906dc Mon Sep 17 00:00:00 2001 From: Jambunathan K Date: Sun, 10 Mar 2013 14:14:07 +0530 Subject: [PATCH] Provide for customizing default regexp in occur commands (Bug#13892). * lisp/replace.el (occur-read-regexp-defaults-function): New var. (occur-read-regexp-defaults): New defun. (occur-read-primary-args): Propagate above change. --- lisp/ChangeLog | 6 ++++++ lisp/replace.el | 22 +++++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index df4cf561588..20a3a6e1e50 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2013-03-10 Jambunathan K + + * replace.el (occur-read-regexp-defaults-function): New var. + (occur-read-regexp-defaults): New defun. + (occur-read-primary-args): Propagate above change (bug#13892). + 2013-03-09 Stefan Monnier * mouse.el (mouse-drag-track): Remove left-over debugging code. diff --git a/lisp/replace.el b/lisp/replace.el index ceb0fe4a63e..17eea19edd8 100644 --- a/lisp/replace.el +++ b/lisp/replace.el @@ -1135,12 +1135,32 @@ which means to discard all text properties." :group 'matching :version "22.1") +(defvar occur-read-regexp-defaults-function + 'occur-read-regexp-defaults + "Function that provides default regexp(s) for occur commands. +This function should take no arguments and return one of nil, a +regexp or a list of regexps for use with occur commands - +`occur', `multi-occur' and `multi-occur-in-matching-buffers'. +The return value of this function is used as DEFAULTS param of +`read-regexp' while executing the occur command. This function +is called only during interactive use. + +For example, to check for occurrence of symbol at point use + + \(setq occur-read-regexp-defaults-function + 'find-tag-default-as-regexp\).") + +(defun occur-read-regexp-defaults () + "Return the latest regexp from `regexp-history'. +See `occur-read-regexp-defaults-function' for details." + (car regexp-history)) + (defun occur-read-primary-args () (let* ((perform-collect (consp current-prefix-arg)) (regexp (read-regexp (if perform-collect "Collect strings matching regexp" "List lines matching regexp") - (car regexp-history)))) + (funcall occur-read-regexp-defaults-function)))) (list regexp (if perform-collect ;; Perform collect operation -- 2.39.2