branch: externals/phps-mode commit 09a21235d510fb01400ed87051beaba369eef5d7 Author: Christian Johansson <christ...@cvj.se> Commit: Christian Johansson <christ...@cvj.se>
Passes all tests for moving line-indent index --- phps-mode-functions.el | 12 +++++++++++- phps-mode-test-functions.el | 8 +++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/phps-mode-functions.el b/phps-mode-functions.el index 30606ef..7df727c 100644 --- a/phps-mode-functions.el +++ b/phps-mode-functions.el @@ -77,12 +77,22 @@ (let ((line-indent (gethash line-number old-lines-indents)) (new-line-number)) (while line-indent - (when (<= line-number start-line-number) + + (when (< line-number start-line-number) + ;; (message "Added new indent 3 %s from %s to %s" line-indent line-number line-number) (puthash line-number line-indent lines-indents)) + + (when (and (> diff 0) + (>= line-number start-line-number) + (< line-number (+ start-line-number diff))) + ;; (message "Added new indent 2 %s from %s to %s" line-indent line-number line-number) + (puthash line-number (gethash start-line-number old-lines-indents) lines-indents)) + (when (>= line-number start-line-number) (setq new-line-number (+ line-number diff)) ;; (message "Added new indent %s from %s to %s" line-indent line-number new-line-number) (puthash new-line-number line-indent lines-indents)) + (setq line-number (1+ line-number)) (setq line-indent (gethash line-number old-lines-indents)))) lines-indents))) diff --git a/phps-mode-test-functions.el b/phps-mode-test-functions.el index 5395c19..ed3915b 100644 --- a/phps-mode-test-functions.el +++ b/phps-mode-test-functions.el @@ -64,7 +64,13 @@ "<?php\n/**\n * Bla\n */" "Move line-indents one line up" (should (equal '((1 (0 0)) (2 (0 0)) (3 (0 1)) (4 (0 1))) (phps-mode-test-hash-to-list (phps-mode-functions-get-lines-indent)))) - (should (equal '((1 (0 0)) (2 (0 0)) (3 (0 1))) (phps-mode-test-hash-to-list (phps-mode-functions-get-moved-lines-indent (phps-mode-functions-get-lines-indent) 3 -1))))) + (should (equal '((1 (0 0)) (2 (0 1)) (3 (0 1))) (phps-mode-test-hash-to-list (phps-mode-functions-get-moved-lines-indent (phps-mode-functions-get-lines-indent) 3 -1))))) + + (phps-mode-test-with-buffer + "<?php\n/**\n * Bla\n */" + "Move line-indents two lines up" + (should (equal '((1 (0 0)) (2 (0 0)) (3 (0 1)) (4 (0 1))) (phps-mode-test-hash-to-list (phps-mode-functions-get-lines-indent)))) + (should (equal '((1 (0 1)) (2 (0 1))) (phps-mode-test-hash-to-list (phps-mode-functions-get-moved-lines-indent (phps-mode-functions-get-lines-indent) 3 -2))))) )