首页 > 解决方案 > Emacs:用于 TypeScript 规范文件发现的 projectile-toggle-between-implementation-and-test

问题描述

我真的很喜欢在其他语言中使用这个 projectile 函数,但我目前很难找到一种方法来为典型的 TypeScript 项目设置它。

ls services/
foo.service.ts foo.service.spec.ts bar.ts bar.spec.ts

当我projectile-toggle-between-implementation-and-test在这 4 个文件中的任何一个中执行时,都会出现以下错误:

helm-M-x-execute-command: No matching test file found for project type ‘npm’

换句话说,规则是try to find a file in the same directory with/without *.spec.ts* suffix

标签: emacsprojectileemacs-projectile

解决方案


事实证明这很简单。您需要评估以下代码段(注意 npm 项目类型):

(defun projectile-test-suffix (project-type)
  "Find default test files suffix based on PROJECT-TYPE."
  (cond
   ((member project-type '(emacs-cask)) "-test")
   ((member project-type '(rails-rspec ruby-rspec)) "_spec")
   ((member project-type '(rails-test ruby-test lein-test boot-clj go)) "_test")
   ((member project-type '(scons)) "test")
   ((member project-type '(npm)) ".spec")
   ((member project-type '(maven symfony)) "Test")
   ((member project-type '(gradle gradlew grails)) "Spec")))

推荐阅读