* find-file-dwim.el @ 2024-07-21 22:10 Emanuel Berg 2024-07-22 3:33 ` find-file-dwim.el Emanuel Berg 2024-07-22 5:32 ` find-file-dwim.el Emanuel Berg 0 siblings, 2 replies; 12+ messages in thread From: Emanuel Berg @ 2024-07-21 22:10 UTC (permalink / raw) To: emacs-devel I'll do the legendary Holy Grail of Elisp programming, namely find-file-dwim.el - I don't think you have that, eh? And no doubt it belongs in ELPA. For the record, this idea is not mine originally. If anyone wants to join, please do. I have a plan how to do it, as always. Some people are not allowed to join - and it is too difficult for them anyway - so it is all good they also don't comment on anything thus saving themself the embarrassment of further ruining their reputations. No more Mr Nice Guy from me explaining things, but know, take a cheap shot without massive backup that is very, very convincing and what will happen you can prepare 20x the amount back, instantly. I have absolutely nothing to prove to a bunch of of flamers and lamers. OK, how will I do it? Join, you get whatever position or task you want, and I'll tell you :) Join by sending mail, we don't take it here if possible. -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: find-file-dwim.el 2024-07-21 22:10 find-file-dwim.el Emanuel Berg @ 2024-07-22 3:33 ` Emanuel Berg 2024-07-22 14:02 ` find-file-dwim.el Philip Kaludercic 2024-07-22 5:32 ` find-file-dwim.el Emanuel Berg 1 sibling, 1 reply; 12+ messages in thread From: Emanuel Berg @ 2024-07-22 3:33 UTC (permalink / raw) To: emacs-devel > I'll do the legendary Holy Grail of Elisp programming, > namely find-file-dwim.el I'm working on this now so I'll forget all the rest. Do Calc if you want to. This will be a heck of an application. There will be several servers that are always ready and as soon as one server gets it right it will be promoted to try its thing sooner the next time. The individual servers can also be adapting and self-improving just by functioning much like a memory hierarchy with levels of differently sized, paced, and priced cache. Maybe overkill to do but would be cool. But it is all based on proximity in time and space. Ikr? Just like a drill! -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: find-file-dwim.el 2024-07-22 3:33 ` find-file-dwim.el Emanuel Berg @ 2024-07-22 14:02 ` Philip Kaludercic 2024-07-22 15:40 ` find-file-dwim.el Emanuel Berg 2024-07-23 0:47 ` find-file-dwim.el Emanuel Berg 0 siblings, 2 replies; 12+ messages in thread From: Philip Kaludercic @ 2024-07-22 14:02 UTC (permalink / raw) To: emacs-devel It might just be, but your message confuses me: I am not sure what you are trying to say here, are you proposing adding the these functions to the core (in which case a patch would be more appropriate) or to ELPA (in which case we'd like a link to some Git repository). If you are just interested in sharing code with others, perhaps the development mailing list is not the right place to do so. (Also, please don't forget to CC me in your response, I recall this being an issue in the past where I didn't see your response until much later). Emanuel Berg <incal@dataswamp.org> writes: >> I'll do the legendary Holy Grail of Elisp programming, >> namely find-file-dwim.el > > I'm working on this now so I'll forget all the rest. Do Calc if > you want to. > > This will be a heck of an application. There will be several > servers that are always ready and as soon as one server gets > it right it will be promoted to try its thing sooner the > next time. > > The individual servers can also be adapting and self-improving > just by functioning much like a memory hierarchy with levels > of differently sized, paced, and priced cache. Maybe overkill > to do but would be cool. > > But it is all based on proximity in time and space. > > Ikr? Just like a drill! Emanuel Berg <incal@dataswamp.org> writes: >> I'll do the legendary Holy Grail of Elisp programming, >> namely find-file-dwim.el > > Four methods now and one can add a lot of those if one comes up > with new ideas. > > What remains to do, well, polishing, is the interface and > I think it will be super-important to get that right, how to > indicate a suggested file isn't what you look for, for > example. > > I'll post a new version in a couple of days or so, maybe. > > ;;; -*- lexical-binding: t -*- > ;; > ;; this file: > ;; https://dataswamp.org/~incal/emacs-init/find-file-dwim.el > ;; > ;; created: 2024-07-22 > ;; version: 0.1.0 > > (require 'cl-lib) > (require 'psea) ; https://dataswamp.org/~incal/emacs-init/psea.el > > (defun buffers () > (mapcar #'buffer-name (buffer-list)) ) > > ;; (buffers) > > (defun mod-time-sec (f) > (let ((s (time-convert > (file-attribute-modification-time (file-attributes f)) > 'integer) )) > (list s f) )) > > ;; (mod-time-sec "~/.emacs") > > (defun remove-data (ds) > (mapcar #'cadr ds) ) > > (defun sort-mod-time-sec (&optional dir) > (or dir (setq dir default-directory)) > (let ((fs (directory-files dir nil nil t))) > (remove-data > (reverse (cl-sort (mapcar #'mod-time-sec fs) #'> :key #'car)) ))) > > ;; (sort-mod-time-sec) > > (defun psea-hit (s fs &optional max gov) > (and max (setq fs (seq-take fs max))) > (or gov (setq gov 70) ) > (cl-loop > with perc > with res > for f in fs do > (setq perc (sdp s f)) > (when (< gov perc) > (cl-pushnew (list perc f) res) ) > finally return (remove-data (cl-sort res #'> :key #'car)) )) > > ;; (psea-hit "buffer-menu" (buffers)) > ;; (psea-hit "find-file-dwim.el" (sort-mod-time-sec)) > > (defun re-hit (re fs &optional max) > (and max (setq fs (seq-take fs max))) > (cl-remove-if-not (lambda (f) (string-match re f)) fs) ) > > ;; (re-hit "line" (buffers)) > ;; (re-hit "line" (sort-mod-time-sec) 1000) > > (provide 'find-file-dwim) -- Philip Kaludercic on peregrine ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: find-file-dwim.el 2024-07-22 14:02 ` find-file-dwim.el Philip Kaludercic @ 2024-07-22 15:40 ` Emanuel Berg 2024-07-23 0:47 ` find-file-dwim.el Emanuel Berg 1 sibling, 0 replies; 12+ messages in thread From: Emanuel Berg @ 2024-07-22 15:40 UTC (permalink / raw) To: emacs-devel; +Cc: Philip Kaludercic Philip Kaludercic wrote: > It might just be, but your message confuses me: I am not > sure what you are trying to say here, are you proposing > adding the these functions to the core (in which case > a patch would be more appropriate) or to ELPA (in which case > we'd like a link to some Git repository). Well, I'll return to this when it is functioning, so you (and everyone) can try it and it will be easy to explain what its purpose is. -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: find-file-dwim.el 2024-07-22 14:02 ` find-file-dwim.el Philip Kaludercic 2024-07-22 15:40 ` find-file-dwim.el Emanuel Berg @ 2024-07-23 0:47 ` Emanuel Berg 2024-07-23 6:41 ` find-file-dwim.el Philip Kaludercic 2024-07-23 7:06 ` find-file-dwim.el Michael Albinus 1 sibling, 2 replies; 12+ messages in thread From: Emanuel Berg @ 2024-07-23 0:47 UTC (permalink / raw) To: emacs-devel; +Cc: Philip Kaludercic Philip Kaludercic wrote: > It might just be, but your message confuses me: I am not > sure what you are trying to say here, are you proposing > adding the these functions to the core (in which case > a patch would be more appropriate) or to ELPA (in which case > we'd like a link to some Git repository). If you are just > interested in sharing code with others, perhaps the > development mailing list is not the right place to do so. > (Also, please don't forget to CC me in your response, > I recall this being an issue in the past where I didn't see > your response until much later). Suggestion: The next time you or anyone else gets confused by my actions, instead of theorizing several different scenarios and criticizing each one in turn on a public ML, either send me a private mail where you just ask - or, even better, accept that you cannot understand every other human being on the planet - instead, focus on whatever it is _you_ are doing, I think will be a lot less confusing simple as it may sound. What I am doing? I am doing an alternative to `find-file', called `find-file-dwim'. As of now, some building blocks are in place, you can check out version 0.3.2 here - but it needs much more time and possibly some additional big things to be added, as well. https://dataswamp.org/~incal/emacs-init/find-file-dwim.el -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: find-file-dwim.el 2024-07-23 0:47 ` find-file-dwim.el Emanuel Berg @ 2024-07-23 6:41 ` Philip Kaludercic [not found] ` <87jzhcqw4a.fsf@dataswamp.org> 2024-07-23 13:01 ` find-file-dwim.el Emanuel Berg 2024-07-23 7:06 ` find-file-dwim.el Michael Albinus 1 sibling, 2 replies; 12+ messages in thread From: Philip Kaludercic @ 2024-07-23 6:41 UTC (permalink / raw) To: Emanuel Berg; +Cc: emacs-devel [-- Attachment #1: Type: text/plain, Size: 2056 bytes --] Emanuel Berg <incal@dataswamp.org> writes: > The following message is a courtesy copy of an article > that has been posted to gmane.emacs.devel as well. > > Philip Kaludercic wrote: > >> It might just be, but your message confuses me: I am not ^ *me >> sure what you are trying to say here, are you proposing >> adding the these functions to the core (in which case >> a patch would be more appropriate) or to ELPA (in which case >> we'd like a link to some Git repository). If you are just >> interested in sharing code with others, perhaps the >> development mailing list is not the right place to do so. >> (Also, please don't forget to CC me in your response, >> I recall this being an issue in the past where I didn't see >> your response until much later). > > Suggestion: The next time you or anyone else gets confused by > my actions, instead of theorizing several different scenarios > and criticizing each one in turn on a public ML, either send > me a private mail where you just ask - or, even better, accept > that you cannot understand every other human being on the > planet - instead, focus on whatever it is _you_ are doing, > I think will be a lot less confusing simple as it may sound. My apologies if I offended you, it certainly wasn't my intention. My "job" is just to review ELPA submissions, and I wanted to check if your message was a proposal to add a package or not. > What I am doing? I am doing an alternative to `find-file', > called `find-file-dwim'. That is clear, my question was with what intention are you posting your code on the development mailing list: (a) To add the code to ELPA, (b) To add the code to the Emacs core, (c) None of the above. Depending on which of these > As of now, some building blocks are in place, you can check > out version 0.3.2 here - but it needs much more time and > possibly some additional big things to be added, as well. > > https://dataswamp.org/~incal/emacs-init/find-file-dwim.el Here are a few comments and improvements, fwiw: [-- Attachment #2: Type: text/plain, Size: 5299 bytes --] diff -u /tmp/find-file-dwim-comments.el /tmp/find-file-dwim.el --- /tmp/find-file-dwim-comments.el 2024-07-23 08:33:36.412846100 +0200 +++ /tmp/find-file-dwim.el 2024-07-23 04:59:05.000000000 +0200 @@ -1,112 +1,72 @@ -;;; find-file-dwim.el --- A `find-file' alternative -*- lexical-binding: t; -*- - -;; Copyright (C) 2024 Philip Kaludercic - -;; Author: Emanuel Berg <incal@dataswamp.org> -;; Keywords: files -;; URL: https://dataswamp.org/~incal/emacs-init/find-file-dwim.el -;; Created: 2024-07-22 -;; Version: 0.3.1 - -;; This program is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with this program. If not, see <https://www.gnu.org/licenses/>. - -;;; Commentary: - -;; This package provides an alternative to `find-file'. (Perhaps -;; explain the difference betweeen `find-file-dwim' and -;; `find-file-at-point' or the future history of `find-file'). - -;;; Code: +;;; -*- lexical-binding: t -*- +;; +;; this file: +;; https://dataswamp.org/~incal/emacs-init/find-file-dwim.el +;; +;; created: 2024-07-22 +;; version: 0.3.1 (require 'cl-lib) (require 'psea) ; https://dataswamp.org/~incal/emacs-init/psea.el -(defvar ffd-coll (sort-mod-time-sec) - "***DOCUMENTATION MISSING HERE***") +(defvar ffd-coll) +(setq ffd-coll (sort-mod-time-sec)) -;;;###autoload (defun find-file-dwim (&optional f) - "***DOCUMENTATION MISSING HERE***" (interactive (list - ;; are you sure you want to evaluate `ffd-coll' at - ;; load time? `sort-mod-time-sec' takes an implicit - ;; argument (the current directory) that this function - ;; will operate on the same directory, no matter where - ;; it is invoked. I don't think that qualifies at - ;; DWIM... - (completing-read-default "File: " ffd-coll nil nil default-directory))) + (completing-read-default "File: " ffd-coll nil nil default-directory) )) (when (file-exists-p f) - (find-file f))) + (find-file f) )) -;; (defalias 'f #'find-file-dwim) please don't do this by default! +(defalias 'f #'find-file-dwim) -(defun buffers () ;this appears to be dead code - "***DOCUMENTATION MISSING HERE***" - (mapcar #'buffer-name (buffer-list))) +(defun buffers () + (mapcar #'buffer-name (buffer-list)) ) ;; (buffers) -(defun get-dirs (fs) ;this as well - "***DOCUMENTATION MISSING HERE***" +(defun get-dirs (fs) (let ((dirs (cl-remove-if-not #'file-directory-p fs))) - (cl-sort dirs #'string<))) ;`directory-files' sorts by default! + (cl-sort dirs #'string<) )) ;; (get-dirs (directory-files "." t)) -(defun remove-data (ds) ;please prefix functions for their namespace - "***DOCUMENTATION MISSING HERE***" - (mapcar #'cadr ds)) +(defun remove-data (ds) + (mapcar #'cadr ds) ) (defun mod-time-sec (f) - "***DOCUMENTATION MISSING HERE***" - (let* ((attribs (file-attribute-modification-time (file-attributes f))) - (s (time-convert attribs 'integer))) - (list s f))) + (let*((attribs (file-attribute-modification-time (file-attributes f))) + (s (time-convert attribs 'integer) )) + (list s f) )) ;; (mod-time-sec "~/.emacs") (defun sort-mod-time-sec (&optional dir) - "***DOCUMENTATION MISSING HERE***" - (unless dir - (setq dir default-directory)) - (let* ((fs (directory-files dir t nil t)) - (all (mapcar #'mod-time-sec fs))) - (cl-sort all #'> :key #'car))) + (or dir (setq dir default-directory)) + (let*((fs (directory-files dir t nil t)) + (all (mapcar #'mod-time-sec fs) )) + (cl-sort all #'> :key #'car) )) ;; (sort-mod-time-sec) -(defun psea-hit (s fs &optional gov) ;this is dead code and uses the prefix of your other library? - "***DOCUMENTATION MISSING HERE***" +(defun psea-hit (s fs &optional gov) (or gov (setq gov 70)) (cl-loop - with perc - with res - for f in fs do - (setq perc (sdp s f)) ;`cl-loop' has keywords for these operations! - (when (< gov perc) - (cl-pushnew (list perc f) res)) - finally return (remove-data (cl-sort res #'> :key #'car)))) + with perc + with res + for f in fs do + (setq perc (sdp s f)) + (when (< gov perc) + (cl-pushnew (list perc f) res) ) + finally return (remove-data (cl-sort res #'> :key #'car)) )) ;; (psea-hit "buffer-menu" (buffers)) ;; (psea-hit "find-file-dwim.el" (remove-data (sort-mod-time-sec))) -(defun re-hit (re fs) ;nobody calls this, is this part of the library interface? - "***DOCUMENTATION MISSING HERE***" - (cl-remove-if-not (lambda (f) (string-match re f)) fs)) +(defun re-hit (re fs) + (cl-remove-if-not (lambda (f) (string-match re f)) fs) ) ;; (re-hit "line" (buffers)) ;; (re-hit "line" (remove-data (sort-mod-time-sec))) (provide 'find-file-dwim) -;;; find-file-dwim.el ends here Diff finished. Tue Jul 23 08:33:58 2024 [-- Attachment #3: Type: text/plain, Size: 37 bytes --] -- Philip Kaludercic on peregrine ^ permalink raw reply [flat|nested] 12+ messages in thread
[parent not found: <87jzhcqw4a.fsf@dataswamp.org>]
* Re: find-file-dwim.el [not found] ` <87jzhcqw4a.fsf@dataswamp.org> @ 2024-07-23 10:20 ` Philip Kaludercic 2024-07-23 13:08 ` find-file-dwim.el Emanuel Berg 0 siblings, 1 reply; 12+ messages in thread From: Philip Kaludercic @ 2024-07-23 10:20 UTC (permalink / raw) To: Emanuel Berg; +Cc: emacs-devel (You are still dropping emacs-devel from the CC) Emanuel Berg <incal@dataswamp.org> writes: > Philip Kaludercic wrote: > >> My apologies if I offended you, it certainly wasn't my >> intention. > > Really? But if so, it is alright then. > >> My "job" is just to review ELPA submissions, and I wanted to >> check if your message was a proposal to add a package >> or not. > > Of course not at this point, not even being anywhere close to > the form required by ELPA? > >> That is clear, my question was with what intention are you >> posting your code on the development mailing list: >> >> (a) To add the code to ELPA, >> (b) To add the code to the Emacs core, >> (c) None of the above. > > Well, it is not up to me where it will be added, so I focus > now on completing it. Then testing and if it is an > improvement, we take it from there. That is what confused me. Usually people don't share prototypes this early with the mailing list. But of course it is also up to you where you'd like to have this kind of a feature added, as soon as it is mature enough. But as mentioned in my comments, you should clarify what the "DWIM" aspect of your script is. Find-file already has some DWIM-ish stuff going on with the "future history" (M-n), so I am guessing your plan is to do something different? >> Here are a few comments and improvements, fwiw: > > Thanks, all is good then. -- Philip Kaludercic on peregrine ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: find-file-dwim.el 2024-07-23 10:20 ` find-file-dwim.el Philip Kaludercic @ 2024-07-23 13:08 ` Emanuel Berg 0 siblings, 0 replies; 12+ messages in thread From: Emanuel Berg @ 2024-07-23 13:08 UTC (permalink / raw) To: emacs-devel Philip Kaludercic wrote: > That is what confused me. Usually people don't share > prototypes this early with the mailing list. It is amazing to behold: not everyone does everything the same way. > But of course it is also up to you where you'd like to have > this kind of a feature added, as soon as it is > mature enough. It must also be tested to see if it really is an improvement before any of that can be contemplated. > But as mentioned in my comments, you should clarify what the > "DWIM" aspect of your script is. Find-file already has some > DWIM-ish stuff going on with the "future history" (M-n), so > I am guessing your plan is to do something different? I have several ideas and they are not opposed to each other so maybe I'll do all of them. The most simplest idea is based on the COLLECTION which will be updated on the fly and limited to a smaller scope. -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: find-file-dwim.el 2024-07-23 6:41 ` find-file-dwim.el Philip Kaludercic [not found] ` <87jzhcqw4a.fsf@dataswamp.org> @ 2024-07-23 13:01 ` Emanuel Berg 1 sibling, 0 replies; 12+ messages in thread From: Emanuel Berg @ 2024-07-23 13:01 UTC (permalink / raw) To: emacs-devel Philip Kaludercic wrote: > My apologies if I offended you, it certainly wasn't my > intention. Okay then, if you say. > My "job" is just to review ELPA submissions, and I wanted to > check if your message was a proposal to add a package > or not. Okay, no, as is, again, evident from the state of that file including its formatting it isn't a suggestion for ELPA at this point by far. But thanks for the suggestions to the Elisp and I did some that. -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: find-file-dwim.el 2024-07-23 0:47 ` find-file-dwim.el Emanuel Berg 2024-07-23 6:41 ` find-file-dwim.el Philip Kaludercic @ 2024-07-23 7:06 ` Michael Albinus 2024-07-25 9:24 ` find-file-dwim.el Emanuel Berg 1 sibling, 1 reply; 12+ messages in thread From: Michael Albinus @ 2024-07-23 7:06 UTC (permalink / raw) To: emacs-devel Emanuel Berg <incal@dataswamp.org> writes: Hi Emanuel, > Suggestion: The next time you or anyone else gets confused by > my actions, instead of theorizing several different scenarios > and criticizing each one in turn on a public ML, either send > me a private mail where you just ask - or, even better, accept > that you cannot understand every other human being on the > planet - instead, focus on whatever it is _you_ are doing, > I think will be a lot less confusing simple as it may sound. If you are saying something on a public ML, be prepared people respond. Or be quiet. Best regards, Michael. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: find-file-dwim.el 2024-07-23 7:06 ` find-file-dwim.el Michael Albinus @ 2024-07-25 9:24 ` Emanuel Berg 0 siblings, 0 replies; 12+ messages in thread From: Emanuel Berg @ 2024-07-25 9:24 UTC (permalink / raw) To: emacs-devel Michael Albinus wrote: > If you are saying something on a public ML, be prepared > people respond. Or be quiet. The socialization process is in full swing. Suggestion: Apply the rules to everyone equally, or what will happen is everyone will start to behave like that. Anyway, this whole idea - make the collection smaller, by recomputing it - I realized, if you gonna do that, why not do it every time? Like below, instead of `minibuffer-complete'. Maybe I misunderstood the idea? I'm over discussing things on this list, but use e-mail by all means if this is something you would like to discuss. ;;; -*- lexical-binding: t -*- ;; ;; this file: ;; https://dataswamp.org/~incal/emacs-init/minibuffer-complete-files.el ;; ;; (keymap-global-set "M-8" #'minibuffer-complete-files) (require 'cl-lib) (defun string-to-dir (s) (if (file-directory-p s) s (let ((new (replace-regexp-in-string "\\(.*/\\).*$" "\\1" s))) (when (file-directory-p new) new) ))) (defun minibuffer-complete-files () (interactive) (let* ((beg (minibuffer-prompt-end)) (end (point-max)) (str (buffer-substring-no-properties beg end)) (dir (string-to-dir str)) (col (when dir (directory-files dir t))) (abr (mapcar #'abbreviate-file-name col)) (all (cl-union col abr)) ) (when all (completion-in-region (minibuffer--completion-prompt-end) end all) ))) (provide 'minibuffer-complete-files) -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: find-file-dwim.el 2024-07-21 22:10 find-file-dwim.el Emanuel Berg 2024-07-22 3:33 ` find-file-dwim.el Emanuel Berg @ 2024-07-22 5:32 ` Emanuel Berg 1 sibling, 0 replies; 12+ messages in thread From: Emanuel Berg @ 2024-07-22 5:32 UTC (permalink / raw) To: emacs-devel > I'll do the legendary Holy Grail of Elisp programming, > namely find-file-dwim.el Four methods now and one can add a lot of those if one comes up with new ideas. What remains to do, well, polishing, is the interface and I think it will be super-important to get that right, how to indicate a suggested file isn't what you look for, for example. I'll post a new version in a couple of days or so, maybe. ;;; -*- lexical-binding: t -*- ;; ;; this file: ;; https://dataswamp.org/~incal/emacs-init/find-file-dwim.el ;; ;; created: 2024-07-22 ;; version: 0.1.0 (require 'cl-lib) (require 'psea) ; https://dataswamp.org/~incal/emacs-init/psea.el (defun buffers () (mapcar #'buffer-name (buffer-list)) ) ;; (buffers) (defun mod-time-sec (f) (let ((s (time-convert (file-attribute-modification-time (file-attributes f)) 'integer) )) (list s f) )) ;; (mod-time-sec "~/.emacs") (defun remove-data (ds) (mapcar #'cadr ds) ) (defun sort-mod-time-sec (&optional dir) (or dir (setq dir default-directory)) (let ((fs (directory-files dir nil nil t))) (remove-data (reverse (cl-sort (mapcar #'mod-time-sec fs) #'> :key #'car)) ))) ;; (sort-mod-time-sec) (defun psea-hit (s fs &optional max gov) (and max (setq fs (seq-take fs max))) (or gov (setq gov 70) ) (cl-loop with perc with res for f in fs do (setq perc (sdp s f)) (when (< gov perc) (cl-pushnew (list perc f) res) ) finally return (remove-data (cl-sort res #'> :key #'car)) )) ;; (psea-hit "buffer-menu" (buffers)) ;; (psea-hit "find-file-dwim.el" (sort-mod-time-sec)) (defun re-hit (re fs &optional max) (and max (setq fs (seq-take fs max))) (cl-remove-if-not (lambda (f) (string-match re f)) fs) ) ;; (re-hit "line" (buffers)) ;; (re-hit "line" (sort-mod-time-sec) 1000) (provide 'find-file-dwim) -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2024-07-25 9:24 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-07-21 22:10 find-file-dwim.el Emanuel Berg 2024-07-22 3:33 ` find-file-dwim.el Emanuel Berg 2024-07-22 14:02 ` find-file-dwim.el Philip Kaludercic 2024-07-22 15:40 ` find-file-dwim.el Emanuel Berg 2024-07-23 0:47 ` find-file-dwim.el Emanuel Berg 2024-07-23 6:41 ` find-file-dwim.el Philip Kaludercic [not found] ` <87jzhcqw4a.fsf@dataswamp.org> 2024-07-23 10:20 ` find-file-dwim.el Philip Kaludercic 2024-07-23 13:08 ` find-file-dwim.el Emanuel Berg 2024-07-23 13:01 ` find-file-dwim.el Emanuel Berg 2024-07-23 7:06 ` find-file-dwim.el Michael Albinus 2024-07-25 9:24 ` find-file-dwim.el Emanuel Berg 2024-07-22 5:32 ` find-file-dwim.el Emanuel Berg
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).