diff options
| author | Bozhidar Batsov <bozhidar@batsov.dev> | 2026-02-28 10:11:57 +0200 |
|---|---|---|
| committer | Bozhidar Batsov <bozhidar@batsov.dev> | 2026-02-28 10:22:31 +0200 |
| commit | d52c8bcbdea20bfaaadd7e81f3b0041741047278 (patch) | |
| tree | 4dbca7df62f4dec5716abd01dc854c6bb6a3690f | |
| parent | 62b74483810a21c07866e97d4b385bbd5b422465 (diff) | |
Avoid redundant projectile-project-root call in detect-project-type
projectile-project-type already resolves the project root. Pass it
through to projectile-detect-project-type so it doesn't resolve it
a second time just for the cache key.
| -rw-r--r-- | projectile.el | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/projectile.el b/projectile.el index 18b9fc7..5a8e2ba 100644 --- a/projectile.el +++ b/projectile.el @@ -3829,10 +3829,11 @@ a manual COMMAND-TYPE command is created with Normally you'd set this from .dir-locals.el.") (put 'projectile-project-type 'safe-local-variable #'symbolp) -(defun projectile-detect-project-type (&optional dir) +(defun projectile-detect-project-type (&optional dir project-root) "Detect the type of the project. When DIR is specified it detects its project type, otherwise it acts -on the current project. +on the current project. PROJECT-ROOT, if provided, is used for caching +instead of re-resolving via `projectile-project-root'. Fallback to a generic project type when the type can't be determined." (let ((project-type @@ -3845,7 +3846,8 @@ Fallback to a generic project type when the type can't be determined." (and (projectile-verify-files marker dir) project-type)))) projectile-project-types)) 'generic))) - (puthash (projectile-project-root dir) project-type projectile-project-type-cache) + (puthash (or project-root (projectile-project-root dir)) + project-type projectile-project-type-cache) project-type)) (defun projectile-project-type (&optional dir) @@ -3857,7 +3859,7 @@ The project type is cached for improved performance." (or (and (not dir) projectile-project-type) (if-let* ((project-root (projectile-project-root dir))) (or (gethash project-root projectile-project-type-cache) - (projectile-detect-project-type dir))))) + (projectile-detect-project-type dir project-root))))) ;;;###autoload (defun projectile-project-info () |
