From f2d03cb6b420e865427c3ab8a0af1847e6d09fd5 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Mon, 18 Nov 2019 17:47:06 -0500 Subject: [PATCH] Backport commit 5bc97ebce from Emacs * lisp/org.el (org-mode): Add pcomplete-completions-at-point to capf. This lets the normal `completion-at-point` and `complete-symbol` use `pcomplete` for completion. (org-mode-map): Leave M-TAB bound to the global default since `pcomplete` is now obsolete. 5bc97ebceb54e0eb2804bef4c1bc32a40d8a2371 Stefan Monnier Mon Nov 18 17:47:06 2019 -0500 --- lisp/org.el | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/lisp/org.el b/lisp/org.el index 2cea47d0d..1da2779dc 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -5560,11 +5560,13 @@ The following commands are available: (lambda (&rest _) (org-show-context 'isearch))) ;; Setup the pcomplete hooks - (setq-local pcomplete-command-completion-function 'org-pcomplete-initial) - (setq-local pcomplete-command-name-function 'org-command-at-point) - (setq-local pcomplete-default-completion-function 'ignore) - (setq-local pcomplete-parse-arguments-function 'org-parse-arguments) + (setq-local pcomplete-command-completion-function #'org-pcomplete-initial) + (setq-local pcomplete-command-name-function #'org-command-at-point) + (setq-local pcomplete-default-completion-function #'ignore) + (setq-local pcomplete-parse-arguments-function #'org-parse-arguments) (setq-local pcomplete-termination-string "") + (add-hook 'completion-at-point-functions + #'pcomplete-completions-at-point nil t) (setq-local buffer-face-mode-face 'org-default) ;; If empty file that did not turn on Org mode automatically, make @@ -18936,10 +18938,12 @@ COMMANDS is a list of alternating OLDDEF NEWDEF command names." (org-defkey org-mode-map (kbd "C-i") #'org-cycle) (org-defkey org-mode-map (kbd "") #'org-cycle) (org-defkey org-mode-map (kbd "C-") #'org-force-cycle-archived) -(org-defkey org-mode-map (kbd "M-") #'pcomplete) -(org-defkey org-mode-map (kbd "M-TAB") #'pcomplete) -(org-defkey org-mode-map (kbd "ESC ") #'pcomplete) -(org-defkey org-mode-map (kbd "ESC TAB") #'pcomplete) +;; Override text-mode binding to expose `complete-symbol' for +;; pcomplete functionality. +(org-defkey org-mode-map (kbd "M-") nil) +(org-defkey org-mode-map (kbd "M-TAB") nil) +(org-defkey org-mode-map (kbd "ESC ") nil) +(org-defkey org-mode-map (kbd "ESC TAB") nil) (org-defkey org-mode-map (kbd "") #'org-shifttab) (org-defkey org-mode-map (kbd "S-") #'org-shifttab)