[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: completing-read depricated initial-input
From: |
Jean Louis |
Subject: |
Re: completing-read depricated initial-input |
Date: |
Thu, 23 Jun 2022 18:19:42 +0300 |
User-agent: |
Mutt/+ () (2022-05-21) |
* Michael Heerdegen <michael_heerdegen@web.de> [2022-06-23 14:22]:
> Arash Esbati <arash@gnu.org> writes:
>
> > Note the terms "mostly-deprecated", "discourage", "recommend",
> > "superseded". So maybe the docstring of `completing-read' should be
> > adjusted to the statements above in order to avoid confusion?
>
> The purpose of `completing-read' is a bit different from `read-string'
> and `read-from-minibuffer'. Providing INITIAL-INPUT is useful for the
> latter, but much less for `completing-read' in my opinion. If at all
> (anybody who has a believable real-life example?).
I am used to automatically generate history variables based on
prompt. And I use often read-from-minibuffer wrapped in my function,
this below is using automatically inserted initial contents based on
history variable. I find that useful.
(defun rcd-ask (&optional prompt initial-contents keymap read default-value
auto-initial-contents)
"Modified function `read-from-minibuffer'.
This is shorter, simpler function that generates the prompt
automatically, generates history variable automatically and
inherits the input method. The input will be returned trimmed."
(let* ((prompt (or prompt "Input data: "))
(history (rcd-ask-history-variable prompt))
(initial-contents (or initial-contents (when auto-initial-contents
(car (symbol-value history)))))
(input (read-from-minibuffer prompt initial-contents keymap read
history default-value t))
(input (string-trim input)))
input))
;; (rcd-ask "First name: " "Emmanuel") ⇒ "Emmanuel"
;; (rcd-ask "First name: ") ⇒ "Berg"
;; rcd-first-name---history ⇒ ("Berg" "Emmanuel" "Jean" "Louis")
Then we get automatic initial contents based on the prompt:
(rcd-ask "First name: " nil nil nil nil t)
as then minibuffer says "First name: Berg" and waits for input.
Having initial contents based on last value of the history is useful on my side.
But then again I have another wrapper that uses `completing-read'
which I also want to adapt to use auto-initial-input based on last
value of history variable. For example I am often entering country
names, and often people from same country, having last history
variable as auto-initial-input is useful
(defun rcd-completing-read-sql-hash (prompt sql pg &optional history
initial-input not-require-match)
"Complete selection by using SQL.
First column shall be unique id, followed by text
representation. Example SQL query:
SELECT people_id, people_firstname || ' ' || people_lastname FROM people
PG is database handle. HISTORY is supported with INITIAL-INPUT
Argument PROMPT will be displayed to user."
(let* ((hash (rcd-sql-hash-with-key sql pg))
(completion-ignore-case t)
(require-match (if not-require-match nil t))
(history (or history (rcd-ask-history-variable prompt)))
(choice (completing-read prompt hash nil require-match initial-input
history))
(choice (string-trim choice))
(id (gethash choice hash)))
(if id id
(if not-require-match
choice))))
--
Jean
Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns
In support of Richard M. Stallman
https://stallmansupport.org/
- Re: [External] : Re: completing-read depricated initial-input, (continued)
- RE: [External] : Re: completing-read depricated initial-input, Drew Adams, 2022/06/23
- Re: RE: [External] : completing-read depricated initial-input, Christopher Dimech, 2022/06/24
- Re: completing-read depricated initial-input, Emanuel Berg, 2022/06/23
- Re: completing-read depricated initial-input, Jean Louis, 2022/06/23
- Re: completing-read depricated initial-input, Emanuel Berg, 2022/06/23
- Re: completing-read depricated initial-input, Jean Louis, 2022/06/24
- Re: completing-read depricated initial-input,
Jean Louis <=
- Re: completing-read depricated initial-input, Jean Louis, 2022/06/23
- RE: [External] : Re: completing-read depricated initial-input, Drew Adams, 2022/06/23
- Re: completing-read depricated initial-input, Arash Esbati, 2022/06/23
- Re: completing-read depricated initial-input, Christopher Dimech, 2022/06/23
- Re: completing-read depricated initial-input, Emanuel Berg, 2022/06/23
- Re: completing-read depricated initial-input, Po Lu, 2022/06/21
- Re: completing-read depricated initial-input, Emanuel Berg, 2022/06/21
- Re: completing-read depricated initial-input, Christopher Dimech, 2022/06/22
- Re: completing-read depricated initial-input, Arash Esbati, 2022/06/23
- Re: completing-read depricated initial-input, Emanuel Berg, 2022/06/23