Function: latex-complete-data

latex-complete-data is a byte-compiled function defined in tex-mode.el.gz.

Signature

(latex-complete-data)

Documentation

Get completion-data at point.

Source Code

;; Defined in /usr/src/emacs/lisp/textmodes/tex-mode.el.gz
(defun latex-complete-data ()
  "Get completion-data at point."
  (save-excursion
    (let ((pt (point)))
      (skip-chars-backward "^ {}\n\t\\\\")
      (pcase (char-before)
        ((or 'nil ?\s ?\n ?\t ?\}) nil)
        (?\\
         ;; TODO: Complete commands.
         nil)
        (?\{
         ;; Complete args to commands.
         (let* ((cmd
                 (save-excursion
                   (forward-char -1)
                   (skip-chars-backward " \n")
                   (buffer-substring (point)
                                     (progn
                                       (skip-chars-backward "a-zA-Z@*")
                                       (let ((n (skip-chars-backward "\\\\")))
                                         (forward-char (* 2 (/ n 2))))
                                       (point)))))
                (start (point))
                (_ (progn (goto-char pt) (skip-chars-backward "^," start)))
                (comp-beg (point))
                (_ (progn (goto-char pt) (skip-chars-forward "^, {}\n\t\\\\")))
                (comp-end (point))
                (table
                 (funcall
                  (let ((f (lambda () t)))
                    (dolist (comp latex-complete-alist)
                      (if (string-match (car comp) cmd)
                          (setq f (cdr comp))))
                    f))))
           (if (eq table t)
               ;; Unknown command.
               nil
             (list comp-beg comp-end table))))))))