diff options
| author | Jakub Kadlcik <frostyx@email.cz> | 2023-12-09 13:21:33 +0100 |
|---|---|---|
| committer | Tom Dalziel <33435574+tomdl89@users.noreply.github.com> | 2023-12-18 10:20:46 +0100 |
| commit | fc6bd006503258e5cc09c92de8882f4496992946 (patch) | |
| tree | 6c6643c5e42d13999a6c83d8308fa5f33f050978 /evil-tests.el | |
| parent | eced3088ce860431b6d0e0af2409c56d754ffab2 (diff) | |
Add :retab command
See "Changing tabs" section in the Vim manual
https://vimhelp.org/change.txt.html#change.txt
Diffstat (limited to 'evil-tests.el')
| -rw-r--r-- | evil-tests.el | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/evil-tests.el b/evil-tests.el index e7bf080..f3c8505 100644 --- a/evil-tests.el +++ b/evil-tests.el @@ -9809,6 +9809,49 @@ main(argc, argv) char **argv; { (should (equal evil-input-method "german-prefix")))) (remove-hook 'text-mode-hook #'use-german-input-method)))) +(ert-deftest evil-retab () + "Test the :retab command" + :tags '(evil) + (ert-info ("From tabs to spaces") + (evil-test-buffer + "def foo():\n\twhile True:\n\t\treturn\n" + (setq indent-tabs-mode nil) + (setq tab-width 4) + (":retab" [return]) + "def foo():\n while True:\n return\n")) + (ert-info ("From spaces to tabs") + (evil-test-buffer + "def foo():\n while True:\n return\n" + (setq indent-tabs-mode t) + (setq tab-width 4) + (":retab" [return]) + "def foo():\n\twhile True:\n\t\treturn\n")) + (ert-info ("Specify tab width as an argument") + (evil-test-buffer + "def foo():\n\twhile True:\n\t\treturn\n" + (setq indent-tabs-mode nil) + (setq tab-width 4) + (":retab 2" [return]) + "def foo():\n while True:\n return\n")) + (ert-info ("Invalid argument") + (evil-test-buffer + "def foo():\n\twhile True:\n\t\treturn\n" + (should-error (execute-kbd-macro ":retab foo" [return]))))) + +(ert-deftest evil-retab-visual () + "Test the :retab command on visual line selection. +This test fails in the batch mode (and therefore in the GitHub CI) +but it works fine in `M-x ert-run-tests-interactively'." + :tags '(evil visual) + (skip-unless (not noninteractive)) + (ert-info ("Retab only selected lines") + (evil-test-buffer + "def foo():\n\twhile True:\n\t\treturn\n" + (setq indent-tabs-mode nil) + (setq tab-width 4) + ("Vj" ":retab" [return]) + "def foo():\n while True:\n\t\treturn\n"))) + (provide 'evil-tests) ;;; evil-tests.el ends here |
