branch: externals/phps-mode commit fe80a3ad610592dbe34d8a3ffed588b009b017ae Author: Christian Johansson <christ...@cvj.se> Commit: Christian Johansson <christ...@cvj.se>
Passes test for moving line-indents down --- phps-mode-functions.el | 23 +++++++++++++---------- phps-mode-test-functions.el | 8 +++++++- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/phps-mode-functions.el b/phps-mode-functions.el index 4de504b..124eca2 100644 --- a/phps-mode-functions.el +++ b/phps-mode-functions.el @@ -73,16 +73,19 @@ "Move OLD-LINES-INDENTS from START-LINE-NUMBER with DIFF points." (let ((lines-indents (make-hash-table :test 'equal)) (line-number 1)) - (let ((line-indent (gethash line-number old-lines-indents))) - (while line-indent - (if (< line-number start-line-number) - (puthash line-number line-indent lines-indents) - (setq new-line-number (1+ line-number)) - (puthash new-line-number line-indent lines-indents) - (message "Added new indent %s from %s to %s" line-indent line-number new-line-number)) - (setq line-number (1+ line-number)) - (setq line-indent (gethash line-number old-lines-indents)))) - lines-indents)) + (when old-lines-indents + (let ((line-indent (gethash line-number old-lines-indents)) + (new-line-number)) + (while line-indent + (when (<= line-number start-line-number) + (puthash line-number line-indent 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))) (defun phps-mode-functions-move-lines-indent (start-line-number diff) "Move lines indent from START-LINE-NUMBER with DIFF points." diff --git a/phps-mode-test-functions.el b/phps-mode-test-functions.el index 7579027..ec9c7a6 100644 --- a/phps-mode-test-functions.el +++ b/phps-mode-test-functions.el @@ -44,10 +44,16 @@ (phps-mode-test-with-buffer "<?php\n/**\n * Bla\n */" - "DOC-COMMENT" + "Move line-indents one line down" (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 0)) (4 (0 1)) (5 (0 1))) (phps-mode-test-hash-to-list (phps-mode-functions-get-moved-lines-indent (phps-mode-functions-get-lines-indent) 2 1))))) + (phps-mode-test-with-buffer + "<?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))))) + ) (defun phps-mode-test-functions-get-lines-indent ()