diff --git a/scala-quick-import.el b/scala-quick-import.el index 2729f88..51f297e 100644 --- a/scala-quick-import.el +++ b/scala-quick-import.el @@ -51,10 +51,11 @@ Prefix arguments: (scala-quick-import:search-import-body search-term (lambda () - (shell-command-to-string (format "ag import.*%s --nonumbers --noheading --nofilename --nobreak --ignore-case | sort | uniq" search-term))))) + (shell-command-to-string (format "ag --nonumbers --noheading --nofilename --nobreak --ignore-case -- 'import.*%s' | sort | uniq" (replace-quote search-term)))))) -(defun scala-quick-import:search-import-body (search-term run-ag-fn) - (let ((identity2 (lambda (input search-term) input)) +(defun scala-quick-import:search-import-body (search-term-unescaped run-ag-fn) + (let ((search-term (replace-quote search-term-unescaped)) + (identity2 (lambda (input search-term) input)) (normalization-function) (copy-to-kill-ring)) (pcase current-prefix-arg diff --git a/test/scala-quick-import-test.el b/test/scala-quick-import-test.el index 57db740..7c51858 100644 --- a/test/scala-quick-import-test.el +++ b/test/scala-quick-import-test.el @@ -156,3 +156,164 @@ import com.model.applicant.AnswerMap")) import com.model.applicant.{ AnswerMap, Application } "))) + + +(ert-deftest sqi-scala-quick-import:search-import-scalaz-1 () + (should + (equal + (with-current-buffer (find-file-noselect "test-scalaz-1.scala") + (progn + (insert "package foo.bar + +import common.model.Application +") + (scala-quick-import:search-import-body "\\/" (lambda () "scalaz.\\/")) + (buffer-string))) + "package foo.bar + +import common.model.Application +import scalaz.\\/ +"))) + +(ert-deftest sqi-scala-quick-import:search-import-scalaz-2 () + (should + (equal + (with-current-buffer (find-file-noselect "test-scalaz-2.scala") + (progn + (insert "package foo.bar + +import common.model.Application +") + (scala-quick-import:search-import-body "-\\/" (lambda () "scalaz.-\\/")) + (buffer-string))) + "package foo.bar + +import common.model.Application +import scalaz.-\\/ +"))) + +(ert-deftest sqi-scala-quick-import:search-import-scalaz-3 () + (should + (equal + (with-current-buffer (find-file-noselect "test-scalaz-3.scala") + (progn + (insert "package foo.bar + +import common.model.Application +") + (scala-quick-import:search-import-body "\\/-" (lambda () "scalaz.\\/-")) + (buffer-string))) + "package foo.bar + +import common.model.Application +import scalaz.\\/- +"))) + + +(ert-deftest sqi-scala-quick-import:search-import-scalaz-4 () + (should + (equal + (with-current-buffer (find-file-noselect "test-scalaz-4.scala") + (progn + (insert "package foo.bar + +import common.model.Application +import scalaz.\\/ +") + (scala-quick-import:search-import-body "\\/-" (lambda () "scalaz.\\/-")) + (buffer-string))) + "package foo.bar + +import common.model.Application +import scalaz.{ \\/, \\/- } +"))) + +(ert-deftest sqi-scala-quick-import:search-import-scalaz-5 () + (should + (equal + (with-current-buffer (find-file-noselect "test-scalaz-5.scala") + (progn + (insert "package foo.bar + +import common.model.Application +import scalaz.\\/ +") + (scala-quick-import:search-import-body "-\\/" (lambda () "scalaz.-\\/")) + (buffer-string))) + "package foo.bar + +import common.model.Application +import scalaz.{ -\\/, \\/ } +"))) + +(ert-deftest sqi-scala-quick-import:search-import-scalaz-6 () + (should + (equal + (with-current-buffer (find-file-noselect "test-scalaz-6.scala") + (progn + (insert "package foo.bar + +import common.model.Application +import scalaz.EitherT +") + (scala-quick-import:search-import-body "-\\/" (lambda () "scalaz.-\\/")) + (buffer-string))) + "package foo.bar + +import common.model.Application +import scalaz.{ -\\/, EitherT } +"))) + +(ert-deftest sqi-scala-quick-import:search-import-scalaz-7 () + (should + (equal + (with-current-buffer (find-file-noselect "test-scalaz-7.scala") + (progn + (insert "package foo.bar + +import common.model.Application +import scalaz.EitherT +") + (scala-quick-import:search-import-body "\\/" (lambda () "scalaz.\\/")) + (buffer-string))) + "package foo.bar + +import common.model.Application +import scalaz.{ EitherT, \\/ } +"))) + +(ert-deftest sqi-scala-quick-import:search-import-scalaz-8 () + (should + (equal + (with-current-buffer (find-file-noselect "test-scalaz-8.scala") + (progn + (insert "package foo.bar + +import common.model.Application +import scalaz.EitherT +") + (scala-quick-import:search-import-body "\\/-" (lambda () "scalaz.\\/-")) + (buffer-string))) + "package foo.bar + +import common.model.Application +import scalaz.{ EitherT, \\/- } +"))) + +(ert-deftest sqi-scala-quick-import:search-import-scalaz-9 () + (should + (equal + (with-current-buffer (find-file-noselect "test-scalaz-9.scala") + (progn + (insert "package foo.bar + +import common.model.Application +import scalaz.{ -\\/, EitherT } +") + (scala-quick-import:search-import-body "\\/-" (lambda () "scalaz.\\/-")) + (buffer-string))) + "package foo.bar + +import common.model.Application +import scalaz.{ -\\/, EitherT, \\/- } +")))