Tweak treemacs ignoring

This commit is contained in:
tecosaur 2020-03-19 00:48:47 +08:00
parent 14041ea1a6
commit 6a40eb3aaa
1 changed files with 43 additions and 36 deletions

View File

@ -502,47 +502,54 @@ fi
Quite often there are superfluous files I'm not that interested in. There's no
good reason for them to take up space.
#+BEGIN_SRC emacs-lisp
(setq treemacs-ignore-suffixes '(;; AucTeC
".auctex-auto"
"_region_.log"
"_region_.tex"
;; LaTeX
".aux"
".ptc"
".fdb_latexmk"
".fls"
".synctex.gz"
".toc"
;; LaTeX - glossary
".glg"
".glo"
".gls"
".glsdefs"
".ist"
".acn"
".acr"
".alg"
;; LaTeX - pgfplots
".mw"
;; LaTeX - pdfx
"pdfa.xmpi"
))
(setq treemacs-ignore-prefixes '(;; LaTeX
"_minted-"))
(setq treemacs-file-ignore-extensions '(;; LaTeX
"aux"
"ptc"
"fdb_latexmk"
"fls"
"synctex.gz"
"toc"
;; LaTeX - glossary
"glg"
"glo"
"gls"
"glsdefs"
"ist"
"acn"
"acr"
"alg"
;; LaTeX - pgfplots
"mw"
;; LaTeX - pdfx
"pdfa.xmpi"
))
(setq treemacs-file-ignore-globs '(;; LaTeX
"*/_minted-*"
;; AucTeX
"*/.auctex-auto"
"*/_region_.log"
"*/_region.tex"))
#+END_SRC
With those identified, we just need to provide a mechanism for them to be
ignored. This ends up being nice and simple.
#+BEGIN_SRC emacs-lisp
(after! treemacs
(defun treemacs-ignore-filter (file _)
(let ((ignore-file nil))
(dolist (suffix treemacs-ignore-suffixes ignore-file)
(setq ignore-file (or ignore-file (s-suffix? suffix file))))
(dolist (prefix treemacs-ignore-prefixes ignore-file)
(setq ignore-file (or ignore-file (s-prefix? prefix file))))
))
(push #'treemacs-ignore-filter treemacs-ignored-file-predicates))
(defvar treemacs-file-ignore-extensions '()
"File extension which `treemacs-ignore-filter' will ensure are ignored")
(defvar treemacs-file-ignore-globs '()
"Globs which will are transformed to `treemacs-file-ignore-regexps' which `treemacs-ignore-filter' will ensure are ignored")
(defvar treemacs-file-ignore-regexps '()
"RegExps to be tested to ignore files, generated from `treeemacs-file-ignore-globs'")
(defun treemacs-file-ignore-generate-regexps ()
"Generate `treemacs-file-ignore-regexps' from `treemacs-file-ignore-globs'"
(setq treemacs-file-ignore-regexps (mapcar 'dired-glob-regexp treemacs-file-ignore-globs)))
(defun treemacs-ignore-filter (file full-path)
"Ignore files specified by `treemacs-file-ignore-extensions', and `treemacs-file-ignore-regexps'"
(or (member (file-name-extension file) treemacs-file-ignore-extensions)
(let ((ignore-file nil))
(dolist (regexp treemacs-file-ignore-regexps ignore-file)
(setq ignore-file (or ignore-file (if (string-match-p regexp full-path) t nil)))))))
(add-to-list 'treemacs-ignored-file-predicates #'treemacs-ignore-filter))
#+END_SRC
** Miscellaneous
*** calc