Function: projectile-find-implementation-or-test
projectile-find-implementation-or-test is a byte-compiled function
defined in projectile.el.
Signature
(projectile-find-implementation-or-test FILE-NAME)
Documentation
Given a FILE-NAME return the matching implementation or test filename.
If projectile-create-missing-test-files is non-nil, create the missing
test file.
Source Code
;; Defined in ~/.emacs.d/elpa/projectile-20260310.858/projectile.el
(defun projectile-find-implementation-or-test (file-name)
"Given a FILE-NAME return the matching implementation or test filename.
If `projectile-create-missing-test-files' is non-nil, create the missing
test file."
(unless file-name (error "The current buffer is not visiting a file"))
(unless (projectile-project-type) (projectile-ensure-project nil))
(if (projectile-test-file-p file-name)
;; find the matching impl file
(let ((impl-file (projectile-find-matching-file file-name)))
(if impl-file
(projectile-expand-root impl-file)
(error
"No matching source file found for project type `%s'"
(projectile-project-type))))
;; find the matching test file
(let* ((error-msg (format
"No matching test file found for project type `%s'"
(projectile-project-type)))
(test-file (or (projectile-find-matching-test file-name)
(error error-msg)))
(expanded-test-file (projectile-expand-root test-file)))
(cond ((file-exists-p expanded-test-file) expanded-test-file)
(projectile-create-missing-test-files
(projectile--create-directories-for expanded-test-file)
expanded-test-file)
(t (error "Determined test file to be \"%s\", which does not exist. Set `projectile-create-missing-test-files' to allow `projectile-find-implementation-or-test' to create new files" test-file))))))