| @@ -1639,9 +1639,10 @@ and search from projectile root (if projectile is available)." | |||||
| (error "No symbol at point"))) | (error "No symbol at point"))) | ||||
| (error "My-Rgrep: Command for rgrep not found")))) | (error "My-Rgrep: Command for rgrep not found")))) | ||||
| (if (safe-require-or-eval 'projectile) | (if (safe-require-or-eval 'projectile) | ||||
| (projectile-with-default-dir (projectile-project-root) | |||||
| (compilation-start command-args | |||||
| 'grep-mode)) | |||||
| (projectile-with-default-dir (or (projectile-project-root) | |||||
| default-directory) | |||||
| (compilation-start command-args | |||||
| 'grep-mode)) | |||||
| (compilation-start command-args | (compilation-start command-args | ||||
| 'grep-mode)))) | 'grep-mode)))) | ||||
| @@ -1970,6 +1971,14 @@ Return that buffer." | |||||
| :type 'int | :type 'int | ||||
| :group 'recently) | :group 'recently) | ||||
| (defcustom recently-excludes | |||||
| '() | |||||
| "List of regexps for filenames excluded from the recent list." | |||||
| :type '(repeat string) | |||||
| :group 'recently) | |||||
| (add-to-list 'recently-excludes | |||||
| (eval-when-compile (rx "/COMMIT_EDITMSG" eot))) | |||||
| (defvar recently-list | (defvar recently-list | ||||
| '() | '() | ||||
| "Recently list.") | "Recently list.") | ||||
| @@ -2014,20 +2023,23 @@ Return that buffer." | |||||
| "Add PATH to list." | "Add PATH to list." | ||||
| (cl-assert (string= path | (cl-assert (string= path | ||||
| (expand-file-name path))) | (expand-file-name path))) | ||||
| (recently-reload) | |||||
| (let* ((l (copy-list recently-list)) | |||||
| (l (delete path | |||||
| l)) | |||||
| (l (cl-loop for e in l | |||||
| unless (file-in-directory-p path e) | |||||
| collect e)) | |||||
| (l (recently-truncate (cons path | |||||
| l) | |||||
| recently-max))) | |||||
| (unless (equal recently-list | |||||
| l) | |||||
| (setq recently-list l) | |||||
| (recently-write)))) | |||||
| (when (cl-loop for re in recently-excludes | |||||
| if (string-match re path) return t | |||||
| finally return nil) | |||||
| (recently-reload) | |||||
| (let* ((l (copy-list recently-list)) | |||||
| (l (delete path | |||||
| l)) | |||||
| (l (cl-loop for e in l | |||||
| unless (file-in-directory-p path e) | |||||
| collect e)) | |||||
| (l (recently-truncate (cons path | |||||
| l) | |||||
| recently-max))) | |||||
| (unless (equal recently-list | |||||
| l) | |||||
| (setq recently-list l) | |||||
| (recently-write))))) | |||||
| (defun recently-truncate (list len) | (defun recently-truncate (list len) | ||||
| "Truncate LIST to LEN." | "Truncate LIST to LEN." | ||||