Function: web-mode-part-previous-live-line

web-mode-part-previous-live-line is a natively compiled function defined in web-mode.el.

Signature

(web-mode-part-previous-live-line REG-BEG)

Source Code

;; Defined in /nix/store/2qgnz1rp30nzfz6w0apx4kdm14if1bbs-emacs-packages-deps/share/emacs/site-lisp/elpa/web-mode-20260831.219/web-mode.el
(defun web-mode-part-previous-live-line (reg-beg)
  (unless reg-beg (setq reg-beg (point-min)))
  ;;(message "reg-beg=%S" reg-beg)
  (save-excursion
    (let ((continue (> (point) reg-beg))
          (line "")
          bol-pos
          eol-pos
          pos)
      (beginning-of-line)
      (while (and continue (> (point) reg-beg) (forward-line -1))
        (setq bol-pos (point)
              eol-pos (line-end-position))
        (when (> reg-beg bol-pos)
          (setq bol-pos reg-beg))
        (when (not (web-mode-part-is-token-line bol-pos))
          (setq line (web-mode-trim (buffer-substring bol-pos eol-pos)))
          (when (not (string= line "")) (setq continue nil))
          ) ;when
        ) ;while
      (cond
        ((string= line "")
         nil)
        (t
         (setq continue t)
         (setq pos (1- eol-pos))
         (while (and (>= pos bol-pos) continue)
           (cond
             ((eq (char-after pos) ?\s)
              (setq pos (1- pos)))
             ((get-text-property pos 'part-token)
              (setq pos (1- pos)))
             (t
              (setq continue nil))
             ) ;cond
           ) ;while
         ;;(message "%S %S : %S" bol-pos eol-pos pos)
         (setq line (web-mode-clean-part-line line))
         (list line (current-indentation) pos (line-end-position)))
        ) ;cond
      )))