Merge pull request #238 from mbork/master

Add option ledger-complete-ignore-case

Thanks!  This works very well.
This commit is contained in:
Craig Earls 2014-02-04 06:15:36 -08:00
commit 1003c24103

View file

@ -213,49 +213,55 @@ Does not use ledger xact"
(goto-char (match-end 0)))))) (goto-char (match-end 0))))))
(defcustom ledger-complete-ignore-case t
"Non-nil means that ledger-complete-at-point will be case-insensitive"
:type 'boolean
:group 'ledger)
(defun ledger-pcomplete (&optional interactively) (defun ledger-pcomplete (&optional interactively)
"Complete rip-off of pcomplete from pcomplete.el, only added "Complete rip-off of pcomplete from pcomplete.el, only added
ledger-magic-tab in the previous commands list so that ledger-magic-tab in the previous commands list so that
ledger-magic-tab would cycle properly" ledger-magic-tab would cycle properly"
(interactive "p") (interactive "p")
(if (and interactively (let ((pcomplete-ignore-case ledger-complete-ignore-case))
pcomplete-cycle-completions (if (and interactively
pcomplete-current-completions pcomplete-cycle-completions
(memq last-command '(ledger-magic-tab pcomplete-current-completions
ledger-pcomplete (memq last-command '(ledger-magic-tab
pcomplete-expand-and-complete ledger-pcomplete
pcomplete-reverse))) pcomplete-expand-and-complete
(progn pcomplete-reverse)))
(delete-backward-char pcomplete-last-completion-length) (progn
(if (eq this-command 'pcomplete-reverse) (delete-backward-char pcomplete-last-completion-length)
(progn (if (eq this-command 'pcomplete-reverse)
(push (car (last pcomplete-current-completions)) (progn
pcomplete-current-completions) (push (car (last pcomplete-current-completions))
(setcdr (last pcomplete-current-completions 2) nil)) pcomplete-current-completions)
(nconc pcomplete-current-completions (setcdr (last pcomplete-current-completions 2) nil))
(list (car pcomplete-current-completions))) (nconc pcomplete-current-completions
(setq pcomplete-current-completions (list (car pcomplete-current-completions)))
(cdr pcomplete-current-completions))) (setq pcomplete-current-completions
(pcomplete-insert-entry pcomplete-last-completion-stub (cdr pcomplete-current-completions)))
(car pcomplete-current-completions) (pcomplete-insert-entry pcomplete-last-completion-stub
nil pcomplete-last-completion-raw)) (car pcomplete-current-completions)
nil pcomplete-last-completion-raw))
(setq pcomplete-current-completions nil (setq pcomplete-current-completions nil
pcomplete-last-completion-raw nil) pcomplete-last-completion-raw nil)
(catch 'pcompleted (catch 'pcompleted
(let* ((pcomplete-stub) (let* ((pcomplete-stub)
pcomplete-seen pcomplete-norm-func pcomplete-seen pcomplete-norm-func
pcomplete-args pcomplete-last pcomplete-index pcomplete-args pcomplete-last pcomplete-index
(pcomplete-autolist pcomplete-autolist) (pcomplete-autolist pcomplete-autolist)
(pcomplete-suffix-list pcomplete-suffix-list) (pcomplete-suffix-list pcomplete-suffix-list)
(completions (pcomplete-completions)) (completions (pcomplete-completions))
(result (pcomplete-do-complete pcomplete-stub completions))) (result (pcomplete-do-complete pcomplete-stub completions)))
(and result (and result
(not (eq (car result) 'listed)) (not (eq (car result) 'listed))
(cdr result) (cdr result)
(pcomplete-insert-entry pcomplete-stub (cdr result) (pcomplete-insert-entry pcomplete-stub (cdr result)
(memq (car result) (memq (car result)
'(sole shortest)) '(sole shortest))
pcomplete-last-completion-raw)))))) pcomplete-last-completion-raw)))))))
(provide 'ledger-complete) (provide 'ledger-complete)