Function: logview--prompt-for-new-filter

logview--prompt-for-new-filter is a natively compiled function defined in logview.el.

Signature

(logview--prompt-for-new-filter PROMPT TYPE FILTER-LINE-PREFIX)

Source Code

;; Defined in /nix/store/3zkn9hgpv447zb8nrg55d9x2ynmmrk40-emacs-packages-deps/share/emacs/site-lisp/elpa/logview-20260218.2013/logview.el
(defun logview--prompt-for-new-filter (prompt type filter-line-prefix)
  (logview--assert type)
  (let* ((default-value (unless (eq type 'message)
                          (logview--std-temporarily-widening
                            (logview--locate-current-entry entry start
                              (let ((base (regexp-quote (logview--entry-group entry start (pcase type
                                                                                            (`name   logview--name-group)
                                                                                            (`thread logview--thread-group)
                                                                                            (_       (error "Unhandled type `%s'" type)))))))
                                (list base (format "^%s$" base)))))))
         (regexp        (read-regexp prompt default-value (cdr (assq type '((name    . logview--name-regexp-history)
                                                                            (thread  . logview--thread-regexp-history)
                                                                            (message . logview--message-regexp-history)))))))
    (unless (logview--valid-regexp-p regexp)
      (user-error "Invalid regular expression"))
    (when (and (memq type '(name thread)) (string-match-p "\n" regexp))
      (user-error "Regular expression must not span several lines"))
    (setf logview--main-filter-text (concat logview--main-filter-text
                                            (when (and logview--main-filter-text
                                                       (not (string-suffix-p "\n" logview--main-filter-text)))
                                              "\n")
                                            filter-line-prefix " " (replace-regexp-in-string "\n" "\n.. " regexp) "\n"))
    (logview--parse-filters)))