From ba7c19397848f4d68bc9541c98cbeb6f4d9f0d85 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Wed, 3 Jul 2013 23:10:08 +0200 Subject: [PATCH] Fix completions related to new export back-end definition * lisp/org-pcomplete.el (pcomplete/org-mode/file-option/options): Apply changes to export back-end definiton. * lisp/org.el (org-get-export-keywords): Apply changes to export back-end definiton.. --- lisp/org-pcomplete.el | 8 +++++--- lisp/org.el | 23 +++++++++++------------ 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/lisp/org-pcomplete.el b/lisp/org-pcomplete.el index 77e2b3b43..552a91215 100644 --- a/lisp/org-pcomplete.el +++ b/lisp/org-pcomplete.el @@ -254,6 +254,8 @@ When completing for #+STARTUP, for example, this function returns (file-name-nondirectory visited-file))) (buffer-name (buffer-base-buffer))))))) + +(declare-function org-export-backend-options "org-export" (cl-x)) (defun pcomplete/org-mode/file-option/options () "Complete arguments for the #+OPTIONS file option." (while (pcomplete-here @@ -266,9 +268,9 @@ When completing for #+STARTUP, for example, this function returns "|:" "tags:" "tasks:" "<:" "todo:") ;; OPTION items from registered back-ends. (let (items) - (dolist (back-end (org-bound-and-true-p - org-export-registered-backends)) - (dolist (option (plist-get (cdr back-end) :options-alist)) + (dolist (backend (org-bound-and-true-p + org-export--registered-backends)) + (dolist (option (org-export-backend-options backend)) (let ((item (nth 2 option))) (when item (push (concat item ":") items))))) items)))))) diff --git a/lisp/org.el b/lisp/org.el index c569a96d2..e2334ce0f 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -11936,22 +11936,21 @@ This function can be used in a hook." ;;;; Completion +(declare-function org-export-backend-name "org-export" (cl-x)) +(declare-function org-export-backend-options "org-export" (cl-x)) (defun org-get-export-keywords () "Return a list of all currently understood export keywords. Export keywords include options, block names, attributes and keywords relative to each registered export back-end." - (delq nil - (let (keywords) - (mapc - (lambda (back-end) - (let ((props (cdr back-end))) - ;; Back-end name (for keywords, like #+LATEX:) - (push (upcase (symbol-name (car back-end))) keywords) - ;; Back-end options. - (mapc (lambda (option) (push (cadr option) keywords)) - (plist-get (cdr back-end) :options-alist)))) - (org-bound-and-true-p org-export-registered-backends)) - keywords))) + (let (keywords) + (dolist (backend + (org-bound-and-true-p org-export--registered-backends) + (delq nil keywords)) + ;; Back-end name (for keywords, like #+LATEX:) + (push (upcase (symbol-name (org-export-backend-name backend))) keywords) + (dolist (option-entry (org-export-backend-options backend)) + ;; Back-end options. + (push (nth 1 option-entry) keywords))))) (defconst org-options-keywords '("ARCHIVE:" "AUTHOR:" "BIND:" "CATEGORY:" "COLUMNS:" "CREATOR:" "DATE:" -- 2.11.4.GIT