Commit 2021a200 authored by Leo Liu's avatar Leo Liu
Browse files

* pcmpl-x.el (pcmpl-x-ag-options): Handle `[no]' in long options.

parent b6ffa04a
2013-11-21 Leo Liu <sdl.web@gmail.com>
Add completion for command `ag'.
* pcmpl-x.el (pcomplete/ag, pcmpl-x-ag-options): New functions.
(pcmpl-x-ag-options): New variable.
* pcmpl-x.el (pcmpl-x-ag-options): New variable.
(pcomplete/ag): New function.
(pcmpl-x-ag-options): New function. Handle `[no]' in long options.
2013-11-21 Stefan Monnier <monnier@iro.umontreal.ca>
......
......@@ -257,16 +257,23 @@ long options."
(setq pcmpl-x-ag-options
(with-temp-buffer
(when (zerop (call-process "ag" nil t nil "--help"))
(let (so lo)
(let (short long)
(goto-char (point-min))
(while (re-search-forward "^ +\\(-[a-zA-Z]\\) " nil t)
(push (match-string 1) so))
(push (match-string 1) short))
(goto-char (point-min))
(while (re-search-forward
"^ +\\(?:-[a-zA-Z] \\)?\\(--[^ \t\n]+\\) " nil t)
(push (match-string 1) lo))
(list (cons 'short (nreverse so))
(cons 'long (nreverse lo)))))))))
"^ +\\(?:-[a-zA-Z] \\)?\\(--\\(\\[no\\]\\)?[^ \t\n]+\\) "
nil t)
(if (match-string 2)
(progn
(replace-match "" nil nil nil 2)
(push (match-string 1) long)
(replace-match "no" nil nil nil 2)
(push (match-string 1) long))
(push (match-string 1) long)))
(list (cons 'short (nreverse short))
(cons 'long (nreverse long)))))))))
;;;###autoload
(defun pcomplete/ag ()
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment