Function: csv-field-index-mode
csv-field-index-mode is an interactive and natively compiled function
defined in csv-mode.el.
Signature
(csv-field-index-mode &optional ARG)
Documentation
Toggle CSV-Field-Index mode.
With prefix ARG, turn CSV-Field-Index mode on if and only if ARG is positive.
Returns the new status of CSV-Field-Index mode (non-nil means on).
When CSV-Field-Index mode is enabled, the current field index appears in
the mode line after csv-field-index-delay seconds of Emacs idle time.
Key Bindings
This command is not in any keymaps.
Source Code
;; Defined in /nix/store/3gmjnyw9n226b7k7jamikx980vf8267p-emacs-packages-deps/share/emacs/site-lisp/elpa/csv-mode-1.27/csv-mode.el
(define-minor-mode csv-field-index-mode
"Toggle CSV-Field-Index mode.
With prefix ARG, turn CSV-Field-Index mode on if and only if ARG is positive.
Returns the new status of CSV-Field-Index mode (non-nil means on).
When CSV-Field-Index mode is enabled, the current field index appears in
the mode line after `csv-field-index-delay' seconds of Emacs idle time."
:global t
:init-value t ; for documentation, since default is t
;; This macro generates a function that first sets the mode
;; variable, then runs the following code, runs the mode hooks,
;; displays a message if interactive, updates the mode line and
;; finally returns the variable value.
;; First, always disable the mechanism (to avoid having two timers):
(when csv-field-index-idle-timer
(cancel-timer csv-field-index-idle-timer)
(setq csv-field-index-idle-timer nil))
;; Now, if the mode is on and any buffer is in CSV mode then
;; re-initialize and enable the mechanism by setting up a new timer:
(if csv-field-index-mode
(if (memq t (mapcar (lambda (buffer)
(with-current-buffer buffer
(when (derived-mode-p 'csv-mode)
(setq csv-field-index-string nil
csv-field-index-old nil)
t)))
(buffer-list)))
(setq csv-field-index-idle-timer
(run-with-idle-timer csv-field-index-delay t
#'csv-field-index)))
;; but if the mode is off then remove the display from the mode
;; lines of all CSV buffers:
(mapc (lambda (buffer)
(with-current-buffer buffer
(when (derived-mode-p 'csv-mode)
(setq csv-field-index-string nil
csv-field-index-old nil)
(force-mode-line-update))))
(buffer-list))))