unofficial mirror of emacs-tangents@gnu.org
 help / color / mirror / Atom feed
* Patronage or code bounties for Emacs enhancements
@ 2020-11-13 12:06 Jean Louis
  2020-11-15  1:06 ` Thien-Thi Nguyen
  0 siblings, 1 reply; 3+ messages in thread
From: Jean Louis @ 2020-11-13 12:06 UTC (permalink / raw)
  To: Thien-Thi Nguyen; +Cc: emacs-tangents

Dear Thien-Thi,

I have seen your patronage and I agree with it.

In general I am interested in some enhancements to Emacs core software
as such enhancements would contribute to software I am preparing
HyperScope for Emacs that represents dynamic knowledge repository
(DKR) and follows principles as designed by Doug Engelbart.

Doug Engelbart Institute - Boosting mankind's capability for coping
with complex, urgent problems https://www.dougengelbart.org/

Imagine it as huge database backed index. Currently it has 20000
entries. It could receive too many entries at any time from now. It
uses tabulated-list-mode currently to display its
entries. It may use different modes later. It is tree of knowledge
where user can browse nodes.

There are options such as filter. And there is option to use
completing-read to find specific entries or sets of entries.

The built-in completing-read function does not satisfy my needs as it
is not as visual and legible. This software works well with helm that
shows selection in separate split window. Other completing packages
could work but are more or less not as useful as helm.

My goal is to minimize dependencies and not use neither helm nor
completing read. I prefer if function is built-in or included in Emacs
that offers good real-time incremental matching or search that narrows
selection of lines displayed.

The selection system should be most similar to helm. Yet it would
apply to tabulated-list-mode and it would not and need not be
replacement for completing-read. It can be enhancement to
tabulated-list-mode that visually and in real time narrows the
display.

Proposal and thread is here:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=44550

Features wanted:

- that narrowing selection system works equally well in console and X

- that it offers visual real-time narrowing of the list in
  tabulated-list-mode, that user may decide to stop narrowing and
  browse the list or re-start narrowing again

- that user can go back to the full list in tabulated-list-mode. This
  implies that narrowed list is some new list and original list has to
  be remembered

- that separate function is invented that returns back the ID value of
  the item

More description on narrowing feature:

- user should be able to type or write anything with spaces and words
  in reverse orders. Matching lines should be displayed by first
  showing:

  - lines that match all entries, such as "john" "doe" "boston" would
    match entries in that order

  - then eventually would come entries that are not in same order,
    such as those containing first "boston" then "john" or "doe" (in
    any order)

  - words that user type while narrowing in real time should appear
    somewhere. One place for words to appear is minibuffer. But need
    not be minibuffer, it could be a new line that opens on the top
    above the header or below the header line. For now this paragraph
    is not as important.

Jean



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Patronage or code bounties for Emacs enhancements
  2020-11-13 12:06 Patronage or code bounties for Emacs enhancements Jean Louis
@ 2020-11-15  1:06 ` Thien-Thi Nguyen
  2020-11-15  7:03   ` Jean Louis
  0 siblings, 1 reply; 3+ messages in thread
From: Thien-Thi Nguyen @ 2020-11-15  1:06 UTC (permalink / raw)
  To: Jean Louis; +Cc: emacs-tangents

[-- Attachment #1: Type: text/plain, Size: 2341 bytes --]


() Jean Louis <bugs@gnu.support>
() Fri, 13 Nov 2020 15:06:24 +0300

   [tree of knowledge]

Have you tried using a database (like EDB) to hold this info?
(You can find EDB at <https://www.gnuvola.org/software/edb/>.)

   There are options such as filter. And there is option to use
   completing-read to find specific entries or sets of entries.

   The built-in completing-read function does not satisfy my
   needs as it is not as visual and legible. This software works
   well with helm that shows selection in separate split
   window. Other completing packages could work but are more or
   less not as useful as helm.

   My goal is to minimize dependencies and not use neither helm
   nor completing read. I prefer if function is built-in or
   included in Emacs that offers good real-time incremental
   matching or search that narrows selection of lines displayed.

I think the term "narrow" is misguided.  It suggests one locus,
whereas IIUC the behavior you seek is to selectively display
disparate elements in a compact way, w/ unselected elements
completely hidden.  Kind of like an accordian when folded.  So,
adding input would "squeeze" the set of elements, showing those
matching the input and hiding the rest.  Does that sound right?

   - user should be able to type or write anything with spaces
     and words in reverse orders. Matching lines should be
     displayed by first showing:

I don't understand the ordering concept.  What is forward and
what is reverse?  Can you give examples?

     - lines that match all entries, such as "john" "doe"
       "boston" would match entries in that order

     - then eventually would come entries that are not in same
       order, such as those containing first "boston" then
       "john" or "doe" (in any order)

So, it is not really "reverse", but "arbitrary".  Is that right?

Sounds like M-x occur, except dynamic and w/ token permutation.

-- 
Thien-Thi Nguyen -----------------------------------------------
 (defun responsep (query)               ; (2020) Software Libero
   (pcase (context query)               ;       = Dissenso Etico
     (`(technical ,ml) (correctp ml))
     ...))                              748E A0E8 1CB8 A748 9BFA
--------------------------------------- 6CE4 6703 2224 4C80 7502


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 219 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Patronage or code bounties for Emacs enhancements
  2020-11-15  1:06 ` Thien-Thi Nguyen
@ 2020-11-15  7:03   ` Jean Louis
  0 siblings, 0 replies; 3+ messages in thread
From: Jean Louis @ 2020-11-15  7:03 UTC (permalink / raw)
  To: Thien-Thi Nguyen; +Cc: emacs-tangents

[-- Attachment #1: Type: text/plain, Size: 3649 bytes --]

* Thien-Thi Nguyen <ttn@gnuvola.org> [2020-11-15 04:07]:
> 
> () Jean Louis
> () Fri, 13 Nov 2020 15:06:24 +0300
> 
>    [tree of knowledge]
> 
> Have you tried using a database (like EDB) to hold this info?
> (You can find EDB at <https://www.gnuvola.org/software/edb/>.)

I was researching about that on your website. I remember seeing it
back in time in ELPA. But I may be wrong.

In my opinion EDB should be in the GNU ELPA. Could you please put it
there? You just talk on emacs-devel on including it in GNU ELPA. Every
database package is by my opinion essential. And I was looking for
exactly something like that to provide several business packages to
GNU ELPA.

The dynamic module emacs-libpq is also coming soon to GNU ELPA. That
is what HyperScope program is using in background.

Soon I will be testing EDB.

> I think the term "narrow" is misguided.  It suggests one locus,
> whereas IIUC the behavior you seek is to selectively display
> disparate elements in a compact way, w/ unselected elements
> completely hidden.

Yes, I speak of dynamic real-time filtering.

Normal filtering would be like:

- press a key
- write a term
- see the filtered result
- again press a key
- write a term
- see filtered result

While dynamic real time filtering allows user to write and adjust the
terms during writing the terms as there will be some other information
displayed that user did not know about and did not search for it and
would not easily stumble upon it would not be there dynamic real time
filtering. 

> Kind of like an accordian when folded.  So, adding input would
> "squeeze" the set of elements, showing those matching the input and
> hiding the rest.  Does that sound right?

Yes. This is because of huge lists that are used as menus. In Emacs it
is common to ask user to use minibuffer to complete some of choices,
but that is not really filtering. It could be filtering when the
narrowed or filtered completing-read list could be taken over and
applied into buffer. Most of completing read packages do not allow
that.

>    - user should be able to type or write anything with spaces
>      and words in reverse orders. Matching lines should be
>      displayed by first showing:
> 
> I don't understand the ordering concept.  What is forward and
> what is reverse?  Can you give examples?
> 
>      - lines that match all entries, such as "john" "doe"
>        "boston" would match entries in that order
> 
>      - then eventually would come entries that are not in same
>        order, such as those containing first "boston" then
>        "john" or "doe" (in any order)
> 
> So, it is not really "reverse", but "arbitrary".  Is that right?

Yes, it is meant arbitrary. One packages offering such searches is
named orderless.el

I am here not proposing to include outside package, it is there for
reference.

Rather I seek to see implementation within Emacs for dynamic real time
filtering within tabulated-list-mode.

That then in turn allows something as full screen menu selection.

It may be usable for:

- managing databases, I am managing dynamic knowledge repository (DKR)
  very similar to Gnowsys https://www.gnu.org/s/gnowsys

- it may be usable to offer list of items to user to select one or
  more among them (marking items would be another good feature for
  tabulated-list-mode)

Example would be:

- choosing one or several clients to be informed about condition X

- choosing one or more items to be included in the invoice list

- choosing account for bookkeeping to be updated with transaction


Jean

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-11-15  7:03 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-13 12:06 Patronage or code bounties for Emacs enhancements Jean Louis
2020-11-15  1:06 ` Thien-Thi Nguyen
2020-11-15  7:03   ` Jean Louis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).