unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Re: master 5892b4db8de 2/3: Convert dictionary-mode to define-derived-mode
       [not found] ` <20230812145313.C853CC038C2@vcs2.savannah.gnu.org>
@ 2023-08-16 12:55   ` Visuwesh
  2023-08-16 19:45     ` Stefan Kangas
                       ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Visuwesh @ 2023-08-16 12:55 UTC (permalink / raw)
  To: emacs-devel; +Cc: Stefan Kangas

[சனி ஆகஸ்ட் 12, 2023] Stefan Kangas wrote:

> branch: master
> commit 5892b4db8de4694904f631dd86438926fb9d7ff1
> Author: Stefan Kangas <stefankangas@gmail.com>
> Commit: Stefan Kangas <stefankangas@gmail.com>
>
>     Convert dictionary-mode to define-derived-mode
>     
>     * lisp/net/dictionary.el (dictionary-instances): Delete.
>     (dictionary-mode): Use define-derived-mode.
>     (dictionary--count-mode-buffers): New function.
>     (dictionary-close): Use above new function.
 
> +(defun dictionary--count-mode-buffers ()
> +  "Return the number of buffers that "

The docstring is incomplete here.  :-(

> +  (seq-reduce #'+
> +              (mapcar
> +               (lambda (buf)
> +                 (with-current-buffer buf
> +                   (if (derived-mode-p 'dictionary-mode) 1 0)))
> +               (buffer-list))
> +              0))
> +

I believe the following function should be faster

    (defun dictionary--count-mode-buffers ()
      "Return the number of buffers that "
      (seq-reduce (lambda (count buf)
                    (if (provided-mode-derived-p (buffer-local-value 'major-mode buf)
                                                 'dictionary-mode)
                        (+ count 1)
                      count))
                  (buffer-list)
                  0))



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

* Re: master 5892b4db8de 2/3: Convert dictionary-mode to define-derived-mode
  2023-08-16 12:55   ` master 5892b4db8de 2/3: Convert dictionary-mode to define-derived-mode Visuwesh
@ 2023-08-16 19:45     ` Stefan Kangas
  2023-08-16 22:33     ` Philip Kaludercic
  2023-08-17  9:15     ` Basil L. Contovounesios
  2 siblings, 0 replies; 6+ messages in thread
From: Stefan Kangas @ 2023-08-16 19:45 UTC (permalink / raw)
  To: Visuwesh; +Cc: emacs-devel

Visuwesh <visuweshm@gmail.com> writes:

> I believe the following function should be faster
>
>     (defun dictionary--count-mode-buffers ()
>       "Return the number of buffers that "
>       (seq-reduce (lambda (count buf)
>                     (if (provided-mode-derived-p (buffer-local-value 'major-mode buf)
>                                                  'dictionary-mode)
>                         (+ count 1)
>                       count))
>                   (buffer-list)
>                   0))

Thanks, pushed to master (commit d96dd127e39).



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

* Re: master 5892b4db8de 2/3: Convert dictionary-mode to define-derived-mode
  2023-08-16 12:55   ` master 5892b4db8de 2/3: Convert dictionary-mode to define-derived-mode Visuwesh
  2023-08-16 19:45     ` Stefan Kangas
@ 2023-08-16 22:33     ` Philip Kaludercic
  2023-08-19 11:08       ` Stefan Kangas
  2023-08-17  9:15     ` Basil L. Contovounesios
  2 siblings, 1 reply; 6+ messages in thread
From: Philip Kaludercic @ 2023-08-16 22:33 UTC (permalink / raw)
  To: Visuwesh; +Cc: emacs-devel, Stefan Kangas

Visuwesh <visuweshm@gmail.com> writes:

> [சனி ஆகஸ்ட் 12, 2023] Stefan Kangas wrote:
>
>> branch: master
>> commit 5892b4db8de4694904f631dd86438926fb9d7ff1
>> Author: Stefan Kangas <stefankangas@gmail.com>
>> Commit: Stefan Kangas <stefankangas@gmail.com>
>>
>>     Convert dictionary-mode to define-derived-mode
>>     
>>     * lisp/net/dictionary.el (dictionary-instances): Delete.
>>     (dictionary-mode): Use define-derived-mode.
>>     (dictionary--count-mode-buffers): New function.
>>     (dictionary-close): Use above new function.
>  
>> +(defun dictionary--count-mode-buffers ()
>> +  "Return the number of buffers that "
>
> The docstring is incomplete here.  :-(
>
>> +  (seq-reduce #'+
>> +              (mapcar
>> +               (lambda (buf)
>> +                 (with-current-buffer buf
>> +                   (if (derived-mode-p 'dictionary-mode) 1 0)))
>> +               (buffer-list))
>> +              0))
>> +
>
> I believe the following function should be faster
>
>     (defun dictionary--count-mode-buffers ()
>       "Return the number of buffers that "
>       (seq-reduce (lambda (count buf)
>                     (if (provided-mode-derived-p (buffer-local-value 'major-mode buf)
>                                                  'dictionary-mode)
>                         (+ count 1)
>                       count))
>                   (buffer-list)
>                   0))

Alternatively (length (match-buffers '(derived-mode . dictionary-mode)))



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

* Re: master 5892b4db8de 2/3: Convert dictionary-mode to define-derived-mode
  2023-08-16 12:55   ` master 5892b4db8de 2/3: Convert dictionary-mode to define-derived-mode Visuwesh
  2023-08-16 19:45     ` Stefan Kangas
  2023-08-16 22:33     ` Philip Kaludercic
@ 2023-08-17  9:15     ` Basil L. Contovounesios
  2 siblings, 0 replies; 6+ messages in thread
From: Basil L. Contovounesios @ 2023-08-17  9:15 UTC (permalink / raw)
  To: Visuwesh; +Cc: emacs-devel, Stefan Kangas

Visuwesh [2023-08-16 18:25 +0530] wrote:

> [சனி ஆகஸ்ட் 12, 2023] Stefan Kangas wrote:
>
>> branch: master
>> commit 5892b4db8de4694904f631dd86438926fb9d7ff1
>> Author: Stefan Kangas <stefankangas@gmail.com>
>> Commit: Stefan Kangas <stefankangas@gmail.com>
>>
>> +  (seq-reduce #'+
>> +              (mapcar
>> +               (lambda (buf)
>> +                 (with-current-buffer buf
>> +                   (if (derived-mode-p 'dictionary-mode) 1 0)))
>> +               (buffer-list))
>> +              0))
>> +
>
> I believe the following function should be faster
>
>     (defun dictionary--count-mode-buffers ()
>       "Return the number of buffers that "
>       (seq-reduce (lambda (count buf)
>                     (if (provided-mode-derived-p (buffer-local-value 'major-mode buf)
>                                                  'dictionary-mode)
>                         (+ count 1)
>                       count))
>                   (buffer-list)
>                   0))

Yet faster and simpler would be to use seq-count in place of seq-reduce.

Thanks,
-- 
Basil



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

* Re: master 5892b4db8de 2/3: Convert dictionary-mode to define-derived-mode
  2023-08-16 22:33     ` Philip Kaludercic
@ 2023-08-19 11:08       ` Stefan Kangas
  2023-08-19 15:46         ` Philip Kaludercic
  0 siblings, 1 reply; 6+ messages in thread
From: Stefan Kangas @ 2023-08-19 11:08 UTC (permalink / raw)
  To: Philip Kaludercic; +Cc: Visuwesh, emacs-devel

Philip Kaludercic <philipk@posteo.net>:

> Alternatively (length (match-buffers '(derived-mode . dictionary-mode)))

Nice golfing, thanks.  I installed that.



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

* Re: master 5892b4db8de 2/3: Convert dictionary-mode to define-derived-mode
  2023-08-19 11:08       ` Stefan Kangas
@ 2023-08-19 15:46         ` Philip Kaludercic
  0 siblings, 0 replies; 6+ messages in thread
From: Philip Kaludercic @ 2023-08-19 15:46 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: Visuwesh, emacs-devel

Stefan Kangas <stefankangas@gmail.com> writes:

> Philip Kaludercic <philipk@posteo.net>:
>
>> Alternatively (length (match-buffers '(derived-mode . dictionary-mode)))
>
> Nice golfing, thanks.  I installed that.

Though one should note that it does cons unnecessarily.  It probably
doesn't matter that much, due to the scope of the problem, but perhaps
it would be a good idea to add an optional COUNT argument to
`match-buffer', like the one that was added to `directory-files'.



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

end of thread, other threads:[~2023-08-19 15:46 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <169185199333.11628.2162615922937919004@vcs2.savannah.gnu.org>
     [not found] ` <20230812145313.C853CC038C2@vcs2.savannah.gnu.org>
2023-08-16 12:55   ` master 5892b4db8de 2/3: Convert dictionary-mode to define-derived-mode Visuwesh
2023-08-16 19:45     ` Stefan Kangas
2023-08-16 22:33     ` Philip Kaludercic
2023-08-19 11:08       ` Stefan Kangas
2023-08-19 15:46         ` Philip Kaludercic
2023-08-17  9:15     ` Basil L. Contovounesios

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

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).