diff options
author | stardiviner <numbchild@gmail.com> | 2020-05-12 21:44:04 +0800 |
---|---|---|
committer | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2020-05-14 14:52:30 +0200 |
commit | 1abf4f600a8abc9cb8715e7f71ab8ad5993572e5 (patch) | |
tree | f14cd1fc0b93798c422d62b45cd843fcb9915846 | |
parent | cd2b108d22ca59638bae836e4709ec9e8d08675a (diff) | |
download | org-mode-1abf4f600a8abc9cb8715e7f71ab8ad5993572e5.tar.gz |
pcomplete: improve header arguments completion
* lisp/org-pcomplete.el (pcomplete/org-mode/block-option/src): Make it
complete all available header arguments.
* testing/lisp/test-org-pcomplete.el (test-org-pcomplete/src-block):
New test.
-rw-r--r-- | lisp/org-pcomplete.el | 16 | ||||
-rw-r--r-- | testing/lisp/test-org-pcomplete.el | 15 |
2 files changed, 26 insertions, 5 deletions
diff --git a/lisp/org-pcomplete.el b/lisp/org-pcomplete.el index 28b40fa..6565151 100644 --- a/lisp/org-pcomplete.el +++ b/lisp/org-pcomplete.el @@ -418,11 +418,17 @@ switches." (symbol-plist 'org-babel-load-languages) 'custom-type))))))) - (while (pcomplete-here - '("-n" "-r" "-l" - ":cache" ":colnames" ":comments" ":dir" ":eval" ":exports" - ":file" ":hlines" ":no-expand" ":noweb" ":results" ":rownames" - ":session" ":shebang" ":tangle" ":tangle-mode" ":var")))) + (let* ((info (org-babel-get-src-block-info 'light)) + (lang (car info)) + (lang-headers (intern (concat "org-babel-header-args:" lang))) + (headers (org-babel-combine-header-arg-lists + org-babel-common-header-args-w-values + (and (boundp lang-headers) (eval lang-headers t))))) + (while (pcomplete-here + (append (mapcar + (lambda (arg) (format ":%s" (symbol-name (car arg)))) + headers) + '("-n" "-r" "-l")))))) (defun pcomplete/org-mode/block-option/clocktable () "Complete keywords in a clocktable line." diff --git a/testing/lisp/test-org-pcomplete.el b/testing/lisp/test-org-pcomplete.el index e6b0e8a..2de4f49 100644 --- a/testing/lisp/test-org-pcomplete.el +++ b/testing/lisp/test-org-pcomplete.el @@ -75,6 +75,21 @@ (buffer-string)) t))) +(ert-deftest test-org-pcomplete/src-block () + "Test Babel source block header arguments completion." + (should + (string-prefix-p + "#+begin_src emacs-lisp" + (org-test-with-temp-text "#+begin_src emac<point>" + (pcomplete) + (buffer-string)))) + (should + (string-prefix-p + "#+begin_src emacs-lisp :session" + (org-test-with-temp-text "#+begin_src emacs-lisp :sess<point>" + (pcomplete) + (buffer-string))))) + (ert-deftest test-org-pcomplete/link () "Test link completion" (should |