> So the question is: how can the completion-ignore-case value be
> propagated from the completion gathering function in
> `completion-at-point-functions' to the function that actually applies
> this completion, without having to modify the global or buffer local
> value of `completion-ignore-case'?
Assuming you have a completion table in variable `table', you should be
able to construct a new completion table that's case-insensitive with
something like the untested code below:
(defun completion-table-case-fold (table string pred action)
(let ((completion-ignore-case t))
(complete-with-action action table string pred)))
[...]
(let ((newtable
(apply-partially #'completion-table-case-fold table)))
[...])
where completion-table-case-fold is an auxiliary function which
(c|sh)ould be added to minibuffer.el.
The case-sensitivity of the completion code is indeed problematic.
Here's for example an excerpt from minibuffer.el:
;; - case-sensitivity currently confuses two issues:
;; - whether or not a particular completion table should be case-sensitive
;; (i.e. whether strings that differ only by case are semantically
;; equivalent)
;; - whether the user wants completion to pay attention to case.
;; e.g. we may want to make it possible for the user to say "first try
;; completion case-sensitively, and if that fails, try to ignore case".
Stefan
_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-orgmode