On Sat, 07 Jan 2023 17:00:02 -0600 Ruijie Yu wrote: > Hi, > > >-(defcustom hfy-find-cmd > >- "find . -type f \\! -name \\*~ \\! -name \\*.flc \\! -path > >\\*/CVS/\\*" > >- "Find command used to harvest a list of files to attempt to > >fontify." > >- :tag "find-command" > >- :type '(string)) > >+(defcustom hfy-exclude-file-rules > >+ '("\\.flc$" > >+ "/CVS/.*" > >+ ".*~" > >+ "\\.git/.*") > >+ "Define some regular expressions to exclude files" > >+ :tag "exclude-rules" > >+ :type '(list string)) > > For the third entry, shouldn't it be ".*~$" instead, to indicate that > "~" is the last character? > > For the fourth entry, currently it would match against the file name > "ROOT/hello.git/foo". In addition, for git submodules, ".git" is a > regular file instead of a directory. Maybe something like this is > what you want: > > (rx "/.git" (opt "/" (0+ any)) line-end) > > or in raw regexp: "/\\.git\\(?:/.*\\)?$" > > Also, in this change, we are dropping the requirement that the found > file are actually files, whereas we used to say "-type f". Is this > change fine? > > > (defun hfy-list-files (directory) > > "Return a list of files under DIRECTORY. > > Strips any leading \"./\" from each filename." > >- ;;(message "hfy-list-files");;DBUG > >+ ;;(message "hfy-list-files");;DEBUG > > ;; FIXME: this changes the dir of the current buffer. Is that > > right?? (cd directory) > >- (mapcar (lambda (F) (if (string-match "^./\\(.*\\)" F) > >(match-string 1 F) F)) > >- (split-string (shell-command-to-string hfy-find-cmd))) ) > >+ (remove-if (lambda (f) (seq-some (lambda (r) > >+ (string-match r f)) > >hfy-exclude-file-rules)) > >+ (directory-files-recursively "." ".*"))) > > We should change `remove-if' into `cl-remove-if' because both "cl.el" > and the alias `remove-if' are deprecated. > Thank you, I updated the patch file.