diff --git a/config.org b/config.org index 524aa5d..78a0cd5 100644 --- a/config.org +++ b/config.org @@ -494,7 +494,29 @@ fi #+END_SRC ** Treemacs Quite often there are superfluous files I'm not that interested in. There's no -good reason for them to take up space. +good reason for them to take up space. Let's add a mechanism to ignore them. +#+BEGIN_SRC emacs-lisp +(after! treemacs + (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))) + (if (equal treemacs-file-ignore-globs '()) nil (treemacs-file-ignore-generate-regexps)) + (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 + +Now, we just identify the files in question. #+BEGIN_SRC emacs-lisp (setq treemacs-file-ignore-extensions '(;; LaTeX "aux" @@ -522,28 +544,7 @@ good reason for them to take up space. ;; 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 - (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)) + "*/_region_.tex")) #+END_SRC ** Miscellaneous *** calc