[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package
From: |
Jean Louis |
Subject: |
Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico |
Date: |
Wed, 7 Apr 2021 22:47:57 +0300 |
User-agent: |
Mutt/2.0.6 (2021-03-06) |
* Philip Kaludercic <philipk@posteo.net> [2021-04-07 22:14]:
> Daniel Mendler <mail@daniel-mendler.de> writes:
>
> > On 4/7/21 6:20 PM, Philip Kaludercic wrote:
> >> Well that is because imenu presents the options in the minibuffer, and
> >> you have to go through the menu step-by-step. What I'm talking about is
> >> a direct hierarchical visualisation, that should be navigable with the
> >> intuitiveness of org-mode.
> >
> > This is a bit vague. If we have a tree structure one can have some
> > tree-like visualization (like the sidebar tree browsers) or have an
> > outline like in org-mode. But how would you actually navigate quickly?
> > Using Avy-like keys? What if the structure does not fit on the screen
> > easily, what if there are cycles, ...?
>
> I'm still thinking about all of this, and have to find the time to
> implement a prototype. It might make sense to have a similar approach to
> completing-read, where a variable like completing-read-function can
> change everything.
>
> A tree-like visualisation would probably make more sense, as long as it
> can be manipulated using the keyboard. I mentioned org-mode thinking of
> the org-cycle command, and how it allows you to hide and show
> subtrees.
When selecting items in tabulated-list-mode, all of them have the ID,
but some IDs have its type of being a Set or subtree. When subtree is
choosen a new frame appears with its nodes.
Similarly, completing-read could even now browse trees, it is matter
of recognizing which item belong to a tree to immediately offer
another completing-read with the nodes of the subtree. Subtrees cannot
be selected, but those nodes or candidates which are not subtrees they
can be selected.
I am using strings with IDs like "Selection candidate [123]" and that
is how I extract the ID of the item, then I can test for it if it is a
subtree or not and offer new completing read on that.
(defun string-cut-right-square-bracket-reference (s)
"Returns the reference within square brackets on the end of S."
(let* ((space (string-match " " (reverse s))))
(if space
(let* ((id (substring (reverse s) 0 space)))
(if (and (string-match "\\[" id)
(string-match "\\]" id))
(replace-regexp-in-string "\\[\\\|\\]" "" (reverse id))
nil))
nil)))
(string-cut-right-square-bracket-reference "Selection candidate [123]") → "123"
(setq set '(10 20))
(setq collection-data '(("Candidate A" 10)
("Candidate B" 11)
("Candidate C" 20)
("Candidate D" 12)
("Candidate E" 13)
("Candidate D" 14)))
(setq collection-verify collection-data)
(setq collection nil)
(while collection-data
(let ((item (pop collection-data)))
(push (format "%s [%s]" (car item) (cadr item)) collection)))
(completing-read "Choose item: " collection) → "Candidate A [10]"
Concept is here:
(defun completing-read-tree (prompt collection)
(while (member (string-to-number
(string-cut-right-square-bracket-reference
(completing-read "Choose: " collection)))
set)
(completing-read-tree prompt collection))) ;; at this point `collection'
;; would be replaced
;; with collection that
;; belongs to
;; particular set and
;; browsing trees with
;; completing read goes
;; deeper and deeper. A
;; key would be
;; required to go back.
(completing-read-tree "Choose: " collection)
--
Jean
Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns
Sign an open letter in support of Richard M. Stallman
https://rms-support-letter.github.io/
- Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico, (continued)
- Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico, Daniel Mendler, 2021/04/07
- Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico, Stefan Monnier, 2021/04/07
- Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico, Daniel Mendler, 2021/04/07
- Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico, Philip Kaludercic, 2021/04/07
- Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico, Daniel Mendler, 2021/04/07
- RE: [External] : Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico, Drew Adams, 2021/04/07
- Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico, Philip Kaludercic, 2021/04/07
- Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico,
Jean Louis <=
- Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico, Daniel Mendler, 2021/04/07
- Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico, Philip Kaludercic, 2021/04/07
- Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico, Tassilo Horn, 2021/04/09
- Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico, Daniel Mendler, 2021/04/09
- RE: [External] : Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico, Drew Adams, 2021/04/09
- Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico, Tassilo Horn, 2021/04/09
- RE: [External] : Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico, Drew Adams, 2021/04/07
- Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico, Jean Louis, 2021/04/07
- RE: [External] : Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico, Drew Adams, 2021/04/07
- RE: [External] : Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico, Drew Adams, 2021/04/07