Function: logview-choose-submode
logview-choose-submode is an interactive and natively compiled
function defined in logview.el.
Signature
(logview-choose-submode SUBMODE &optional TIMESTAMP)
Documentation
Manually choose submode for the current buffer.
SUBMODE must be a name or an alias a supported submode from
logview-additional-submodes or logview-std-submodes (aliases
are understood too). Timestamp may be either such a name or
alias from logview-additional-timestamp-formats or
logview-std-timestamp-formats, or just a raw Java pattern. If
submode doesn't use timestamps, this parameter is ignored.
When called interactively, both parameters are read in the minibuffer.
Key Bindings
logview-mode-inactive-map C-c C-c logview-mode-map C-c C-c logview-mode-map o s
Source Code
;; Defined in /nix/store/3zkn9hgpv447zb8nrg55d9x2ynmmrk40-emacs-packages-deps/share/emacs/site-lisp/elpa/logview-20260218.2013/logview.el
(defun logview-choose-submode (submode &optional timestamp)
"Manually choose submode for the current buffer.
SUBMODE must be a name or an alias a supported submode from
`logview-additional-submodes' or `logview-std-submodes' (aliases
are understood too). Timestamp may be either such a name or
alias from `logview-additional-timestamp-formats' or
`logview-std-timestamp-formats', or just a raw Java pattern. If
submode doesn't use timestamps, this parameter is ignored.
When called interactively, both parameters are read in the
minibuffer."
(interactive (list (let (submodes)
(logview--iterate-split-alists (lambda (name definition)
(push name submodes)
(setq submodes (append (cdr (assq 'aliases definition)) submodes)))
logview-additional-submodes logview-std-submodes)
(logview--completing-read "Submode name: " submodes nil t nil 'logview--submode-name-history))))
(let ((submode-definition (logview--get-split-alists submode "submode" logview-additional-submodes logview-std-submodes))
timestamp-definition)
(when (string-match-p logview--timestamp-entry-part-regexp (cdr (assq 'format submode-definition)))
(unless timestamp
(unless (called-interactively-p 'interactive)
(error "Must specify a timestamp format for submode `%s'" submode))
(setq timestamp (let (timestamps)
(logview--iterate-split-alists (lambda (name definition)
(push name timestamps)
(setq timestamps (append (cdr (assq 'aliases definition)) timestamps)))
logview-additional-timestamp-formats logview-std-timestamp-formats)
(dolist (format (logview--all-timestamp-formats))
(unless (datetime-pattern-locale-dependent-p 'java (car format))
(push (car format) timestamps)))
(logview--completing-read "Timestamp format: " timestamps nil nil nil 'logview--timestamp-format-history))))
(setq timestamp-definition (or (logview--get-split-alists timestamp nil logview-additional-timestamp-formats logview-std-timestamp-formats)
;; Unlike with submodes, allow unrecognized timestamps.
`(,timestamp (java-pattern . ,timestamp)))))
(catch 'success
(logview--initialize-submode submode submode-definition (list timestamp-definition))
;; This must not happen.
(error "Internal error initializing submode `%s'" submode))))